Например TDA7294

Форум РадиоКот :: Просмотр темы - WINAVR ATMega + DS1307
Форум РадиоКот
https://radiokot.ru/forum/

WINAVR ATMega + DS1307
https://radiokot.ru/forum/viewtopic.php?f=20&t=20350
Страница 1 из 1

Автор:  pwb [ Сб окт 10, 2009 12:44:51 ]
Заголовок сообщения:  WINAVR ATMega + DS1307

Привет!

Никак не могу подружить мегу8 и часы :(
Помогите пожалуйста. В протеусе все нормально, а когда дело доходит до железа, то полный аут. все висит.
Я подозреваю что дело в этом:
Код:
while (!(TWCR & (1 << TWINT)));

если сделать вот так:
Код:
  // Initial ATMega8 TWI/I2C Peripheral
  TWSR = 0x00;   // Select Prescaler of 1
  // SCL frequency = 11059200 / (16 + 2 * 47 * 1) = 98.743 khz
  TWBR = (F_CPU / 100000UL - 16) / 2;

а вот достаточно закоментировать инициализацию TWI, то все работает в протеусе...
Протеус 7.6 SP0
WinAVR 20090313

Может кто-нибудь кинет в меня нормальной библиотекой для работы в часиками в winavr?
Нигде не могу найти :(

Вложения:
Комментарий к файлу: исходники
clock.rar [42.7 KiB]
Скачиваний: 424

Автор:  ARV [ Сб окт 10, 2009 13:00:13 ]
Заголовок сообщения: 

кинуть можно, только искать надо, да и опасаюсь - кину, да вдруг попаду и зашибу?! так что поищите сами :) нормальную либу для работы с I2C

для начала вот вам ключик к тайной дверце: Peter Fleury http://jump.to/fleury - пользуюсь его либами давно и ни разу не пожалел (немного подправил под себя и все)

Автор:  pwb [ Сб окт 10, 2009 17:41:32 ]
Заголовок сообщения: 

Спасибо Огромное!!! Весь инет перерыл... да видно не до конца :)

Автор:  pwb [ Сб окт 10, 2009 19:30:38 ]
Заголовок сообщения: 

НЕ работает через аппаратный TWI :(
софтовый в протеусе пашет... щас пролью на железо, посмотрим...
Хочу все-таки запустить на аппаратном!!! ПОМОГИТЕ!

Вложения:
clock.rar [41.16 KiB]
Скачиваний: 345

Автор:  pwb [ Сб окт 10, 2009 21:45:09 ]
Заголовок сообщения: 

вероятно неисправная МК часов или контроллер.

Автор:  Pooher [ Сб окт 10, 2009 22:38:38 ]
Заголовок сообщения: 

Я не понял, не работает в железе или в Proteus?
Если в железе, то возможно причина в низком питании. Ну а в Proteus, лично у меня, I2C не работает, правда я и не разбирался по чему, мне эта симуляция нафиг не нужна, я железу больше верю.

Автор:  pwb [ Сб окт 10, 2009 23:03:41 ]
Заголовок сообщения: 

питание нормальное 5.05 вольт.
подтягивающие резисторы стоят 4.7к
батарейка подключена + к ноге Vbat минус общий.
плату делал по всем требованиям даташита, т.е. экран есть
обнаружил, что часики греются... причем нормально так.

сделал софтовый I2C, в протеусе работает, на железе никак.
часы новые. инициализацию пытался сделать...
частоты МК пробовал разные от 1 до 8МГц от внутреннего кварца.
фото, как выглядит на железе прилагаю... в протеусе такую картинку можно получить если убрать один из подтягивающих резисторов.

Вложения:
Комментарий к файлу: вот так выглядит LCD
clock.jpg [3.12 KiB]
Скачиваний: 873

Автор:  ARV [ Сб окт 10, 2009 23:12:10 ]
Заголовок сообщения: 

даже и не знаю, что там может быть сложного...

вот файлик для работы с часами - ориентирован на использование библиотечки, что я вам давал

Вложения:
DS1307.rar [935 байт]
Скачиваний: 803

Автор:  Pooher [ Вс окт 11, 2009 10:04:04 ]
Заголовок сообщения: 

Ну, раз "часики греются", смотрите разводку

Автор:  pwb [ Вс окт 11, 2009 17:39:21 ]
Заголовок сообщения: 

часы действительно сдохли. поставил новые и исправил код.
поставил вот так:
Код:
void rtc_init(void)
{
  unsigned char temp;
  i2c_start(DS1307_ID+I2C_WRITE);
  i2c_write(0x00);
  i2c_start(DS1307_ID+I2C_READ);
  temp=i2c_read(NACK);
  i2c_stop();

  if(temp & (1<<CH))         //если питание часов пропадало
    {
      ds1307_addr[2]=0;
      ds1307_addr[1]=0;
      ds1307_addr[0]=0;
      hour_mode=HOUR_24;
      Write_DS1307();
      i2c_start(DS1307_ID+I2C_WRITE);
      i2c_write(DS1307_CONTROL);
      i2c_write(0x90);
      i2c_stop();

    }
}

теперь работает!!! большущее спасибо!!!

Автор:  geniusbsd [ Вс фев 21, 2010 10:37:02 ]
Заголовок сообщения: 

Привет Всем.
Возникла проблема собрал Atmega8 16PU + DS1307 по схеме из даташита
Запитывл схему четырьмя способами
1. Подано питание от программатора USBASP около 3 вольт, батарейка не впаяна. Все работает как надо.
2. Подано питание от программатора USBASP около 3 вольт, батарейка впаяна. Часы стоят.
3. При питании от кроны через кренку 5 вольтовую часы стоят
4. При подачи стабилизированного питания 5В(компьютерный БП) на кренку 5 вольтовую( на выходе 4.5В) батарейка не впаяна часы работаю

В архиве процедуры работы с аппаратным TWI и работы с ds1307

Вложения:
Комментарий к файлу: Процедуры работы с аппаратным TWI и часами
TWI.RAR [1.65 KiB]
Скачиваний: 500

Автор:  fizicko [ Пн авг 09, 2010 19:07:05 ]
Заголовок сообщения:  Re: WINAVR ATMega + DS1307

А можно будет в неё записывать и читать если кварц не заведёться?

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/