Страница 1344 из 2452

Re: Часы на газоразрядных индикаторах

Добавлено: Пт окт 11, 2013 07:09:10
RoboC
Волосатый писал(а): Кстати не обязательно. Всё зависит от того как часто обновляется экран, если после опроса ЧРВ то да будет именно так, а если после того как поменялась секунда, то, тоже не исключено, но реже.
RoboC писал(а):Какова частота опроса РТС? Если велика.... получите на статике эффект ..
Чуть чуть не до цитировали :wink: .

Если он анализирует только секунду, то глюк будет сразу в нескольких разрядах .

Re: Часы на газоразрядных индикаторах

Добавлено: Пт окт 11, 2013 07:46:39
Darth Cuauhtemoc
Волосатый писал(а): ПС я тоже сталкивался с мусором на шине
Почему? Экономия на внешних резисторах 4.7 (5.1) кОм подвески к питанию, использование высокоомных, что в животе у МК и как следствие наводки от соседних цепей?

Re: Часы на газоразрядных индикаторах

Добавлено: Пт окт 11, 2013 09:22:04
Dark_Rider
RoboC писал(а):Ссылка на пост того кто собирал, но к сожалению его уже 2 месяца тут нет :( .
Ссылка, которую вы видели, уже померла вместе с галереей. В ЛС переведем разговор..
dark_rider писал(а):индикация статика. можете ругаться и все такое, но поскольку это мой первый проект, было сделано именно так....просто идей особых нет(
Идеи есть :idea: !
Какова частота опроса РТС? Если велика, то при поочередном считывании неправильного значения(помехи) и правильного Вы получите на статике эффект который описали. Роем в сторону опроса РТС. Сами писали или библиотеку где то потянули? Если мне не изменяет память, то можно либо считать одну ячейку из РТС, либо пакетом(длинный) много ячеек подряд. Попробуйте короткий вариант или задержки правьте...
я прошивку брал за основу такую:

Код: Выделить всё

#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 не прокатила)
но я не знаю, где эту частоту смотреть. хм, у меня тоже была мысль про помехи)

Re: Часы на газоразрядных индикаторах

Добавлено: Пт окт 11, 2013 17:56:50
RoboC
Darth Cuauhtemoc писал(а):дальше идет в бесконечном цикле опрос
rtc_get_time(&hour, &min, &sec); // читаем из DS-ки время
После этой команды добавьте 3 строчки, где присваиваете &hour, &min, &sec определенные значения. Часы идти не будут, но если глюк пропадет- проблема в обмене с RTC. Ну а там, отладчик с симулятором Вам в руки :) .

Re: Часы на газоразрядных индикаторах

Добавлено: Пт окт 11, 2013 20:51:20
Dark_Rider
RoboC писал(а):
Darth Cuauhtemoc писал(а):дальше идет в бесконечном цикле опрос
rtc_get_time(&hour, &min, &sec); // читаем из DS-ки время
После этой команды добавьте 3 строчки, где присваиваете &hour, &min, &sec определенные значения. Часы идти не будут, но если глюк пропадет- проблема в обмене с RTC. Ну а там, отладчик с симулятором Вам в руки :) .
хм, интересная идея, нужно попробовать, спасибо)

Re: Часы на газоразрядных индикаторах

Добавлено: Сб окт 12, 2013 13:12:57
Волосатый
Вот здесь

Код: Выделить всё

i2c_init();
Нужно посмотреть, что записывается в регистр TWBR. От этого регистра зависит скорость работы шины, как рассчитать нужную, хорошо описано в даташите в разделе про TWI, там есть формула. Скорость выбирайте до 100кГц, 50 думаю вполне подойдет.
Почему? Экономия на внешних резисторах 4.7 (5.1) кОм подвески к питанию, использование высокоомных, что в животе у МК и как следствие наводки от соседних цепей?
Резисторы есть, цепи довольно длинные, проходящие рядом с другими высокочастотными цепями, незнаю в чем конкретно дело но факт остается фактом.

Re: Часы на газоразрядных индикаторах

Добавлено: Сб окт 12, 2013 13:15:16
Dark_Rider
окей, поищу на примерах, спасибо

Re: Часы на газоразрядных индикаторах

Добавлено: Сб окт 12, 2013 14:24:49
Darth Cuauhtemoc
Волосатый писал(а):Резисторы есть, цепи довольно длинные, проходящие рядом с другими высокочастотными цепями, незнаю в чем конкретно дело но факт остается фактом.
У меня линии I2C короткие, окружены землей (все свободное пространство залито землей), внешние резисторы тоже есть - никаких проблем. И еще, обращение к RTC для чтения времени только один раз - при включении основного питания, т.е. вероятность поймать помехи именно в этот момент очень мала.

Тем не менее факт, что помехи в принципе могут пролезть на шину, удручает. Не всегда можно сделать наилучшую разводку.

Re: Часы на газоразрядных индикаторах

Добавлено: Сб окт 12, 2013 23:08:51
Microtech
Скорее для темы в Мяяу.
Заглючить шину I2C плохой разводкой платы, которая сама площадью с 3 спичечных коробка? Даже если поставить 200 переходных отверстий и пустить дорожки зигзагом, как на восточном ковре, всё равно не получится создать проблему для I2C. Интерфейс был изначально разработан для коммуникации между блоками бытовой техники, способен работать без сбоев на длинных проводах, метр и более. Припаяйте конденсатор по питанию. Если не поможет, припаяйте ещё один. Если конденсаторы не дали эффекта, - уберите баг в программе или сделайте обмен медленнее. Читая форум, мне несколько раз попадалось сообщение, о проблемах с точностью хода, при использовании DS1307 на длинных проводах, вдали от процессора. Как? Она ведь время внутри себя считает, причем тут интерфейс? Ё... :facepalm:

Re: Часы на газоразрядных индикаторах

Добавлено: Сб окт 12, 2013 23:54:29
Darth Cuauhtemoc
Microtech писал(а):Читая форум, мне несколько раз попадалось сообщение, о проблемах с точностью хода, при использовании DS1307 на длинных проводах, вдали от процессора. Как? Она ведь время внутри себя считает, причем тут интерфейс? Ё... :facepalm:
У меня были проблемы с точностью хода, вина моя, развел кварц не так, как было рекомендовано в даташите. Так что кто так говорил, просто длинные провода совпали с неправильно разведенным кварцем или отсутствием кондера по питанию, а человек подумал на провода.

Я на каждую микру ставлю 0.1 мкФ 0805 как можно ближе к ногам питания.

А на I2C наводки могут быть (как и на любые другие цепи), если в качестве подвески использовать внутренние высокоомные сопротивления МК. Но это уже отступление от спецификаций.

Re: Часы на газоразрядных индикаторах

Добавлено: Вс окт 13, 2013 02:09:04
mss_ja
Microtech писал(а):Скорее для темы в Мяяу.. Читая форум, мне несколько раз попадалось сообщение, о проблемах с точностью хода, при использовании DS1307 на длинных проводах, вдали от процессора. Как? Она ведь время внутри себя считает, причем тут интерфейс? Ё... :facepalm:
я писал.
есть зависимость
даже DS3231 не хочет нормально работать. точность сильно "хромает".
хотя она даже со своим генератором "на борту".
ИзображениеИзображение
это уже обсуждалось.

Re: Часы на газоразрядных индикаторах

Добавлено: Вс окт 13, 2013 10:51:10
Palmyr
mss_ja,
Возможно DS3231 не хочет нормально работать из за наводок не на шину I2C а нацепи в самой микросхеме?
Всё-таки рядом с высоковольтными цепями стоит, по которым могут помехи от преобразователя проходить. :dont_know:

PS: чую будет у меня веселуха с тремя устройствами на I2C и их частым опросом.

Re: Часы на газоразрядных индикаторах

Добавлено: Вс окт 13, 2013 12:09:28
Dark_Rider
Волосатый писал(а):dark_rider, поставьте для начала частоту опроса RTC один-два раза в секунду, если проблема с мусором на шине, то при получении такого мусора вы это будете наблюдать эти 0,5-1 секунду.
RoboC писал(а):... Вы получите на статике эффект который описали.
Кстати не обязательно. Всё зависит от того как часто обновляется экран, если после опроса ЧРВ то да будет именно так, а если после того как поменялась секунда, то, тоже не исключено, но реже.

ПС я тоже сталкивался с мусором на шине, но в 99,99% случаев передача прерывалась с зависанием TWI и МК получал "лог. единицу" что соотв. коду 0xFF, что соотв. высокоимпедансному состоянию на всех выводах дешифратора, что при завышенном анодном приводит к хаотичному свечению случайных катодов в лампе. Не стал особо заморачиваться и вставил проверку полученного на значение 0xFF, и если это получено, то этот пакет пропускается, TWI переинициализируется и передача начинается с начала.
дома нет программатора и lpt порта, это нужно часы на работу тащить(
все никак не обзаведусь нормальным..
ну а можете выложить код на проверку полученного на значение 0xFF?
хотя у меня когда начался этот баг, я залил прошивку без использования RTC, цифры ходили просто на delay , вроде тогда было нормально.

Re: Часы на газоразрядных индикаторах

Добавлено: Вс окт 13, 2013 12:32:40
mss_ja
Palmyr писал(а):Возможно DS3231 не хочет нормально работать из за наводок не на шину I2C а нацепи в самой микросхеме? .
я же выложил печатку
под нее "расчищено " место . ни рядом. ни под ней ничего нет.
выпаяв и повесив ее "над процессором" все нормализуется.
кому интересно-найдите в теме где это обсуждалось. там все подробно
я же выскаывал предположение.
сбоит не сама шина.
по неи идут наводки внутрь микросхемы. и там уже она глючит.

Re: Часы на газоразрядных индикаторах

Добавлено: Вс окт 13, 2013 18:45:49
Ян
Опять немного не в тему... Но думаю посетителям этой ветки будет полезен этот приборчик. Все-таки сейчас многие имеют дело с СМД деталями.
Изображение
Наконец доделал. :))

Re: Часы на газоразрядных индикаторах

Добавлено: Пн окт 14, 2013 09:10:08
suslogon
а я уже давно купил себе пинцет для смд :) вроде мастеч) и все равно мало пользуюсь....

Re: Часы на газоразрядных индикаторах

Добавлено: Пн окт 14, 2013 09:12:56
Dark_Rider
выглядит симпотно.

Re: Часы на газоразрядных индикаторах

Добавлено: Пн окт 14, 2013 11:14:59
suslogon
dark_rider писал(а):выглядит симпотно.
:P Ян неаккуратно не делает...

Re: Часы на газоразрядных индикаторах

Добавлено: Пн окт 14, 2013 14:33:58
Ян
suslogon писал(а):а я уже давно купил себе пинцет для смд :) вроде мастеч) и все равно мало пользуюсь....
Да он по цене наверно вышел как готовый.:) Примерно 1000р. Просто захотелось немного развлечься. Да и хоть редко но такой нужен. К тому же он определяет цоколевку транзисторов и диодов. Удобно.

Re: Часы на газоразрядных индикаторах

Добавлено: Вс окт 20, 2013 19:54:19
Термит
Недавно видел ламповую сборку в ней 15 ламп содинены паралельно.Т.е.
Динамическая индикация управляет аж 15-тью лампами!
Лампы типа ZM размером с нашу ИН8.