-=Женек=- 0 23 января, 2011 Опубликовано 23 января, 2011 · Жалоба ГОспода, наступил на грабли: есть плата с основным питанием и реервным батарейным питанием для DS1307. Часики исправно работали. Затем я отключил плату, почистил ацетоном кое-какие участки и в довершение промыл водой из-под крана. А грабли в том, что батарейку то я не вытащил))))) Могла ли от этого сгореть микросхема или испортиться кварц? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DpInRock 0 23 января, 2011 Опубликовано 23 января, 2011 · Жалоба нет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mempfis_ 0 23 января, 2011 Опубликовано 23 января, 2011 · Жалоба Затем я отключил плату, почистил ацетоном кое-какие участки и в довершение промыл водой из-под крана. А грабли в том, что батарейку то я не вытащил))))) Могла ли от этого сгореть микросхема или испортиться кварц? Видимо батарейка села во время промывки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-=Женек=- 0 23 января, 2011 Опубликовано 23 января, 2011 · Жалоба Батарейка не села - это точно. На линиях SDA и SCL тишина, точнее единица. Домой попаду завтра, посмотрю, наверное что-то с контроллером, потому как должен же он что-то на линию выдавать. Хотя основная програма работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex11 5 24 января, 2011 Опубликовано 24 января, 2011 · Жалоба Если паяли гадким флюсом, то при наличии воды он мог начать проводить. Кварц при этом не генерит. Измерьте сопротивление между контактами кварца, должно быть несколько мегом. Если сильно меньше - мойте тщательнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 24 января, 2011 Опубликовано 24 января, 2011 · Жалоба Если сильно меньше - мойте тщательнее.... и спиртом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 22 30 января, 2011 Опубликовано 30 января, 2011 · Жалоба У меня в ремонт приезжала плата. Сознались что топили в ванне. Никак не хотела работать. Сменил кварц - заработала. Расковырял кварц - там вода!!! Видно глубокая была ванна. Корпус был HC49. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 30 января, 2011 Опубликовано 30 января, 2011 · Жалоба дрянной был корпус. негерметичный. а вообще интересно....поучительно ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-=Женек=- 0 24 марта, 2011 Опубликовано 24 марта, 2011 · Жалоба Возвращаюсь к теме. ТОгда проблема была действительно во флюсе. Отмыл и все ОК. Часы заработали. Устройство я отладил, заказал плату, напаял детали - не работает. С заведомо правильным кодом и правильной разводкой. Основной симптом - все цифры - и времени и даты равны 165. О чем это может говорить? О проблеме в микросхеме или на шине i2c? Могу еще добавить, что после изготовления конечной платы я напаял другой контроллер - вместо ATMega32 у меня ATMega644p. Адрес порта С как полагается исправил с 0x12 на 8. Может еще есть какие отличия этих контроллеров в работе с i2c? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
domowoj 0 25 марта, 2011 Опубликовано 25 марта, 2011 · Жалоба Даташит - это же не КОРАН! Читайте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-=Женек=- 0 25 марта, 2011 Опубликовано 25 марта, 2011 · Жалоба domowoj, спасибо, но курение даташита ни к чему не привело. Единственное - я понял, что i2c все же работает правильно, ибо на соответствующем выходе DS1307 имеются импульсы 1Гц, значит инициализация проходит... А дальше два варианта - неправильная трансформация данных в процессе вывода их на экран, либо ошибка в микросхеме. Щупаю линию SDA осциллографом - там постоянная не меняющаяся последовательность импульсов. Т.Е. DS1307 тикает (судя по SQW), но данные на выходе не меняются. Но пару раз за все время правильные цифры на экран все- же проскочили. Монтаж я проверял, все ОК, да и, учитывая вышесказанное, не в монтаже дело. Может у кого-то была именно такая ситуация - число 165 во всех переменных? Код я выложу вечером, но смею вас заверить, он раньше работал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexashka 0 25 марта, 2011 Опубликовано 25 марта, 2011 · Жалоба Проверьте битовую скорость, она не должна быть больше 100кГц Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-=Женек=- 0 25 марта, 2011 Опубликовано 25 марта, 2011 · Жалоба Мерял частотомером тестера - 43 кГц, не знаю, насколько точно вышло. Я работаю в CodeVision, делаю так: unsigned char DS_R; unsigned char hour,minute,second,date,month,year; unsigned char *pHour,*pMinute,*pSecond,*pDate,*pMonth,*pYear; void main() { pHour=&hour; pMinute=&minute; pSecond=&second; pDate=&date; pMonth=&month; pYear=&year; rtc_init(0,1,0); DS_R=rtc_read(0); //прочесть нулевой байт rtc_write(0,(DS_R&=0b01111111)); //обнулить старший бит(CH) запустить внутренний генератор rtc_set_date(24,03,11); rtc_set_time(20,50,0); rtc_get_date(pDate,pMonth,pYear); rtc_get_time(pHour,pMinute,pSecond); SetFont(402); FillRect(0,440,210,479, clBlue,clBlue); GotoXY(10,430); sprintf(s,"%02d/%02d/20%02d",date,month,year); PutString(s); FillRect(630,440,799,479, clBlue,clBlue); GotoXY(635,430); sprintf(s,"%02u:%02u:%02u",hour,minute,second); PutString(s); } А где эту частоту устанавливать надо? Нет, я конечно могу записать в регистры что-то, но в стандартной библиотеке есть только i2c_init() параметров.... Проблема решена!!!! Надо было всего лишь подключить батарейку!!! Всем спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться