roboforum.ru

Технический форум по робототехнике.

Очень нужно подружить mega128 и ds1307

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Очень нужно подружить mega128 и ds1307

Сообщение Порфирий » 12 янв 2009, 12:07

Друзья, убил уже довольно много времени, но никак не могу получить от ds1307 (RTC-микросхема с I2C-интерфейсом) подтверждение (ACK) в ответ на посылку адреса устройства (0xD0). В приложении к этому посту "драйвер" I2C для IAR-компилятора, написанный (не мною) на С. Вопрос ко всем заинтересованным разбирающимся людям, где тут может быть подвох? По какой причине ds1307 может не отвечать? Pull-up резисторы на 2.4 кОм имеют место быть; напряжение питания - 4,88 В, а напряжение на батарейке - 2,90 В (условие VCC > 1.25*Vbat выполняется). Единственный ньюанс - задающий кварц на 32768 Гц отпаян, но его отсутствие по идее не должно влиять на работу I2C-интерфейса. Ниже кусок кода из главной функции:

Код: Выделить всёРазвернуть
  unsigned char buffer = 1;
  unsigned char result = 1;
  tx_type data[2];
 
  data[0].slave_adr = 0xd0;
  data[0].size = 1;
  data[0].data_ptr = &buffer;
  data[1].slave_adr = OWN_ADR;
 
  __disable_interrupt();
 
  init();
  lcdClear();
 
  __enable_interrupt();


  result = Send_to_TWI( data ); 

  lcdDisplayInt( result, FALSE );


Извиняюсь за косноязычие, уже не знаю, куда копать :sorry:
Вложения
i2c_driver.zip
(3.18 КиБ) Скачиваний: 44
Аватара пользователя
Порфирий
 
Сообщения: 68
Зарегистрирован: 27 мар 2007, 07:42
Откуда: Екатеринбург

Re: Очень нужно подружить mega128 и ds1307

Сообщение avr123.nm.ru » 12 янв 2009, 12:21

Попробуйте мастер конфигурации компилятора CVAVR - скачать 2 Мб там http://avr123.nm.ru
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Очень нужно подружить mega128 и ds1307

Сообщение Порфирий » 12 янв 2009, 13:09

Первый раз пользуюсь CV-AVR, на выходе получил значения для 4-х регистров конфигурации TWI. С этим у меня вроде б проблем не было. Скажите, а где можно разжиться файлами <ds1307.h> и соответствующим объектным файлом для CV-AVR? Я не нашёл у себя в cvavr/inc. Спасибо!
Аватара пользователя
Порфирий
 
Сообщения: 68
Зарегистрирован: 27 мар 2007, 07:42
Откуда: Екатеринбург

Re: Очень нужно подружить mega128 и ds1307

Сообщение avr123.nm.ru » 12 янв 2009, 13:22

Порфирий писал(а):Первый раз пользуюсь CV-AVR, на выходе получил значения для 4-х регистров конфигурации TWI. С этим у меня вроде б проблем не было. Скажите, а где можно разжиться файлами <ds1307.h> и соответствующим объектным файлом для CV-AVR? Я не нашёл у себя в cvavr/inc. Спасибо!

У меня там - C:\CVAVR\inc

Добавлено спустя 1 минуту 57 секунд:
Порфирий писал(а): где тут может быть подвох? По какой причине ds1307 может не отвечать?


в PROTEUS есть анализатоор i2c - сразу видно какие запросы и что почем и модель DS1307 есть.
http://oProteus.narod.ru
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Очень нужно подружить mega128 и ds1307

Сообщение slavaslx » 18 фев 2009, 15:09

Файлика ds1307.lib там нет потому что у тебя скорее демо версия, надо полную скачать(уже не раз говорилось где полную найти, у демо версий СВ1 кроме ограничения кода в 2к не все файлы библиотек приложены, а только основные, у СВ2 не знаю), и для начал воспользуйся программным и2с, он проще для старта.
Без кварца она работает но как флэшка, а не как часы - и новые кварцы 32768 плохо запускаются, надо к ним что то лепить типа кондера по питанию или М. резюка., зато нет никаких проблем с запуском старых часовых - например от дохлой матер. платы...

Теперь у меня вопрос возник: при частом обращений(например считываний каждые 0,2с) к РТЦ 1307 в момент выключения МК в регистр 0 бит 7 пишется "1"(тоесть остановка кварца. и збой часов с их остановкой), ее можно свести к минимуму если обращаться к ним реже, но как всегда в нужный момент откажет (на 2х чипах ртц1307 такое). Может кто сталкивался. :O:
slavaslx
 

Re: Очень нужно подружить mega128 и ds1307

Сообщение avr123.nm.ru » 18 фев 2009, 15:39

Я думаю в ДЕМО есть все библиотеки. в ДЕМО просто МАСТЕР кода не полнофункциональный.
Последний раз редактировалось avr123.nm.ru 18 фев 2009, 19:51, всего редактировалось 1 раз.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Очень нужно подружить mega128 и ds1307

Сообщение slavaslx » 18 фев 2009, 16:09

Та не спасибо АВР123, у меня полный КВ20309! (ну может автору этой темы нужен), а не поможете с вопросом о сбое дс1307
(т.е. когда "считываем" состояние ртц, и в момент стывания отключаем и2с - ну допустим потух контроллер, в переменную sec пишет например числа >60?

rtc_get_time(&h,&m,&s); // после повторного старта "s" выходит за рамки. регистр 0 бит 7 пишется "1" ,тоесть остановка кварца

тут было бы понятно если мы бы записывали что то в ртц, а тут при чтываний, ну данные не пойдут? а тут такое!
slavaslx
 

Re: Очень нужно подружить mega128 и ds1307

Сообщение Drunya » 18 фев 2009, 19:30

Помнится тоже когда-то маялся с этой микросхемой, тут даже на форуме проект лежит: ПРОЕКТ
Глюк по-немецки означает "счастье"...
Аватара пользователя
Drunya
 
Сообщения: 196
Зарегистрирован: 05 июн 2007, 12:20
Откуда: Киев
прог. языки: C/C++, ASSEMBLER


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20