Волосатый писал(а): Кстати не обязательно. Всё зависит от того как часто обновляется экран, если после опроса ЧРВ то да будет именно так, а если после того как поменялась секунда, то, тоже не исключено, но реже.
RoboC писал(а):Какова частота опроса РТС? Если велика.... получите на статике эффект ..
Чуть чуть не до цитировали .
Если он анализирует только секунду, то глюк будет сразу в нескольких разрядах .
У того, кто делает — получается редко. У того, кто не делает — не получается никогда.
Волосатый писал(а):
ПС я тоже сталкивался с мусором на шине
Почему? Экономия на внешних резисторах 4.7 (5.1) кОм подвески к питанию, использование высокоомных, что в животе у МК и как следствие наводки от соседних цепей?
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
RoboC писал(а):Ссылка на пост того кто собирал, но к сожалению его уже 2 месяца тут нет .
Ссылка, которую вы видели, уже померла вместе с галереей. В ЛС переведем разговор..
dark_rider писал(а):индикация статика. можете ругаться и все такое, но поскольку это мой первый проект, было сделано именно так....просто идей особых нет(
Идеи есть !
Какова частота опроса РТС? Если велика, то при поочередном считывании неправильного значения(помехи) и правильного Вы получите на статике эффект который описали. Роем в сторону опроса РТС. Сами писали или библиотеку где то потянули? Если мне не изменяет память, то можно либо считать одну ячейку из РТС, либо пакетом(длинный) много ячеек подряд. Попробуйте короткий вариант или задержки правьте...
дальше идет в бесконечном цикле опрос
rtc_get_time(&hour, &min, &sec); // читаем из DS-ки время
и в зависимости от полученных цифр выстанавливаем ноги МК в нужные положения
(к сожалению из-за топологии платы приходилось каждый пин ручками программировать, то есть такая фишка как bin2bcd не прокатила)
но я не знаю, где эту частоту смотреть. хм, у меня тоже была мысль про помехи)
Darth Cuauhtemoc писал(а):дальше идет в бесконечном цикле опрос
rtc_get_time(&hour, &min, &sec); // читаем из DS-ки время
После этой команды добавьте 3 строчки, где присваиваете &hour, &min, &sec определенные значения. Часы идти не будут, но если глюк пропадет- проблема в обмене с RTC. Ну а там, отладчик с симулятором Вам в руки .
У того, кто делает — получается редко. У того, кто не делает — не получается никогда.
Darth Cuauhtemoc писал(а):дальше идет в бесконечном цикле опрос
rtc_get_time(&hour, &min, &sec); // читаем из DS-ки время
После этой команды добавьте 3 строчки, где присваиваете &hour, &min, &sec определенные значения. Часы идти не будут, но если глюк пропадет- проблема в обмене с RTC. Ну а там, отладчик с симулятором Вам в руки .
Нужно посмотреть, что записывается в регистр TWBR. От этого регистра зависит скорость работы шины, как рассчитать нужную, хорошо описано в даташите в разделе про TWI, там есть формула. Скорость выбирайте до 100кГц, 50 думаю вполне подойдет.
Почему? Экономия на внешних резисторах 4.7 (5.1) кОм подвески к питанию, использование высокоомных, что в животе у МК и как следствие наводки от соседних цепей?
Резисторы есть, цепи довольно длинные, проходящие рядом с другими высокочастотными цепями, незнаю в чем конкретно дело но факт остается фактом.
Последний раз редактировалось Волосатый Сб окт 12, 2013 13:19:11, всего редактировалось 1 раз.
Опыт приходит сразу после того, как он был нужен...
Волосатый писал(а):Резисторы есть, цепи довольно длинные, проходящие рядом с другими высокочастотными цепями, незнаю в чем конкретно дело но факт остается фактом.
У меня линии I2C короткие, окружены землей (все свободное пространство залито землей), внешние резисторы тоже есть - никаких проблем. И еще, обращение к RTC для чтения времени только один раз - при включении основного питания, т.е. вероятность поймать помехи именно в этот момент очень мала.
Тем не менее факт, что помехи в принципе могут пролезть на шину, удручает. Не всегда можно сделать наилучшую разводку.
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
Скорее для темы в Мяяу.
Заглючить шину I2C плохой разводкой платы, которая сама площадью с 3 спичечных коробка? Даже если поставить 200 переходных отверстий и пустить дорожки зигзагом, как на восточном ковре, всё равно не получится создать проблему для I2C. Интерфейс был изначально разработан для коммуникации между блоками бытовой техники, способен работать без сбоев на длинных проводах, метр и более. Припаяйте конденсатор по питанию. Если не поможет, припаяйте ещё один. Если конденсаторы не дали эффекта, - уберите баг в программе или сделайте обмен медленнее. Читая форум, мне несколько раз попадалось сообщение, о проблемах с точностью хода, при использовании DS1307 на длинных проводах, вдали от процессора. Как? Она ведь время внутри себя считает, причем тут интерфейс? Ё...
Microtech писал(а):Читая форум, мне несколько раз попадалось сообщение, о проблемах с точностью хода, при использовании DS1307 на длинных проводах, вдали от процессора. Как? Она ведь время внутри себя считает, причем тут интерфейс? Ё...
У меня были проблемы с точностью хода, вина моя, развел кварц не так, как было рекомендовано в даташите. Так что кто так говорил, просто длинные провода совпали с неправильно разведенным кварцем или отсутствием кондера по питанию, а человек подумал на провода.
Я на каждую микру ставлю 0.1 мкФ 0805 как можно ближе к ногам питания.
А на I2C наводки могут быть (как и на любые другие цепи), если в качестве подвески использовать внутренние высокоомные сопротивления МК. Но это уже отступление от спецификаций.
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
Microtech писал(а):Скорее для темы в Мяяу.. Читая форум, мне несколько раз попадалось сообщение, о проблемах с точностью хода, при использовании DS1307 на длинных проводах, вдали от процессора. Как? Она ведь время внутри себя считает, причем тут интерфейс? Ё...
я писал.
есть зависимость
даже DS3231 не хочет нормально работать. точность сильно "хромает".
хотя она даже со своим генератором "на борту".
это уже обсуждалось.
mss_ja,
Возможно DS3231 не хочет нормально работать из за наводок не на шину I2C а нацепи в самой микросхеме?
Всё-таки рядом с высоковольтными цепями стоит, по которым могут помехи от преобразователя проходить.
PS: чую будет у меня веселуха с тремя устройствами на I2C и их частым опросом.
Волосатый писал(а):dark_rider, поставьте для начала частоту опроса RTC один-два раза в секунду, если проблема с мусором на шине, то при получении такого мусора вы это будете наблюдать эти 0,5-1 секунду.
RoboC писал(а):... Вы получите на статике эффект который описали.
Кстати не обязательно. Всё зависит от того как часто обновляется экран, если после опроса ЧРВ то да будет именно так, а если после того как поменялась секунда, то, тоже не исключено, но реже.
ПС я тоже сталкивался с мусором на шине, но в 99,99% случаев передача прерывалась с зависанием TWI и МК получал "лог. единицу" что соотв. коду 0xFF, что соотв. высокоимпедансному состоянию на всех выводах дешифратора, что при завышенном анодном приводит к хаотичному свечению случайных катодов в лампе. Не стал особо заморачиваться и вставил проверку полученного на значение 0xFF, и если это получено, то этот пакет пропускается, TWI переинициализируется и передача начинается с начала.
дома нет программатора и lpt порта, это нужно часы на работу тащить(
все никак не обзаведусь нормальным..
ну а можете выложить код на проверку полученного на значение 0xFF?
хотя у меня когда начался этот баг, я залил прошивку без использования RTC, цифры ходили просто на delay , вроде тогда было нормально.
Palmyr писал(а):Возможно DS3231 не хочет нормально работать из за наводок не на шину I2C а нацепи в самой микросхеме? .
я же выложил печатку
под нее "расчищено " место . ни рядом. ни под ней ничего нет.
выпаяв и повесив ее "над процессором" все нормализуется.
кому интересно-найдите в теме где это обсуждалось. там все подробно
я же выскаывал предположение.
сбоит не сама шина.
по неи идут наводки внутрь микросхемы. и там уже она глючит.
Опять немного не в тему... Но думаю посетителям этой ветки будет полезен этот приборчик. Все-таки сейчас многие имеют дело с СМД деталями.
Наконец доделал.
suslogon писал(а):а я уже давно купил себе пинцет для смд вроде мастеч) и все равно мало пользуюсь....
Да он по цене наверно вышел как готовый. Примерно 1000р. Просто захотелось немного развлечься. Да и хоть редко но такой нужен. К тому же он определяет цоколевку транзисторов и диодов. Удобно.
Недавно видел ламповую сборку в ней 15 ламп содинены паралельно.Т.е.
Динамическая индикация управляет аж 15-тью лампами!
Лампы типа ZM размером с нашу ИН8.