WINAVR ATMega + DS1307

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
pwb
Родился
Сообщения: 6
Зарегистрирован: Сб окт 10, 2009 12:35:18
Откуда: Армавир

WINAVR ATMega + DS1307

Сообщение pwb »

Привет!

Никак не могу подружить мегу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 КБ) 427 скачиваний
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

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

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

Мой уютный бложик... заходите!
pwb
Родился
Сообщения: 6
Зарегистрирован: Сб окт 10, 2009 12:35:18
Откуда: Армавир

Сообщение pwb »

Спасибо Огромное!!! Весь инет перерыл... да видно не до конца :)
pwb
Родился
Сообщения: 6
Зарегистрирован: Сб окт 10, 2009 12:35:18
Откуда: Армавир

Сообщение pwb »

НЕ работает через аппаратный TWI :(
софтовый в протеусе пашет... щас пролью на железо, посмотрим...
Хочу все-таки запустить на аппаратном!!! ПОМОГИТЕ!
Вложения
clock.rar
(41.16 КБ) 348 скачиваний
pwb
Родился
Сообщения: 6
Зарегистрирован: Сб окт 10, 2009 12:35:18
Откуда: Армавир

Сообщение pwb »

вероятно неисправная МК часов или контроллер.
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

Я не понял, не работает в железе или в Proteus?
Если в железе, то возможно причина в низком питании. Ну а в Proteus, лично у меня, I2C не работает, правда я и не разбирался по чему, мне эта симуляция нафиг не нужна, я железу больше верю.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
pwb
Родился
Сообщения: 6
Зарегистрирован: Сб окт 10, 2009 12:35:18
Откуда: Армавир

Сообщение pwb »

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

сделал софтовый I2C, в протеусе работает, на железе никак.
часы новые. инициализацию пытался сделать...
частоты МК пробовал разные от 1 до 8МГц от внутреннего кварца.
фото, как выглядит на железе прилагаю... в протеусе такую картинку можно получить если убрать один из подтягивающих резисторов.
Вложения
clock.jpg
вот так выглядит LCD
(3.12 КБ) 874 скачивания
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

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

вот файлик для работы с часами - ориентирован на использование библиотечки, что я вам давал
Вложения
DS1307.rar
(935 байт) 804 скачивания
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

Ну, раз "часики греются", смотрите разводку
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
pwb
Родился
Сообщения: 6
Зарегистрирован: Сб окт 10, 2009 12:35:18
Откуда: Армавир

Сообщение pwb »

часы действительно сдохли. поставил новые и исправил код.
поставил вот так:

Код: Выделить всё

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
Встал на лапы
Сообщения: 82
Зарегистрирован: Ср авг 19, 2009 09:34:50

Сообщение geniusbsd »

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

В архиве процедуры работы с аппаратным TWI и работы с ds1307
Вложения
TWI.RAR
Процедуры работы с аппаратным TWI и часами
(1.65 КБ) 504 скачивания
Аватара пользователя
fizicko
Родился
Сообщения: 12
Зарегистрирован: Пн июн 14, 2010 13:47:19

Re: WINAVR ATMega + DS1307

Сообщение fizicko »

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

Вернуться в «Микроконтроллеры и ПЛИС»