Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 05.07.2011, 03:54  
sdsrem
Почётный гражданин KAZUS.RU
 
Аватар для sdsrem
 
Регистрация: 08.09.2009
Сообщений: 1,139
Сказал спасибо: 138
Сказали Спасибо 366 раз(а) в 230 сообщении(ях)
sdsrem на пути к лучшему
По умолчанию Не читается микросхема SI4702

Не читаеться микросхема SI4702, вроде всё правильно но нет ответа и всё.
Вот код для CVAVR Mega8
PHP код:
#define uchar  unsigned char
#define uint   unsigned int
#define ulong  unsigned long

#define Dout   PORTB.0
#define Din   PINB.0
#define SCK    PORTB.1
#define CS     PORTB.2
#define reset  PORTD.7


unsigned long  R02=0b110000101100000000000001//h2
unsigned char  RR =0b11101011//0x0B

typedef union
 
{
 
unsigned long lg;
 
unsigned char arr[3];
 }
un;
un un1;

union adcu
 

   
uint word;
   
uchar byte[2];
 };

unsigned char spi_(unsigned char data)
{
   
unsigned char miso 0;
   
unsigned char mask 0x80;

   for( ; 
maskmask ››= 1)
   {
       
Dout data mask;
       
SCK 1;
       if(
Dinmiso |= mask;
       
SCK 0
    }
   return 
miso;
}

void set_pll()
 {    
     
CS=0;    
    
spi_(un1.arr[2]);
    
spi_(un1.arr[1]);
    
spi_(un1.arr[0]);
     
CS=1;  
      
delay_us(10);
 };
 
 
uint max_read(void
  {  
   
union adcu adc_data;
   {
     
CS=0;  imp_1;    //чип селект,+ шлём 1 клок
     
spi_(RR);  //шлём адрес для чтения + бит R/W
   // while (Din)
    
     
adc_data.byte[1]=spi_(0); //читаем
     
adc_data.byte[0]=spi_(0); //читаем
     
CS=1imp_1;   //чип деселект, + шлём 1 клок 
    
}
     return (
adc_data.word);
  }

  
#define out_lcd() { gotoxy(0,7); out_array_(max_read()); print_string(arr_);}

uchar arr_[]="        ";
flash ulong step_razr[]={10000000,1000000,100000,10000,1000,100,10,1};
  
 
void out_array_(ulong reg)
 {
  
uchar i,atemp;
  
ulong val,temp;
  
val=reg;
  for (
i=0i8i++)
   { 
temp=step_razr[i];
      
atemp=0;
    while(
val ›= temp)
     { 
atemp++; val-=temp; }
       
arr_[i]=atemp+0x30
   } 
 } 


 
void init_4702(void
   { 
    
reset=0;
     
delay_ms(10);
    
reset=1
     
delay_ms(1);
    
    
un1.lg=R02set_pll();

     
max_read();
      
out_lcd();
   }; 
 
//------------------------------ 
Может кто подскажет где косяк.
Вот ещё по протоколу доташит.

На передачу всё в порядке.
Вложения:
Тип файла: pdf AN230[1].pdf (486.4 Кб, 175 просмотров)
Реклама:

Последний раз редактировалось sdsrem; 06.07.2011 в 20:49.
sdsrem вне форума  
Сказали "Спасибо" sdsrem
warel (28.06.2019)
Непрочитано 05.07.2011, 07:00  
mobil2005
Прописка
 
Аватар для mobil2005
 
Регистрация: 19.07.2006
Адрес: Russia,Yekaterinburg
Сообщений: 184
Сказал спасибо: 12
Сказали Спасибо 75 раз(а) в 43 сообщении(ях)
mobil2005 на пути к лучшему
По умолчанию Re: Не читаеться микросхема SI4702

Сообщение от sdsrem Посмотреть сообщение
На передачу всё в порядке.

А на мой взгляд косяк у вас там закрался
Сообщение от sdsrem Посмотреть сообщение
Dout = data & mask;
Надо или так(предпочтительней ибо быстрее)
Цитата:
Dout = 0;
if(data & mask )
Dout = 1;
или
Цитата:
if(data & mask )
Dout = 1;
else
Dout = 0;
А то в вашем коде при spi_(0хFF) вы просто в PORTB.0 шлете от 0х01 до 0х80 хотя переменная должна быть битовой и либо 0 либо 1.
И что он записывает в битовую переменную при отправке туда байта я лишь догадыватся могу, но наверное лишь первый бит
__________________
Разработка электроники на заказ, написание ПО для ПК и МК.Обращайтесь в личку.

Последний раз редактировалось mobil2005; 05.07.2011 в 07:09.
mobil2005 вне форума  
Сказали "Спасибо" mobil2005
warel (28.06.2019)
Непрочитано 05.07.2011, 08:09  
sdsrem
Почётный гражданин KAZUS.RU
 
Аватар для sdsrem
 
Регистрация: 08.09.2009
Сообщений: 1,139
Сказал спасибо: 138
Сказали Спасибо 366 раз(а) в 230 сообщении(ях)
sdsrem на пути к лучшему
По умолчанию Re: Не читаеться микросхема SI4702

Сообщение от mobil2005 Посмотреть сообщение

А на мой взгляд косяк у вас там закрался

Надо или так(предпочтительней ибо быстрее)

или

А то в вашем коде при spi_(0хFF) вы просто в PORTB.0 шлете от 0х01 до 0х80 хотя переменная должна быть битовой и либо 0 либо 1.
И что он записывает в битовую переменную при отправке туда байта я лишь догадыватся могу, но наверное лишь первый бит
Нет с выводом полный порядок, хотя можно сделать как предложили вы, я так тоже делал.
Дело не в этом, дело в приёме, нет приёма, совсем нет.
sdsrem вне форума  
Сказали "Спасибо" sdsrem
warel (28.06.2019)
Непрочитано 05.07.2011, 08:45  
mobil2005
Прописка
 
Аватар для mobil2005
 
Регистрация: 19.07.2006
Адрес: Russia,Yekaterinburg
Сообщений: 184
Сказал спасибо: 12
Сказали Спасибо 75 раз(а) в 43 сообщении(ях)
mobil2005 на пути к лучшему
По умолчанию Re: Не читаеться микросхема SI4702

Сообщение от sdsrem Посмотреть сообщение
Нет с выводом полный порядок
И как же вы определили с ним все в порядке если у вас ничего не работает
__________________
Разработка электроники на заказ, написание ПО для ПК и МК.Обращайтесь в личку.
mobil2005 вне форума  
Сказали "Спасибо" mobil2005
warel (28.06.2019)
Непрочитано 05.07.2011, 13:37  
XoDoK11
Гражданин KAZUS.RU
 
Аватар для XoDoK11
 
Регистрация: 17.08.2008
Сообщений: 770
Сказал спасибо: 52
Сказали Спасибо 450 раз(а) в 202 сообщении(ях)
XoDoK11 на пути к лучшему
По умолчанию Re: Не читаеться микросхема SI4702

Цитата:
CS=0;imp_1; //чип селект,+ шлём 1 клок
Его можно вообще не дергать. CS=0; в начале
С++ в Mega8 не есть хорошо. В С ошибок меньше будет и отлаживать проще.
Может использовать 2-проводный режим - похож на I2C (навскидку)?
XoDoK11 вне форума  
Сказали "Спасибо" XoDoK11
warel (28.06.2019)
Непрочитано 05.07.2011, 13:57  
heady69
Прописка
 
Регистрация: 25.09.2009
Адрес: Ivanovo
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 67 раз(а) в 60 сообщении(ях)
heady69 на пути к лучшему
По умолчанию Re: Не читается микросхема SI4702

Сообщение от sdsrem Посмотреть сообщение
Dout = data & mask;
SCK = 1;
if(Din) miso |= mask;
SCK = 0;
После выдачи данных на PORTB.0 наверное стоит переключить порт в режим ввода?
heady69 вне форума  
Сказали "Спасибо" heady69
warel (28.06.2019)
Непрочитано 05.07.2011, 17:41  
sdsrem
Почётный гражданин KAZUS.RU
 
Аватар для sdsrem
 
Регистрация: 08.09.2009
Сообщений: 1,139
Сказал спасибо: 138
Сказали Спасибо 366 раз(а) в 230 сообщении(ях)
sdsrem на пути к лучшему
По умолчанию Re: Не читаеться микросхема SI4702

Сообщение от mobil2005 Посмотреть сообщение
И как же вы определили с ним все в порядке если у вас ничего не работает
Да радио работает, поёт и пляшет, и каналы и звук меняются.


(Его можно вообще не дергать. CS=0; в начале
С++ в Mega8 не есть хорошо. В С ошибок меньше будет и отлаживать проще.
Может использовать 2-проводный режим - похож на I2C (навскидку)? )

CS= непременное условие после каждого слова.
Да сдесь вроде как не на C++ а просто C .
С двухпроводном режимом нет проблем, по i2c всё работает и читает и пишит.


(После выдачи данных на PORTB.0 наверное стоит переключить порт в режим ввода?)
Ну дык вроде с этим делом тоже порядок

#define Dout PORTB.0
#define Din PINB.0
или нет ???
sdsrem вне форума  
Сказали "Спасибо" sdsrem
warel (28.06.2019)
Непрочитано 05.07.2011, 18:11  
XoDoK11
Гражданин KAZUS.RU
 
Аватар для XoDoK11
 
Регистрация: 17.08.2008
Сообщений: 770
Сказал спасибо: 52
Сказали Спасибо 450 раз(а) в 202 сообщении(ях)
XoDoK11 на пути к лучшему
По умолчанию Re: Не читаеться микросхема SI4702

Сообщение от sdsrem Посмотреть сообщение
Да радио работает, поёт и пляшет, и каналы и звук меняются.
С двухпроводном режимом нет проблем, по i2c всё работает и читает и пишит.
А двухпроводный чем не устраивает?
XoDoK11 вне форума  
Сказали "Спасибо" XoDoK11
warel (28.06.2019)
Непрочитано 05.07.2011, 19:56  
sdsrem
Почётный гражданин KAZUS.RU
 
Аватар для sdsrem
 
Регистрация: 08.09.2009
Сообщений: 1,139
Сказал спасибо: 138
Сказали Спасибо 366 раз(а) в 230 сообщении(ях)
sdsrem на пути к лучшему
По умолчанию Re: Не читаеться микросхема SI4702

Сообщение от XoDoK11 Посмотреть сообщение
А двухпроводный чем не устраивает?


Скорость низкая

Всем спасибо, решил проблему.

Последний раз редактировалось sdsrem; 06.07.2011 в 09:11.
sdsrem вне форума  
Сказали "Спасибо" sdsrem
warel (28.06.2019)
Непрочитано 06.07.2011, 09:39  
heady69
Прописка
 
Регистрация: 25.09.2009
Адрес: Ivanovo
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 67 раз(а) в 60 сообщении(ях)
heady69 на пути к лучшему
По умолчанию Re: Не читается микросхема SI4702

Сообщение от sdsrem Посмотреть сообщение
#define Dout PORTB.0
#define Din PINB.0
или нет ???
За направление передачи данных разряда 0 порта B отвечает бит 0 регистра DDRB(=1 - выход, 0-вход) что-то в программе не просматривается изменение этого бита

Последний раз редактировалось heady69; 06.07.2011 в 09:42.
heady69 вне форума  
Сказали "Спасибо" heady69
warel (28.06.2019)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите опознать, что за микросхема? Pausa Микроконтроллеры, АЦП, память и т.д 19 18.03.2016 20:06
Микросхема CP2103: уровни сигнала на RX/TX Haster Микроконтроллеры, АЦП, память и т.д 6 18.02.2011 23:48
микросхема tm1618 alipovoleg Видеотехника 1 04.03.2010 14:24
Нужна микросхема "обратный счётчик" Skrut Информация по радиокомпонентам 12 19.06.2008 12:50


Часовой пояс GMT +4, время: 15:48.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot