Страница 1 из 1
WINAVR ATMega + DS1307
Добавлено: Сб окт 10, 2009 12:44:51
pwb
Привет!
Никак не могу подружить мегу8 и часы
Помогите пожалуйста. В протеусе все нормально, а когда дело доходит до железа, то полный аут. все висит.
Я подозреваю что дело в этом:
если сделать вот так:
Код: Выделить всё
// 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?
Нигде не могу найти

Добавлено: Сб окт 10, 2009 13:00:13
ARV
кинуть можно, только искать надо, да и опасаюсь - кину, да вдруг попаду и зашибу?! так что поищите сами

нормальную либу для работы с
I2C
для начала вот вам ключик к тайной дверце: Peter Fleury
http://jump.to/fleury - пользуюсь его либами давно и ни разу не пожалел (немного подправил под себя и все)
Добавлено: Сб окт 10, 2009 17:41:32
pwb
Спасибо Огромное!!! Весь инет перерыл... да видно не до конца

Добавлено: Сб окт 10, 2009 19:30:38
pwb
НЕ работает через аппаратный TWI
софтовый в протеусе пашет... щас пролью на железо, посмотрим...
Хочу все-таки запустить на аппаратном!!! ПОМОГИТЕ!
Добавлено: Сб окт 10, 2009 21:45:09
pwb
вероятно неисправная МК часов или контроллер.
Добавлено: Сб окт 10, 2009 22:38:38
Pooher
Я не понял, не работает в железе или в Proteus?
Если в железе, то возможно причина в низком питании. Ну а в Proteus, лично у меня, I2C не работает, правда я и не разбирался по чему, мне эта симуляция нафиг не нужна, я железу больше верю.
Добавлено: Сб окт 10, 2009 23:03:41
pwb
питание нормальное 5.05 вольт.
подтягивающие резисторы стоят 4.7к
батарейка подключена + к ноге Vbat минус общий.
плату делал по всем требованиям даташита, т.е. экран есть
обнаружил, что часики греются... причем нормально так.
сделал софтовый I2C, в протеусе работает, на железе никак.
часы новые. инициализацию пытался сделать...
частоты МК пробовал разные от 1 до 8МГц от внутреннего кварца.
фото, как выглядит на железе прилагаю... в протеусе такую картинку можно получить если убрать один из подтягивающих резисторов.
Добавлено: Сб окт 10, 2009 23:12:10
ARV
даже и не знаю, что там может быть сложного...
вот файлик для работы с часами - ориентирован на использование библиотечки, что я вам давал
Добавлено: Вс окт 11, 2009 10:04:04
Pooher
Ну, раз "часики греются", смотрите разводку
Добавлено: Вс окт 11, 2009 17:39:21
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();
}
}
теперь работает!!! большущее спасибо!!!
Добавлено: Вс фев 21, 2010 10:37:02
geniusbsd
Привет Всем.
Возникла проблема собрал Atmega8 16PU + DS1307 по схеме из даташита
Запитывл схему четырьмя способами
1. Подано питание от программатора USBASP около 3 вольт, батарейка не впаяна. Все работает как надо.
2. Подано питание от программатора USBASP около 3 вольт, батарейка впаяна. Часы стоят.
3. При питании от кроны через кренку 5 вольтовую часы стоят
4. При подачи стабилизированного питания 5В(компьютерный БП) на кренку 5 вольтовую( на выходе 4.5В) батарейка не впаяна часы работаю
В архиве процедуры работы с аппаратным TWI и работы с ds1307
Re: WINAVR ATMega + DS1307
Добавлено: Пн авг 09, 2010 19:07:05
fizicko
А можно будет в неё записывать и читать если кварц не заведёться?