Проблема в том, что пользуясь библиотечной функцией ds1302.h из CV AVR при вызове любой функции к МС DS1302, МК уходит в себя на 12сек (выполнение ds1302_write(0x80,0); rtc_get_time(&ds_h,&ds_m,&ds_s); займёт пол минуты). После чего у меня сбоят переменные(появляются непредвиденные значения, притом теперь уже постоянно).
Пытался сам, общатся с МС DS1302, пока не получилось. Тыкать пальцом в небо, считаю не нужным. Потому и ищу МС RTC подключаемую по SPI. ТК при инициализации SPI можно регулировать частоту синхронизации.
Вот в кратце, надеюсь всё понятно.
Уважаемый, все таки Ваши посты - это что-то... Как по содержательности мыслей, так и по способу их выражения, уж простите великодушно... Как правило, просто не удается понять, чего же Вы, в сущности, хотите... Стоило ARV'у Вас пнуть - откуда-то взялось вполне внятное и грамотное (если закрыть глаза на орфографию с пунктуацией ) изложение. Может, стоит так всегда поступать, а не пинков дожидаться?
DS1307 прекрасно работает с имеющейся в составе CVAVR библиотекой. Проверял. Лично.
Пробовал работать в симуляторе и в железе с ds1307 и библиотеками с CVAVR, всё нормально, глюк подобный "зависанию" или большой задержке возникает если неправильно подключен RTC к контролеру, например если у 1307 не подтянуты линии к +5...
Да?
А вот почему она у меня при смене дня, как я расчитывал должна измениться дата. А она виснет и всё...
Т.е ставлю 23:59 сижу и жду.. 00:00 и ничего...
День как был так и остался!
А я за неё 120 руб в Чип и Дипе! ***! Отдал!!!
Какая ****! мне её посоветовала!!!
И вообще виснет нистого ни ссего!
Одно предположение - поставить кондёр на питалово, может скачёк при работе с регистрами...
И что это и зачем(!) какоито - burst mode!! Нафига и для чего!
Чё это воще такое!! Пересмотрел несколько даташитов!! От максим и даллас(говно полное) нихрена не понял...
а код сохранился?? можете прислать свой код и схему, у меня щас как-раз проект на 1307, вдруг и правда такой глюк, нужно знать о таких граблях (хотя у меня переход с 23:59 на 00:00 спокойно проходит, но мало-ли...)
Какой код нафиг!
Как по двум проводкам общаться, ну хочешь распишу.
Глюк не глюк, а не работает!
Тоесть я чегото не понял! или не знаю!
Дуратский вопрос а зачем burst mode?
А зачем там RAM?
А надо ли WP устанавоивать в 1-цу после записи данных (даты или времени например), или пускай всегда в 0 (разрешена запись в регистры и всё).
Что такое second register и вообще чё он делает? От чего запитан если на него trickle не действует... где тогда first?!
Нет , приммерно всё понятно и время считает, но! Возникают какието сбои и непонятки!!! А я немогу выпускать изделие если есть хоть чтото не стабильно работающее!!!
Куча вопросов! И нет никде ответов!!!
В итоге получается что я хожу бешенный уже 3-й день, потому шо спалил 2-е ds1302, а третья хоть и работает но в 24:00 виснет и дату не переводит! А нахера она мне тогда! Если я её и поставил только для этого! Почему основное питалово от батарейки! ***! А по схеме из датащита питалово на другую ногу. А это ещё весь даташит надо перелопатить чтоб дошло. Что питалово от БП это для заряда батарейки (офигеть)!!! а не для питания МС! Чё за уроды! Зачем тогда присваивать контакту обозначение Vcc!!! МС вылетает (навсегда) если не подал на Vсс2.
Те у кого работает, сидят и молчат, у них таких вопросов не возникает, так и задачи у них "домашние".
Нет, я понимаю что это я во всём виноват. Т.к подал напряжение на Vcc2 от БП, через диод. А на сам контакт Vcc2 подвешен кондёр-электролит(танталовый). Может он не успевает сгладить скачёк когда регистры переключаются... надо 0,1мкФ керамический довесить, может поможет!? Но мне так надо, у мня нет батарейки!
Так, давайте по порядку (мож ваще в АСЮ 4б4_О57_ОЗ5 ), какой у вас контроллер?? на каком порту висит 1302??, на каких пинах.
Я так понял, что у вас нестандартное питание DS-ки, через диод от 5V? сколько там получаеться?? хотя по даташиту там можно и 5, лиш-бы одно меньше другого.
"зачем burst mode" -я так понял режим ускоренного доступа при чтении и записи, типа адрес не ставиш, а он сам с нуля инкрементиться и подрят данные льёт. (ненужно тратить клоки на закачку адреса) хотя может и не так, но если глючит, я-бы его не включал.
"зачем там RAM"- Можно что-то хранить, если например питание с устройства снимаеш, то несколько коэффициэнтов спокойно храняться в памяти чипа. ну мало-ли для чего ещё... я в 1307 храню несколько важных битов.
"А надо ли WP устанавоивать в 1-цу после записи данных "- Нужно устанавли до записи, а потом снимать.
"second register "- чё? секундный что-ли???
Повторяю- питание подано на Vcc1(по схеме туда подключается батарейка) даю 3,85-4,88В. Через диод на прямую, к этой же ножке подсоединён электр. кондёр. Vсс2 в воздухе т.к. на неё должен идти заряд для батарейки, а мне это не нада. Если подключить не так(Vсс1 в воздухе) - мс вылетает.
Анамнез - в полночь не переводит дату, а бывает что и виснет (в полночь).
Я писал надоли устанавливать wp в 1 после общения с мс. Мне это нафиг не важно, ей надо или нет? Пусть всё время снят -0.
Если пишете, то сначало WP в 1, пишете, потом в 0, а если не пишете то 0 всегда...
Незнаю, я попробовал Mega8+1302+CVAVR+Proteus, всё нормально, время устанавливаеться, тикает, переходит через день, месяц, и год (в железе у меня 1307, но библиотеки CVAVR тоже), но Proteus не моделирует питалово, всё-таки я-бы попробовал подключить сначало полностью как в даташите а потом уже отключать одно из питаний... Однако сколько я моделировал такие простенькие схемы- как правило Proteus не врёт, и если код работает в симуляторе нормально, то и в железе (при условии правильного подключения) тоже всё работает. (Прикрепил код и DSN файл).
Какой длинны у вас соединения между контроллером и DS-кой?? мож помеха какая, и с какой частотой вы гоните сигнал, может многовато???
Виснит контроллер или часы??
Вот вот, я про это и думал, когда пытался с CV AVR библиотекой ds1302 или 1307 работать.
Но написал всё своё. Общается правильно и стабильно.
Но в полночь (т.е. записываю и проверяю в DS1302 - 23:59 и жду когда будет 00:00, смотрю на дату (её я тоже проверил)) смена даты не происходит и ds1302 виснет (но иногда и не виснет, но дату не меняет ни когда).
Вот я и парюсь, что я не так сделел? А точнее эти "грамматическая ошибка на уровне 4 класса", западники! Чтото понаписали и придумали как им кажется правильно. Потому что никому из них, в голову не прийдёт вместо батарейки использовать кондёр! А питание на Vcc2 не подаю т.к устройство целиком не запитано, в данный момент!
нуу, на счёт кондёра, всё-таки этот чип специально разрабатывался под батарейку, и любой нештатный режим эту уже "ХАК", всё-таки я -бы проверил работу чипа в штатном режиме с кодом от cvavr 1.25.5, чтобы быть точно уверенным, что можно дальше хакать.
MetEl
Что то ты помоему путаеш. Я вот сейчас из любопытства смотрю даташит 1302. Там написано, что к Vcc1 зарядка включается ПРОГРАМНО, записью неких значения в регистр управления зарядки. Причем ток зарядки регулируется записью битов RS, значения от 1 до 3 . При этом включается внутренний резистор 2, 4 и 8кОм соответственно. При подаче питания на этот вывод она вообще отвечать контроллеру по идее не должна. Она должна находится в режиме малого потребления. Возможно там при отсутствии питания на Vcc2 при попытке обращения происходит какой то глюк, чито конструктивного характера. Не думаю что разработчик предполагал, что в отсутствии питания кто то будет обращаться к данным.
Повторяю! Спили мушку!
Vcс1 питание!!
Перелопать/те весь тадашит да не от далласа а от максима(он более правильный!, хотя тоже детские каракули! типа мурзилки...) и найдёте где это прописано.
А с Vcc2 пойдёт ток заряда на батарейку(!) но это если прописать в соотв. регистры. А как пропишешь если микросхема не будет запитана!? Поэтому на Vcc1 подавать обязательно!
Это на схеме (зачемто!) нарисовано Vcc2 к питанию!
И нужно ещё поискать и перевести где написано как её питать.