Умка писал(а):Если мне не изменяет память, схема завязана на электромеханический счётчик.
Там на механизме был оптический датчик вращения с которого устройство и считало импульсы.
Умка писал(а):Если мне не изменяет память, схема завязана на электромеханический счётчик, там вроде спичкой можно было задавать программу.
Нет эту схему я сам делал, я уже и не помню как ей управлять.
Там память К155РУ2, ИЕ7 реверсные счётчики и ещё куча логики.
Светодиодный дисплей на который пришлось шить К155РЕ3 т.к. дешифратора у меня небыло.
Спасибо всем!!!! Часики запустились, только одно напрягает ощутимо греется транзистор IRF740 в высоковольтном преобразователе... Что подскажете? И да ещё один вопрос... Как подстраивать часы чтоб точно шли?
ficus1987 писал(а):Как подстраивать часы чтоб точно шли?
Эти вопросы задавались здесь, ну чтобы не соврать, несколько десятков раз. Почему никто не пользуется поиском по теме?
Внизу страницы есть поисковая строка, пишете там слово "греется" и находите сотни тонн обсуждения. Еще есть отдельная тема по преобразователям - она по-меньше и более пригодна для прочтения, хоть и заброшена в связи с решением оставить всё обсуждение здесь.
Второй вопрос тоже обсуждался многократно, обычно решения сводятся к: менять кварц, ставить и долгими мучениями настраивать подстроечную ёмкость к кварцу, использовать TCXO или программную коррекцию (я так понимаю, Вам подойдут только первые два варианта, а они как правило наименее повторяемые).
Ребят, я в замешательстве Получил сегодня блоки с инками от какого-то пром. оборудования, интереса ради стал разглядывать и вот на что наткнулся.
Плата как плата, но при ближайшем рассмотрении оказалось что провод (черный, на фото не видно), идущий от анодных резисторов (болт с красной точной на правом фото, и резисторы идут именно на анод, проверял), приходит на землю, вывод 5 микросхем (самый верхний проводник платы на левом фото) Изученая топологию платы выяснил, что на синий разъем приходят только сигнальные шины для ИД1 (левое фото) и их питание (правое фото). Болт, на котором распределены резисторы анодов изолирован относительно корпуса. Никакие сети на плате явно не соединены с корпусом.
Отсюда вопрос, как питаются индикаторы??
СпойлерВолшебство да и только
Опыт приходит сразу после того, как он был нужен...
Волосатый
Плюс на земле и общем проводе раньше часто делали с прямыми транзисторами. Не вижу криминала, питание ламп скорее всего от отдельной обмотки трансформатора, а минус идешек является своей шиной, - как "плюсом" в нашем понимании..
Обшибся, 5 нога сверху, т.е. 12я Всем: все оказалось куда проще два уровня под болтом не соединены между собой, т.е. черный минус приходит на нижние контакты, и все, дальше никуда не идет. Забавно но зачем он тогда нужен))) А анодное походу надо отдельно подпаивать, тоже странное решение, блоки же должны заменятся на раз, без каких либо подпаиваний и прочего.
Умка писал(а):Плюс на земле и общем проводе раньше часто делали с прямыми транзисторами. Не вижу криминала, питание ламп скорее всего от отдельной обмотки трансформатора, а минус идешек является своей шиной, - как "плюсом" в нашем понимании..
Вот именно, с транзисторами, а здесь микросхемы. Если бы это было действительно так, тогда получается анод на земле и микросхема дергает катоды индикатора на ту же землю, абсурд, правда?
Опыт приходит сразу после того, как он был нужен...
Microtech писал(а):На болте анод и 5В не соединяются. Там изолирующие шайбы. Наверное, туда надо было паять проводки, но на них нет намёка, так как это комплект ЗИП.
Как я понял, на анодные резисторы идёт черный провод- земля? Или вообще ничего, тупо между собой соеденены?
Такие блоки обычно делают для быстрой замены, там ничего крутить и паять не нужно!
Волосатый писал(а):Если бы это было действительно так, тогда получается анод на земле и микросхема дергает катоды индикатора на ту же землю, абсурд, правда?
Почему абсурд, земля это земля, а минус это минус. Они не обязаны иметь ничего общего. Делай два отдельных питания с отдельных обмоток транса и соединяй как душе угодно.
Кто-нибудь может сказать как часто нужно опрашивать DS1307, а то опрос стоит по ходу программы и иногда время перескакивает на несколько минут, может нужно делать паузу, но это как то не рационально - стопорится вся программа? если делать по прерыванию, например раз в секунду, то при динамической индикации иногда проскакивает увеличение яркости некоторых цифр
И еще: здесь никто не использует аппаратный I2C(TWI)?
Все это относительно AVR-ов.
Умка писал(а):Почему абсурд, земля это земля, а минус это минус. Они не обязаны иметь ничего общего. Делай два отдельных питания с отдельных обмоток транса и соединяй как душе угодно.
Изначально думалось, что анод идёт к минусу питания той же ИД1, то есть Ваши "минус" и "земля" соединены вунтри микросхемы.
Add: crazzian, я использую. С DS3231 (но суть та же). Настроил её чтобы выводила 1 Гц на внешний выход прерывания, по прерыванию с этого вывода опрашиваю микросхему (до трёх раз, если с первого раза читается мусор вру, до трёх раз у меня происходит только синхронное чтение при инициализации), и вывожу.
Кстати, TWI в AVR'ах плохо документирован, они там используют таблицу с "кодами ошибок", которые все по-отдельности надо обрабатывать. Хотя на самом деле это набор управляющих битов для логики этого TWI, и если бы биты были документированы по-отдельности, как они это когда-то делали для серии AT90, то обрабатывать их на ассемблере было бы гораздо проще, да.
И каким боком тут динам. индикация? В нормальном коде она вообще не должна быть связана с опросом.
Add2: А, я понял, каким боком динамика страдает. Из-за задержки, да. Ну, я использую аппаратное прерывание по TWI. Инициируется всё, как я написал выше, по прерыванию со внешнего вывода, а далее каждый каждый приходящий байт по прерыванию сохраняется и запускается чтение следующего, ну и т.д. По окончанию приема всего блока данных, обновляются данные на дисплее. То есть само прерывание выполняется очень быстро, и динамика не страдает.
Последний раз редактировалось Foks Вс окт 14, 2012 23:18:12, всего редактировалось 6 раз.
crazzian писал(а):Кто-нибудь может сказать как часто нужно опрашивать DS1307, а то опрос стоит по ходу программы и иногда время перескакивает на несколько минут, может нужно делать паузу, но это как то не рационально - стопорится вся программа? если делать по прерыванию, например раз в секунду, то при динамической индикации иногда проскакивает увеличение яркости некоторых цифр
И еще: здесь никто не использует аппаратный I2C(TWI)?
Все это относительно AVR-ов.
Я использую аппаратный. Самое удобное на мой взгляд (если мк тактируется от внутренего генератора) это настроить дску на выдачу импульсов в один герц и завести их на внешнее прерывание. По приходу импульса выставлять флаг. В основном цикле если флаг стоит, то читать время и сбросить флаг. Итого время будет читатся раз в секунду.
В любом случае дску в прерывании опрашивать нельзя!!! это слишком долго (поэтому и валится динамика), нужно выставлять флаг, а опрашивать в "вечном цикле" по флагу.
Foks писал(а):
Add2: А, я понял, каким боком динамика страдает. Из-за задержки, да. Ну, я использую аппаратное прерывание по TWI. Инициируется всё, как я написал выше, по прерыванию со внешнего вывода, а далее каждый каждый приходящий байт по прерыванию сохраняется и запускается чтение следующего, ну и т.д. По окончанию приема всего блока данных, обновляются данные на дисплее. То есть само прерывание выполняется очень быстро, и динамика не страдает.
В вашем случае задержек и недолжно быть. У меня реализовано без прерывания TWI поэтому я так и написал. Также если используется програмный i2c нельзя читать и писать в обработчиках прерываний.
Ну хорошо. Это понятно. А вот тогда какая максимальная частота тактирования МК для софтового I2C, чтобы опрос шел на ~100кГц (100кГц???) или можно больше? или тут нужно задержку?
Поскольку когда идут часы, в какое-то время (походу всегда по разному, но вроде в ночное) происходит сбой и часы убегают, например, на 11 минут. А вот если DS-ка работает на на резервном питании, т.е. опроса нет. время идет правильно. (проверялось включением питания)
Может конечно и наводки, но уж какие-то странные.
Кварц стоит 7,3728 Мгц
Используется вот эта библиотека
Я софтовый использую только если нету апаратного например на тиньке, тактируется она 8мгц, выше софтовый не пробовал. Думаю всеравно какая частота тактирования, нужно соблюдать тайминги и все будет нормально.
Задолбало дописывать в то сообщение.
Есть еще прием - в начале прерывания сделать sei, тогда оно не будет задерживать другие, более важные прерывания. Хотя в некотором роде это костыль (применять нужно с умом), и я сам этим приемом пользуюсь редко, тогда уже лучше действительно в main loop'е выполнять, но всё же такой вариант существует.
100 кГц - это немного, можно смело повышать до 400 (но не больше). Задержки особые не нужны, проверьте осциллографом фронты на линиях шины. Может быть нужно подтягивающие резисторы уменьшить. Странное у Вас явление, здесь можно подозревать ошибку в процедуре программного I2C. Может быть перепутали фронты, по какому нужно записывать, а по какому читать?
На тиньке же есть какой-то другой интерфейс? USI кажется? Он разве не годится для I2C?