Почему? Экономия на внешних резисторах 4.7 (5.1) кОм подвески к питанию, использование высокоомных, что в животе у МК и как следствие наводки от соседних цепей?Волосатый писал(а): ПС я тоже сталкивался с мусором на шине
Часы на газоразрядных индикаторах
-
Darth Cuauhtemoc
- Говорящий с текстолитом
- Сообщения: 1699
- Зарегистрирован: Вс июн 16, 2013 18:41:45
Re: Часы на газоразрядных индикаторах
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
- Реклама
-
Dark_Rider
- Держит паяльник хвостом
- Сообщения: 956
- Зарегистрирован: Чт июл 19, 2012 10:30:17
Re: Часы на газоразрядных индикаторах
я прошивку брал за основу такую:RoboC писал(а):Ссылка на пост того кто собирал, но к сожалению его уже 2 месяца тут нет.
Ссылка, которую вы видели, уже померла вместе с галереей. В ЛС переведем разговор..
Идеи естьdark_rider писал(а):индикация статика. можете ругаться и все такое, но поскольку это мой первый проект, было сделано именно так....просто идей особых нет(!
Какова частота опроса РТС? Если велика, то при поочередном считывании неправильного значения(помехи) и правильного Вы получите на статике эффект который описали. Роем в сторону опроса РТС. Сами писали или библиотеку где то потянули? Если мне не изменяет память, то можно либо считать одну ячейку из РТС, либо пакетом(длинный) много ячеек подряд. Попробуйте короткий вариант или задержки правьте...
Код: Выделить всё
#include <mega8535.h>
#include <delay.h>
// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=1
.equ __scl_bit=0
#endasm
#include <i2c.h>
#include <bcd.h>
// DS1307 Real Time Clock functions
#include <ds1307.h>
#define dreb 10
#define smena_tsifr 500
#define dreb_set 1000
#define dreb_set_2 100
#define kn_set 0b01111100
#define kn_hour 0b10111100
#define kn_min 0b11011100
#define kn_sec 0b11101100
#define obn 100
// Declare your global variables here
char hour, min, sec; //переменные для времени.
char tmp;
void main(void)
{
DDRA=0xFF;
DDRB=0xFF;
PORTC=0xFF;
DDRD=0xFF;
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
// I2C Bus initialization
i2c_init();
tmp = rtc_read(0x00);
//tmp &=~(1<<7);
tmp=tmp&0b01111111;
rtc_write(0x00, tmp); //включение DS1307, бит 7 ноль
tmp = rtc_read(0x02);
//tmp &=~(1<<6);
tmp=tmp&0b0111111;
rtc_write(0x02, tmp); // бит 6 ноль - 24ох часовой режим
rtc_init(0, 1, 1); // включение генератора импульсов
//rtc_set_time(14,02 , 00);
rtc_get_time(&hour, &min, &sec); // читаем из DS-ки время
и в зависимости от полученных цифр выстанавливаем ноги МК в нужные положения
(к сожалению из-за топологии платы приходилось каждый пин ручками программировать, то есть такая фишка как bin2bcd не прокатила)
но я не знаю, где эту частоту смотреть. хм, у меня тоже была мысль про помехи)
- RoboC
- Мудрый кот
- Сообщения: 1795
- Зарегистрирован: Ср апр 04, 2012 09:55:53
- Откуда: Северодонецк
- Контактная информация:
Re: Часы на газоразрядных индикаторах
После этой команды добавьте 3 строчки, где присваиваете &hour, &min, &sec определенные значения. Часы идти не будут, но если глюк пропадет- проблема в обмене с RTC. Ну а там, отладчик с симулятором Вам в рукиDarth Cuauhtemoc писал(а):дальше идет в бесконечном цикле опрос
rtc_get_time(&hour, &min, &sec); // читаем из DS-ки время
У того, кто делает — получается редко. У того, кто не делает — не получается никогда.
-
Dark_Rider
- Держит паяльник хвостом
- Сообщения: 956
- Зарегистрирован: Чт июл 19, 2012 10:30:17
Re: Часы на газоразрядных индикаторах
хм, интересная идея, нужно попробовать, спасибо)RoboC писал(а):После этой команды добавьте 3 строчки, где присваиваете &hour, &min, &sec определенные значения. Часы идти не будут, но если глюк пропадет- проблема в обмене с RTC. Ну а там, отладчик с симулятором Вам в рукиDarth Cuauhtemoc писал(а):дальше идет в бесконечном цикле опрос
rtc_get_time(&hour, &min, &sec); // читаем из DS-ки время.
- Волосатый
- Сверлит текстолит когтями
- Сообщения: 1288
- Зарегистрирован: Пн апр 14, 2008 12:54:35
- Откуда: Город ГЕРОЙ Ленинград
- Контактная информация:
Re: Часы на газоразрядных индикаторах
Вот здесь Нужно посмотреть, что записывается в регистр TWBR. От этого регистра зависит скорость работы шины, как рассчитать нужную, хорошо описано в даташите в разделе про TWI, там есть формула. Скорость выбирайте до 100кГц, 50 думаю вполне подойдет.
Код: Выделить всё
i2c_init();Резисторы есть, цепи довольно длинные, проходящие рядом с другими высокочастотными цепями, незнаю в чем конкретно дело но факт остается фактом.Почему? Экономия на внешних резисторах 4.7 (5.1) кОм подвески к питанию, использование высокоомных, что в животе у МК и как следствие наводки от соседних цепей?
Последний раз редактировалось Волосатый Сб окт 12, 2013 13:19:11, всего редактировалось 1 раз.
Опыт приходит сразу после того, как он был нужен...
- Реклама
-
Dark_Rider
- Держит паяльник хвостом
- Сообщения: 956
- Зарегистрирован: Чт июл 19, 2012 10:30:17
Re: Часы на газоразрядных индикаторах
окей, поищу на примерах, спасибо
-
Darth Cuauhtemoc
- Говорящий с текстолитом
- Сообщения: 1699
- Зарегистрирован: Вс июн 16, 2013 18:41:45
Re: Часы на газоразрядных индикаторах
У меня линии I2C короткие, окружены землей (все свободное пространство залито землей), внешние резисторы тоже есть - никаких проблем. И еще, обращение к RTC для чтения времени только один раз - при включении основного питания, т.е. вероятность поймать помехи именно в этот момент очень мала.Волосатый писал(а):Резисторы есть, цепи довольно длинные, проходящие рядом с другими высокочастотными цепями, незнаю в чем конкретно дело но факт остается фактом.
Тем не менее факт, что помехи в принципе могут пролезть на шину, удручает. Не всегда можно сделать наилучшую разводку.
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
- Microtech
- Поставщик валерьянки для Кота
- Сообщения: 2052
- Зарегистрирован: Вт ноя 03, 2009 21:02:38
- Откуда: Москва
- Контактная информация:
Re: Часы на газоразрядных индикаторах
Скорее для темы в Мяяу.
Заглючить шину I2C плохой разводкой платы, которая сама площадью с 3 спичечных коробка? Даже если поставить 200 переходных отверстий и пустить дорожки зигзагом, как на восточном ковре, всё равно не получится создать проблему для I2C. Интерфейс был изначально разработан для коммуникации между блоками бытовой техники, способен работать без сбоев на длинных проводах, метр и более. Припаяйте конденсатор по питанию. Если не поможет, припаяйте ещё один. Если конденсаторы не дали эффекта, - уберите баг в программе или сделайте обмен медленнее. Читая форум, мне несколько раз попадалось сообщение, о проблемах с точностью хода, при использовании DS1307 на длинных проводах, вдали от процессора. Как? Она ведь время внутри себя считает, причем тут интерфейс? Ё...
Заглючить шину I2C плохой разводкой платы, которая сама площадью с 3 спичечных коробка? Даже если поставить 200 переходных отверстий и пустить дорожки зигзагом, как на восточном ковре, всё равно не получится создать проблему для I2C. Интерфейс был изначально разработан для коммуникации между блоками бытовой техники, способен работать без сбоев на длинных проводах, метр и более. Припаяйте конденсатор по питанию. Если не поможет, припаяйте ещё один. Если конденсаторы не дали эффекта, - уберите баг в программе или сделайте обмен медленнее. Читая форум, мне несколько раз попадалось сообщение, о проблемах с точностью хода, при использовании DS1307 на длинных проводах, вдали от процессора. Как? Она ведь время внутри себя считает, причем тут интерфейс? Ё...
-
Darth Cuauhtemoc
- Говорящий с текстолитом
- Сообщения: 1699
- Зарегистрирован: Вс июн 16, 2013 18:41:45
Re: Часы на газоразрядных индикаторах
У меня были проблемы с точностью хода, вина моя, развел кварц не так, как было рекомендовано в даташите. Так что кто так говорил, просто длинные провода совпали с неправильно разведенным кварцем или отсутствием кондера по питанию, а человек подумал на провода.Microtech писал(а):Читая форум, мне несколько раз попадалось сообщение, о проблемах с точностью хода, при использовании DS1307 на длинных проводах, вдали от процессора. Как? Она ведь время внутри себя считает, причем тут интерфейс? Ё...
Я на каждую микру ставлю 0.1 мкФ 0805 как можно ближе к ногам питания.
А на I2C наводки могут быть (как и на любые другие цепи), если в качестве подвески использовать внутренние высокоомные сопротивления МК. Но это уже отступление от спецификаций.
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
Re: Часы на газоразрядных индикаторах
я писал.Microtech писал(а):Скорее для темы в Мяяу.. Читая форум, мне несколько раз попадалось сообщение, о проблемах с точностью хода, при использовании DS1307 на длинных проводах, вдали от процессора. Как? Она ведь время внутри себя считает, причем тут интерфейс? Ё...
есть зависимость
даже DS3231 не хочет нормально работать. точность сильно "хромает".
хотя она даже со своим генератором "на борту".


это уже обсуждалось.
-
Palmyr
- Вымогатель припоя
- Сообщения: 564
- Зарегистрирован: Сб апр 23, 2011 17:59:55
- Откуда: Мурманск // СПБ
Re: Часы на газоразрядных индикаторах
mss_ja,
Возможно DS3231 не хочет нормально работать из за наводок не на шину I2C а нацепи в самой микросхеме?
Всё-таки рядом с высоковольтными цепями стоит, по которым могут помехи от преобразователя проходить.
PS: чую будет у меня веселуха с тремя устройствами на I2C и их частым опросом.
Возможно DS3231 не хочет нормально работать из за наводок не на шину I2C а нацепи в самой микросхеме?
Всё-таки рядом с высоковольтными цепями стоит, по которым могут помехи от преобразователя проходить.
PS: чую будет у меня веселуха с тремя устройствами на I2C и их частым опросом.
Наше солнце, гори - не сгорай!


-
Dark_Rider
- Держит паяльник хвостом
- Сообщения: 956
- Зарегистрирован: Чт июл 19, 2012 10:30:17
Re: Часы на газоразрядных индикаторах
дома нет программатора и lpt порта, это нужно часы на работу тащить(Волосатый писал(а):dark_rider, поставьте для начала частоту опроса RTC один-два раза в секунду, если проблема с мусором на шине, то при получении такого мусора вы это будете наблюдать эти 0,5-1 секунду.Кстати не обязательно. Всё зависит от того как часто обновляется экран, если после опроса ЧРВ то да будет именно так, а если после того как поменялась секунда, то, тоже не исключено, но реже.RoboC писал(а):... Вы получите на статике эффект который описали.
ПС я тоже сталкивался с мусором на шине, но в 99,99% случаев передача прерывалась с зависанием TWI и МК получал "лог. единицу" что соотв. коду 0xFF, что соотв. высокоимпедансному состоянию на всех выводах дешифратора, что при завышенном анодном приводит к хаотичному свечению случайных катодов в лампе. Не стал особо заморачиваться и вставил проверку полученного на значение 0xFF, и если это получено, то этот пакет пропускается, TWI переинициализируется и передача начинается с начала.
все никак не обзаведусь нормальным..
ну а можете выложить код на проверку полученного на значение 0xFF?
хотя у меня когда начался этот баг, я залил прошивку без использования RTC, цифры ходили просто на delay , вроде тогда было нормально.
Re: Часы на газоразрядных индикаторах
я же выложил печаткуPalmyr писал(а):Возможно DS3231 не хочет нормально работать из за наводок не на шину I2C а нацепи в самой микросхеме? .
под нее "расчищено " место . ни рядом. ни под ней ничего нет.
выпаяв и повесив ее "над процессором" все нормализуется.
кому интересно-найдите в теме где это обсуждалось. там все подробно
я же выскаывал предположение.
сбоит не сама шина.
по неи идут наводки внутрь микросхемы. и там уже она глючит.
- Ян
- Поставщик валерьянки для Кота
- Сообщения: 1947
- Зарегистрирован: Вт ноя 01, 2005 17:32:22
- Откуда: Москва
Re: Часы на газоразрядных индикаторах
Опять немного не в тему... Но думаю посетителям этой ветки будет полезен этот приборчик. Все-таки сейчас многие имеют дело с СМД деталями.

Наконец доделал.
Наконец доделал.
- suslogon
- Друг Кота
- Сообщения: 10693
- Зарегистрирован: Пн июл 14, 2008 21:28:00
- Откуда: Москва
- Контактная информация:
Re: Часы на газоразрядных индикаторах
а я уже давно купил себе пинцет для смд
вроде мастеч) и все равно мало пользуюсь....
Ищу тиратрон ТХИ1-2000/4, ГРИ ИН-23, ФЭУ-103; 134; 135, 138, 155, 157, лампу ИСШ-7.
Любые ГИС серий 203, 225, 233, 244, 250, 296, 801, 838 в любом состоянии. Компоненты и детали от миниатюрных твердотельных лазеров.
Любые ГИС серий 203, 225, 233, 244, 250, 296, 801, 838 в любом состоянии. Компоненты и детали от миниатюрных твердотельных лазеров.
-
Dark_Rider
- Держит паяльник хвостом
- Сообщения: 956
- Зарегистрирован: Чт июл 19, 2012 10:30:17
Re: Часы на газоразрядных индикаторах
выглядит симпотно.
- suslogon
- Друг Кота
- Сообщения: 10693
- Зарегистрирован: Пн июл 14, 2008 21:28:00
- Откуда: Москва
- Контактная информация:
Re: Часы на газоразрядных индикаторах
dark_rider писал(а):выглядит симпотно.
Ищу тиратрон ТХИ1-2000/4, ГРИ ИН-23, ФЭУ-103; 134; 135, 138, 155, 157, лампу ИСШ-7.
Любые ГИС серий 203, 225, 233, 244, 250, 296, 801, 838 в любом состоянии. Компоненты и детали от миниатюрных твердотельных лазеров.
Любые ГИС серий 203, 225, 233, 244, 250, 296, 801, 838 в любом состоянии. Компоненты и детали от миниатюрных твердотельных лазеров.
- Ян
- Поставщик валерьянки для Кота
- Сообщения: 1947
- Зарегистрирован: Вт ноя 01, 2005 17:32:22
- Откуда: Москва
Re: Часы на газоразрядных индикаторах
Да он по цене наверно вышел как готовый.suslogon писал(а):а я уже давно купил себе пинцет для смдвроде мастеч) и все равно мало пользуюсь....
Re: Часы на газоразрядных индикаторах
Недавно видел ламповую сборку в ней 15 ламп содинены паралельно.Т.е.
Динамическая индикация управляет аж 15-тью лампами!
Лампы типа ZM размером с нашу ИН8.
Динамическая индикация управляет аж 15-тью лампами!
Лампы типа ZM размером с нашу ИН8.
-
kozutinalexei
- Родился
- Сообщения: 19
- Зарегистрирован: Чт сен 26, 2013 21:38:10



