crazzian, я ассемблерный маньяк, посему увы Да и в моем индусском коде понять что-либо сложно Да вообщем я бы и не стал писать на Си критичные ко времени выполнения вещи, а вот весь main() переписал бы на Си, давно хочу попробовать комбинировать асм/си код с помощью GCC, но пока что имею двухтысячный слабочитабельный исходник на асм.
Заголовок сообщения: Re: Часы на газоразрядных индикаторах
Добавлено: Пн окт 15, 2012 00:01:11
Сверлит текстолит когтями
Карма: 12
Рейтинг сообщений: 252
Зарегистрирован: Пн апр 14, 2008 12:54:35 Сообщений: 1289 Откуда: Город ГЕРОЙ Ленинград
Рейтинг сообщения:0
Я в часах с динамикой опрашивал часы примерно 20-50 раз в секунду, это чтоб не было заметных рывков в отображении времени. И да, частота шины повыше, чуть меньше максимальной для 1307, и все будет хорошо, если конечно нет помех на шине и она не будет заикаться. А в остальном уже ответили.
И кстати, на других RTC проверял, если частоту шины менять, то точность хода меняется немного, и когда часы работают от сети и от батарейки, точность тоже разная будет.
_________________ Опыт приходит сразу после того, как он был нужен...
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
20-50 раз - многовато, конечно. А без синхронизации рывки будут, но что-то можно попробовать сделать. К примеру, спустя 950 мс, читаем регистр секунд, пока не произойдет перехода секунды (читаем с интервалом 20 мс, например). После нескольких чтений, секунда перешла, тогда считываем весь блок, и далее цикл повторяем. Таким чудом, чтение будет происходить всего 3 (+/- 1) раз в секунду.
Хотя можно и 50 раз читать. Плохого, в принципе, ничего быть не должно. Разве что на один градус температура микросхемы вырастет
А лучше конечно проводом связь эту кинуть, красота сильно не постарадает. Да и вообще, странно делать финальную плату с первого раза. Отладка и доработка всегда нужна, надо было на макетке делать. Или эту плату пустить под отладку, а потом сделать еще одну. А то хотите одной п*пой на два стула сесть.
Заголовок сообщения: Re: Часы на газоразрядных индикаторах
Добавлено: Пн окт 15, 2012 02:08:56
Сверлит текстолит когтями
Карма: 12
Рейтинг сообщений: 252
Зарегистрирован: Пн апр 14, 2008 12:54:35 Сообщений: 1289 Откуда: Город ГЕРОЙ Ленинград
Рейтинг сообщения:0
Ну зачем же на два стула, нам и одного достаточно Мне вот сложно представить макетку с многоногим МК в tqfp, 6ю ИД1 3мя регистрами 595 в so-16 двумя регистрами 164 в so-14, 6ю анодными ключами в сот23 ))) Да и зачем? Достаточно всего лишь все продумать как следует, опираясь на свой или чужой опыт и сделать сразу как надо.
Foks писал(а):
20-50 раз - многовато, конечно.
Два года тикают и ничего Я тогда особо не парился по этому поводу. А в след. часцах да, развел таки на прерывание с ноги где 1Гц, по опыту форумчан, чтоб так часто не дрючить микруху часов
Foks писал(а):
К примеру, спустя 950 мс, читаем регистр секунд, пока не...
Это выход, но если эти 50 мс мы можем часто опрашивать часы, то почему бы не сэкономить на этом память МК и делать это постоянно, а так и таймер один занят и немного кода лишнего.
_________________ Опыт приходит сразу после того, как он был нужен...
Время для задержек и проч. я обычно считаю в таймере, который уже чем-то непрерывно занят: в данном случае у нас есть динамическая индикация, где можно спокойно себе инкрементировать какую-нить переменную.
На макетке не обязательно собирать полные 6-ламповые часы, можно лишь отладить в едином экземпляре ключевые узлы (то есть достаточно одной ИД1, одного регистра и т.п.). Собственно, для себя я вообще не вижу смысла собирать устройство, которое с первого раза можно "продумать". Собственно поэтому я не продолжаю штамповать часы: первые были из интереса (ГРИ), вторые в подарок (ВЛИ), и собственно этого хватило Но здесь товарищ, видно, с RTC раньше не работал. Можно же было хоть глубже продумать план действий и провести эту линию, или просто подключить микросхему на соплях к какой-то старой своей макетке, и поиграться, перед тем как финальную плату рисовать.
Знал бы где упаду, соломки постелил. Но не суть Частота софтового I2C где-то контролируется/устанавливается, подскажите? Если нет, то тактирование идет на частоте кварца МК (ну или около того) , что как бы многовато для шины. Или я не прав?
Заголовок сообщения: Re: Часы на газоразрядных индикаторах
Добавлено: Пн окт 15, 2012 09:46:55
Сверлит текстолит когтями
Карма: 12
Рейтинг сообщений: 252
Зарегистрирован: Пн апр 14, 2008 12:54:35 Сообщений: 1289 Откуда: Город ГЕРОЙ Ленинград
Рейтинг сообщения:0
Зависит от кода, я вот с софтовой шиной не работал, но в примерах посматривал, там в заголовочной части обычно устанавливается какая-то константа или переменная, отвечающая за скорость, и не обязательно она в мегагерцах, вероятнее всего абстрактная величина, которая в циклах фигурирует как условие выхода. Тактирование шины на частоте мк невозможно, ибо выполнение кода и задержек требует времени и порой немалого.
Foks писал(а):
то есть достаточно одной ИД1, одного регистра и т.п.
Сомнительное удовольствие, проще и нагляднее отмоделировать в протеусе. Такие простые задачи идут на ура, и микросхема часов там есть.
_________________ Опыт приходит сразу после того, как он был нужен...
Заголовок сообщения: Re: Часы на газоразрядных индикаторах
Добавлено: Пн окт 15, 2012 13:12:40
Сверлит текстолит когтями
Карма: 12
Рейтинг сообщений: 252
Зарегистрирован: Пн апр 14, 2008 12:54:35 Сообщений: 1289 Откуда: Город ГЕРОЙ Ленинград
Рейтинг сообщения:0
А причем тут DS-ка? Частота же довольно низкая. У Вас сколько байт запрашивается? 6, вместе с датой? Это получается 6+2 * 9 = 72 такта, на такой частоте это около 2мс должно быть, не очень много. И кстати, а почему вы не хотите воспользоваться аппаратным ай2си ? Шина не разведена на него? Код зато сэкономите, хотя в 8й меге его и так достаточно
_________________ Опыт приходит сразу после того, как он был нужен...
Вот и я про то же. Частота маленькая, а время из-за чего-то сбивается на десяток минут, причем считывание крутится в главном цикле. Софтовые библиотеки я выкладывал чуть по раньше. Разведено все как для аппаратного, так что попробовать можно.
А может проблема не в считывании, а в основном питании? При наличии этого питания идут помехи, которые мешают микросхеме RTC? Мне самому это интересно, так как когда-то столкнулся с аналогичной проблемой на 512ВИ1 (только там параллельная ШД). Но так как там всё было на соплях, о хорошем питании там речь не могла вообще идти.
_________________ А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Заголовок сообщения: Re: Часы на газоразрядных индикаторах
Добавлено: Пн окт 15, 2012 21:16:07
Сверлит текстолит когтями
Карма: 12
Рейтинг сообщений: 252
Зарегистрирован: Пн апр 14, 2008 12:54:35 Сообщений: 1289 Откуда: Город ГЕРОЙ Ленинград
Рейтинг сообщения:0
Может у вас чтение какое-то кривое, может вы еще и пишите вместе с чтением, секунды например затираете в ноль? По питанию попробуйте припаять прям на лапки или на дороги близ микрушки керамический кондёр емкостью 1мкФ, это устранит возможные помехи.
_________________ Опыт приходит сразу после того, как он был нужен...
Выяснение причины пока приостановлено - пока тыкал осциллографом на шину, что-то случилось с мегой (вероятно частично сдохла), на пине xtal1 появилось 2.5В -> спалил lpt-шный программатор (заменю микросхему продолжу). Пул апы имеются. Конденсаторы 0,1мкФ по питанию имеются. Возможно проблема и из-за питания, т.к. имеется сплошной земляной полигон, т.е. земли преобразователя и по +5В соединены, на осциллографе видны иголки на +5В точно сейчас не помню, но что-то около 300мВ. Вероятно земли придется разделить. Схема+плата. Ничего криминального.
Заголовок сообщения: Re: Часы на газоразрядных индикаторах
Добавлено: Вт окт 16, 2012 09:33:45
Сверлит текстолит когтями
Карма: 12
Рейтинг сообщений: 252
Зарегистрирован: Пн апр 14, 2008 12:54:35 Сообщений: 1289 Откуда: Город ГЕРОЙ Ленинград
Рейтинг сообщения:0
А вы проверьте наверняка, если глазу в коде неза что зацепиться, это не значит что там нет ошибок Закомментируйте все вызовы пишущей процедуры, и проверьте везде что вы сначала отправляете на микрушку адрес+чтение. С землей вы плохо обошлись, это бесспорно.
_________________ Опыт приходит сразу после того, как он был нужен...
Зря я тут панику навел. Ну не зря конечно... Дросселя на +5В пока оказалось достаточно. Сутки часы проходили нормально. Вообщем ВВ преобразователь гадость еще та, по крайней мере на MC34063. Мало того что по питанию много чего лезет, так еще и в эфир излучает (помехи на телевизор идут даже через стену)
Ну дык конечно. Спасет здесь грамотная разводка платы, броневой дроссель и, возможно, металлическая крышка поверх преобразователя (или металлический корпус). И LC-фильтр, наверное, не помешает и на питании преобразователя.
Также можно использовать микросхему с ШИМ-контроллером (например, MAX1771), она меньше гадит.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 243
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения