Alan

Проект Инфо-Панели Для Офиса Телефонии

Рекомендуемые сообщения

Данный пост планировался давно, но всё не получалось собраться написать его.

Собственно, что получилось.

 

История создания проекта могла бы и не начаться, если бы не одно непритяное "Но" - в отделе имеется занятное оборудование, которое должно работать бесперебойно, в режиме 24/7/365 (круглосуточно, без выходных, всегда) - собственно, это аппратные станции и SIP сервера телефонии (а так же Call центр, но это не столь фатально).
Оборудование находится в серверной, удалённой от кабинета и достаточно зашумлённой (50-80db внутри - это норма).
За оборудованием в случае сбоя (как с нашей стороны, так и со стороны присоединённых операторов), нужно сделить и вовремя принимать соответствующие меры для восстановления работоспособности.
Меры принимаются, но ранее это происходило с некоторой задержкой в виду отсутствия возможности контроля.
Визуальный контроль за оборудованием возможен (индикация предупреждений и аварий предусмортена), но вот проблема с оповещением присутствует.
Простейшим вариантом стал комплекс их:
- Виртуального сервера (ubuntu 11.04, 512MB RAM, NoGUI).
- Скриптов на оной виртуалке.
- Устройства оповещения типа "Мигалка".

Работает всё довольно просто - скрипт опрашивает устройства на предмет нештатных состояний (пропадание потока связи, отсутствие питания, предупреждения и прочее), и в случае нормы везде прсылает на "мигалку" команду "Отбой". В случае аварии хоть где-то - соответственно, включает предупреждение.

Всё работает, но не сказать, что удобно - неизвестно, ЧТО себя плохо чувствует.


В настоящий момент идёт разработка более полноценного сетевого устройства оповещений (хотя так же, будет работать совместно с виртуальным сервером и скриптами).

Суть устройства:
MCU: ATMega1284p (выбрал то, что имелось в наличии), кварц на 18.432MHz;
Ethernet модуль: ENC28J60;
Индикация: 20 модулей 8x8 LED DOT Matrix (приобретены на E-Bay);
Звук: Пьезоизлучатель, DAC 8bit R-2R на резисторах, частота сэмплирования будет ~22kHz, Однотональные сигналы;
Дополнительная переферия: Термомерты DS12B20;
Питание: В настоящий момент под вопросом, поскольку не хочется лишних проводов к устройству, и есть желание собрать его по схеме POE, но подуль не выдержит 48V, потому, вероятно, будет использован 12V БП
В качестве внутреннего источника питания, и стабилизатора, используется модуль Step-Down DC-DC Converter на LM2596 (с того же E-Bay);
Отладка: UART в режиме RS232 (на скорости 115200), включается только при старте ЦП, если есть потенциал на заданном пине ЦП, иначе не включен и не потребляет системных ресурсов;

Конструкция
Устройство конструкционно будет представлять собой инфо-панель (напоминать таковые в автобусах), но размером поменьше (оригинальную не смог найти - не гуглится то, что представлено в наших автобусах, но напоминает оно бегущую строку).
Готовое устройство будет иметь размер видимой области 20х400мм (1 строка на 20 модулей), возможно в дальнейшем станет двустрочным, или увеличит шрифт (вероятнее первое).
Планируется работа в сети Ethernet (самостоятельная). В настоящее время (в первом устройстве "Мигалка" используется виртуальный COM-порт Ethernet <--> RS232).
Сеть организовывается через модуль ENC28J60 (особая благодарность пользователю easyelexnronix, Lifelover за драйвер модуля, а так же примеры работы с ним).
Планируется возможность звуковых оповещений (выключаемая на стороне сервера), а так же возможность воспроизведения потокового звука (декодирование будет происходить так же, на стороне сервера, проблема с воспроизведением и малой процессорной мощностью, а так же полное отстутствие DMA, решается прямым воспроизведением из кольцевого буфера), индикация - динамическая.

Теперь по порядку:
Ядро системы
От ЦП устройства требуется многозадачность, и одновременно жёсткое реальное время (для звука), потому была попытка использовать FreeRTOS, что не увенчалось успехом. Потребность воспроизводить звук сводит на нет все достоинства ОСРВ (т.к. накладные расходы на обработку слишком частых прерываний системного таймера (22кГц) требуют высоких расходов). При стандартной частоте системных прерываний (100..1000Гц) звук PCM воспроизвести невозможно.
По этой причине пришлось отказаться от FreeRTOS, и писать как и раньше.
Обработка звука будет производиться в прерывании отдельного таймера. То же прерывание, при отсутствии данных в буфере звука, будет самостоятельно отключать себя.
Однотональная пищалка будет подключена к выходам PWM-генератора, что не исключает возможности работы только одного пьезоизлучателя для оповещений.
Прерывание таймера заставляет обработчик переместить указатель буфера на шаг вперёд, проверить, не переместился ли он при этом за конец буфера, если да - вернуть в начало, вычесть 1 из оставшихся байт в буфере, если 0 - остановить воспроизведение, отключить таймер и вывести тот же 0 на порт DAC, иначе - вывести на порт байт из буфера.

Индикатор
Реализация индикатора планируется на сдвиговых регистрах с защёлками 74HC595 + IRLML2402 в качестве драйвера строк (регистры используются в качестве драйвера столбцов, т.к. их токовая нагрузка позволяет запитать целую строку (8 точек) одновременно).
Данные для отображения на самом табло будут заводиться в сдвиговый регистр, постепенно заполняя строку (биты будут проталкиваться справа налево, чтобы не городить огород с дополнительными буферами), и отображаться построчно (примерно, как в ТВ, за тем исключением, что данные строки будут отображаться 1мс, затем произойдёт переключение на следующую строку).
Благодаря наличию защёлок в регистрах, удастся полностью избежать мерцания при переключении строк.

Источник питания
Как уже оговаривалось, питание будет поступать из вне на модуль ENC28J60, т.к. его конструкция позволяет, снимать напряжение с 3 и 4 пар кабеля (они не замкнуты на корпус и ни к чему не подключены). Затем это напряжение будет поступать на DC-DC преобразователь и понижаться до 5V.
В настоящий момент стоит вопрос уровней напряжения:
Ядро нужно питать от 4.5-5V, т.к. иначе не гарантируется работа его на частоте выше 12MHz (допустима для 3.3V), но сетевой интерфейс обязательно питать от 3.3V, иначе чип сильно греется, и есть опасность его выхода из строя. Преобразователь в наличии только один, потому необходим доволнительный Low Drop 5V -> 3.3V на ток до 250mA, опять же, желательно импульсный с высоким КПД. В наличии, к сожалению, нет.

В настоящий момент имеется:
- Частично собранная библиотека (сеть видится, осталось добить проверку наличия линка и обработчики данных)
- Ethernet модуль ENC28J60

_1yb5M_WUuw.jpg


- Step-Down DC-DC Converter (LM2596)
Фото:

pMj0FjjpG8A.jpg


- Индикаторы (в разобранном виде) (20 шт)
Фото:

suDt9b7gp4A.jpg
(Сами модули)
mtbOu_tH5vQ.jpg
Модуль в сборе + сзади распиновка и частично видна схема переходника


Ссылка на сами LED-модули, а так же управление ими здесь.
- MCU ATMega1284p на отладочной плате (выглядит довольно неряшливо, но она делелась для себя).
Фото:

YcFQhBm6kgg.jpg
Отладочная плата + модуль в ней. Светит ГОРАЗДО ярче, чем на фото. Запитан от 5В без ограничительных резисторов. Зря-зря-зря.... но работает же! Второй столбец питается через резистор-подтяжку, придерживающий 1-Wire для DS18B20 (левее)


- Пищалка....
- Термометр DS18B20, переписанная с нуля библиотека. Базовый минимум функций: "Прочитать", "Запуск преобразования". Библиотека будет переписана для оптимизации и исключения задержек в работе ЦП при преобразовании. В настоящий момент, преобразование температуры заставляет замереть ЦП на ~750мс, что фатально для работы в сети, а так же, звука.
Потому данные будут считываться таймслотами, следуя не чаще чем 1 в 1мс.
В библиотеке будет реализован простейший автомат с конечными состояниями.

Чего нет:
- Переходников для LED модулей (цоколёвка модулей просто ужасна, а для панели удобнее будет собирать их, когда ряд с одной стороны, а столбцы - с другой.
Заказывать переходники оказалось коммерчески не выгодно. Цену на заводе заломили в размере 4000 (без НЗС) за 40 штук. С НДС получаем почти 5k деревянных. Придётся оттачивать навыки работы с мини-дрелью и ЛУТа.
- Законченной версии библиотеки
- DMA а очень жаль.

- Знакогенератор.
Матрица символов планируется 6х8, без оптимизаций шрифтов.

//A
{
0b00000000,
0b00100000,
0b01010000,
0b01010000,
0b10001000,
0b11111000,
0b10001000,
0b00000000,
}

Псевдографики пока не будет.
Вывода картинки из "сети" пока, вероятно, тоже. Но описать графический буфер недолго, можно сделать и анимации прямо с сервера.

Была идея купить Raspberry PI и написать скрипт поверх неё.. но это не спортивно. Там система ARM-11, 512MB RAM, Linux.... да там можно поднять сам сервер мониторинга!.. но вот реальное время в любой *nix системе - мягкое, а для вывода индикации требуется жёсткое.
Конечно, можно было сделать RPI + любой более простой контроллер типа ATMega48 (да, тоже есть в наличии), с обменом по SPI/UART и переферией поверх самого контроллера, но это тоже не спортивно.
Цель проекта ставилась для себя "Уложиться в малый бюджет и собрать устройство оповещения", потому выполняется именно так. Почти здоровый спортивный интерес.

Проект постепенно собирается, обновления будут позже.
Спасибо.

 

 

Кстати, нашёл самую похожую бегущую строку (что применяется в автобусах):

Здесь

inside.jpg

Изменено пользователем Alan
  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Интересный проект! Всегда приятно видеть что-то подобное на форуме.

 

По поводу DC/DC конверторов 48V/5V - для обеспечения должной надежности придется ваять на рассыпухе по топологии бака или флая, т.е. организовать управление внешним силовым ключом. Это проще всего. Конечно, существуют специализированные интегральные микрухи, требующие минимума обвеса и выдерживающие свыше 50V, например, Si3402, но они могут быть труднодоставаемыми и труднопаябельными.

 

Конверторы уровней - штука простая, особенно если линии однонаправленные. Для сопряжения 5V и 3V3 уровней - используй 74LVC244, 74LVC245. И, да, входы ENC28J60 5V-толерантны.

 

Для двунаправленных линий советую ADG3308. Но иногда можно обойтись и мосфетами. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как интересно) Интерфейс комп - индикация состояния)).. Хотя тут бы какую нить прогу бы запилить с минимальным интерфейсом сигналов сбоя и нумерации линий и всего остального.. В прочем это надо смотреть что с чем завязано и как оно работает на месте) Возможно ли это завязать програмно с друг другом.. От тутда через интерфейс RS- 232 или 485. Или сеть..Сие посадить на комп какой нить и с него мониторить и возможно управлять всем прочим.. Но опять же я не программист..

Но это вполне имеет решение уже давно.. Но оно денег стоит)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обдумывали варианты, и пришли к мысли, что:

- Компьютер может зависнуть/отключиться/глюкануть/сломаться... в моём компе, например, имеется физический порт RS-232, но он сдох.. Передавать данные не может более.

Плюс, нужен сервис.

Да, можно сделать что-то подобное, но решили максимально абстрагироваться. Не знаю, как остальные, но я - точно.

Получился именно подобный проект. На виртуалке крутится скрипт-опросник. Где-то в сети висит устройство оповещения.

На текущий момент - уже мельком упомянутый виртуальный порт RS232 (Арлан-9000). Кому интересно, вот ссылка.

 

Raymond, спасибо ^_^  Вообще, не очень хотелось делать на рассыпухе по простой причине - через него должна проходить немаленькая мощность (по прикидкам в критическом случае: Активен Ethernet + Горит вся линия (160 точек * 10mA), получаем порядка 1600mA+200mA = 1.8A*3.3V = ~6W, что довольно прилично)

Плюс, обязательно потребуется два уровня напряжения питания - 4.5~5.5V для MCU (иначе не сможет запуститься на 18MHz (планирую использовать кварц на 18.432MHz), т.к. там тайминги меньше по понятным причинам, а вот на ENC28J60 требуется 3.3V, иначе утюг... ::annoyed  Проверялось... неприятно горячая уже за пару минут.

Потому думаю не использовать готовый POE модуль, а просто подать через гнездо-переходник где-нибудь 12V. И будет счастье. А уже LowDrop делать от 5V после стабилизатора.. хотя, есть варианты, опять же.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще, не очень хотелось делать на рассыпухе по простой причине - через него должна проходить немаленькая мощность (по прикидкам в критическом случае: Активен Ethernet + Горит вся линия (160 точек * 10mA), получаем порядка 1600mA+200mA = 1.8A*3.3V = ~6W, что довольно прилично)

Так для больших мощностей как раз и делают на рассыпухе, хотя этот термин не очень корректен - имеется в виду микросхема контроллера с внешним ключом (или ключами в случае синхронного выпрямителя). :) Хотя 6W в нагрузке - это большая мощность разве что для линейного стабилизатора и для импульсника не проблема.

 

ENC28J60 греется изрядно и на штатном питании у меня, это - норма (5V даже в голову не приходило на нее подавать). В принципе, питал и от линейного стаба, например, такой LDO как LF33. Но если ты заделаешь конвертор флаем, ничто не мешает сделать отвод от вторичной обмотки транса на 3V3. Еще один плюс в сторону флая - гальваническая развязка девайса, что очень желательно для устройства, питаемого через длинный кабель.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ENC28J60 греется изрядно и на штатном питании у меня, это - норма (5V даже в голову не приходило на нее подавать). В принципе, питал и от линейного стаба, например, такой LDO как LF33. Но если ты заделаешь конвертор флаем, ничто не мешает сделать отвод от вторичной обмотки транса на 3V3.

Так в том-то и проблема, что не хочется городить трансформаторы. Ну, не люблю я трансформаторы собирать ^^''''

Проще бы было запитать так:

+12 -----> [3..35 -> 5]----(5V)----[LDO]----(3.3V)---> ENC28J60

А 5V питать MCU+его переферию.

Возникла идея засунуть до кучи ещё и RTC в проект.. и синхронизировать время из сети... но это чуть позже.

 

Так вот, насчёт LDO 5 -> 3.3V. К сожалению, не слишком легко ориентируюсь в имеющейся элементарной базе, да  и рядом со мной магазин так же не слишком радует.

Есть довольно простенький вариант, который морально подходит для питания относительно малыми токами:

LM358 + опорное напряжение + делитель + IRF...ну, допустим.. 7306/7316 с радиатором. Примерно получаем: (5-3.3)*0.2A = 1.7*0.2 = 0.34W (по спецификации может потреблять 0.25A, тогда 0.41W).

Datasheet для IRF7306/7416 описывают максимальную мощность рассеянья в 1.4W @+70°C, так что 0.5W должно быть относительно допустимо.

Грубовато.

Изменено пользователем Alan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заметка проекта получила на Хабре плюс, не знаю, чем именно, но инвайт получен.

>'^..^'<

 

Первый пост на Хабрахабр.

Изменено пользователем Alan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

БУ ! Давненько я сюда не заглядывал. :)

Изложу некоторые свои мысли по сабжу:

1) индикация:

Использование матричных светодиодных индикаторов - это конечно очень

красиво и стильно, но обслуживание такого индикатора - это несколько

более громоздко, чем кажется на первый взгляд.

Тут есть несколько граблей:

a) Программная развертка, темже процессором, который выполняет еще и другие задачи реального времени - скорее всего породит неприятное мерцание индикации, за счет того что периоды горения разных столбцов будут немного неодинаковыми, т.к. проц не вовремя отреагировал на прерывание (был занят чем-то другим). Светодиоды - они такие штуки очень хорошо чувствуют. А если вы отдадите индикации наивысший преоритет - есть риск что или звук начнет "хрипеть", либо данные с интерфейса теряться, либо чего еще. Тем более, если это 8-битная атмега, там и так быстродействие не запредельное.

Решение - поставить на индикацию отдельный процессор например ATmega8, и передавать в него данные, например по RS232 . Еще на него можно повесить сканировние клавиатуры (развертывается темже дешифратором что и индикатор, строка индикации на вывод - строка клавиш - на ввод, ключ к питанию он один и несколько милиампер на считывание клавиши - его не сильно нагрузят), и сделать такой "терминал", который по нажатию кнопки - передает в центральый процессор ее скан-код, а обратно принимает то, что надо напечатать на экране (тоже в символьном виде, знакогенератор - находится в процессоре индикации, как и видеобуфер). Это сильно экономит ноги основного процессора, и, кроме всего прочего, упрощает трассировку печатной платы. (можно сделать вообще отдельным модулем, чтобы при вненсении изменений в основное устройство - не переделывать еще и это). Кроме того, в виду наличия достаточно большого количества свободных ног у процессора индикации - можно обойтись без программного "выталкивания" 1-битного последовательного потока - выставил данные на полный 8-битный порт - и дал строб. Когда "зарядил" все данные в 1 строку - перезащелкнул. Аппаратно это можно реализовать на 8шт тех же самых 74HC595, работающих параллельно (каждая обслуживает свой бит выходного порта процессора, на выходе, после перезащелкивания - 64 бита). Либо на параллельными 8-битными защелками (74AC374, 74AC273 (аналоги ИР23, ИР35) и т.д. )они более легкопокупаемы, но их потребуется двойное количество, для синхронного перезащелкивания выходного слова (в HC595 - выходной регистр - встроенный). А столбцы - очень удобно перебирать дешифратором (74HC154), "надставленным" p-канальными полевиками. Кстати рекомендую обратить внимание на сборки по 2 транзистора в SOIC-8 (например IRF7304, IRF7314, IRF7329) - заметно удобнее паять и разводить чем SOT23, да и сами транзисторы там помещаются еще более "толстые", а места на плате занимают и стоят почти столькоже.

б) следует помнить, что импульсный ток светодиода - не безграничен ! внимательно почитайте datsheet на используемый индикатор. Это я к тому, что организовать разветку матрицы 2х10 индикаторов (16х80 точек), как вы хотели столбцами по 16 точек, горящих 1/80 периода - скорее всего не выйдет чисто энергетически. А если и выйдет, то не забывайте, что первое-же зависание программы с включенным 1 столбцом (а там всегда какой-то столбец будет включен) - приведет к мгновенному выгоранию данного столбца (2 индикаторов), ибо, как подсказывает К.О. , токозадающие резисторы у вас - обязаны быть рассчитаны на 80-кратный ток.

Надо бы развертывать по строкам, 80точек, со скважностью 1/16, но это значительно более громоздко, с аппаратной точки зрения: требуется 16 шт 74HC595, и 40 транзисторов IRLML2402 (либо 20шт IRF8910, IRF7311) Может немного спасти использование логики 74AC (у нее выходной ток - громадный, на 16 светодиодиков - должно вполне хватать), но 74AC595 - штука весьма экзотическая (беглый анализ вызывает подозрение что вообще снята с производства), так что придется юзать 20шт (74AC374, 74AC273), с "двойным презащелкиванием", зато без транзисторов.

в) как показывает практика, матричные индикаторы - нужны далеко не всегда.

Можно сделать матрицу гибридной, на матричных и 7-сегментных индикаторах, включив последние в общую схему развертки (каждый 7-сегментный - это еще один столбец в 8 светодиодов). Как вариант, вместо 2шт 8х8 матричных - поставить 16шт - семисегментных (по 8 шт - в конце каждой строки, или по 4шт в начале, и по 4шт в конце). Если подобрать индикаторы одного размера и высоты с матричными - смотрется будет весьма стильно, а "информационная емкость" дисплея - сильно возрастет. Или добавить еще 7-сегментных к вашей матрице. Тут надо внимательно смотреть, что именно вы собираетесь там отображать. В принципе, "раз пошла такая пьянка", 16х80 - можно вполне безболезенно расширить до 16х128. 80-цифра некрасивая ;).

г) в принципе, если вы уж так не хотите ставить дополнительный процессор, можно вспомнить как это делали лет 15-20 назад, и изобразить аппаратную развертку микросхемы SRAM (например 6216 ака 537РУ10, хотя скорее всего сейчас придется купить чтото бОльшего обьема, вроде 6264, и часть адресных ног - заглушить) счетчиком. Но это явно более громоздко чем доп. процессор (хотя на фоне 2 десятков 74AC373 - может быть и не так страшно), и делать такое имеет смысл только "по приколу". (Только железо ! только хардкор ! :) ) Если всеже желание не пропало, могу попробовать прорисовать, когда будет время.

2) Пищалка: Как известно, для хорошей громкости, на пьезики надо подавать побольше напряжения.

Если используешь 1-битовую, подключенную к выходу таймера - для увеличения громкости (амплитуды) можно использовать свободный вентиль преобразователя уровня RS232 (ADM202, MAX232, или что там стоит. 1 вентиль обычно остается "без дела"), он дает +-10в, да еще, если включить пищалку между его выходом и входом - получится +10...-15в. У меня например, при таком включении, зуммер (EFM290) слышно из закрытого корпуса, в достаточно шумной машине. А на время отладки на столе - заклеиваю куском изоленты, чтобы не било по ушам.

Если пищалка работает с ЦАП-а - можно разогнать парой операционников, вплоть до +-30в (парафазный выход, при питании усилителей +-15в), тут единственная сложность - в организации относительно высоковольтного питания.

Но прикол в том, что подключать к такой системе пьезик - не очень хорошо, ибо пьезик имеет очень острый резонанс. И звук получится весьма убогим. Лучше поставить какой-нибудь аудио-усилитель (желательно класса-D, за супер качеством - все равно не гонимся, а грется лишний раз - не к чему. ШИМ-рулит), и раскачать им электромагнитный динамик. Например полифонический звонок от мобильника. Они достаточно громкие, причем питания 5в - более чем хватит.

3) питание:

a) если предполагается POE, то не следует забывать про 2 вещи:

1. Необходима микросхема для "опознания" нагрузки хостом, и коммутации

основноной нагрузки опосля этого. Иначе хост вам питания просто

не отдаст. (сочтет что вы есть устройство, для этого не

предназначенное, и выключит, чтобы не пожечь).

Почитать про это, можно хотябы тут http://ru.wikipedia.org/wiki/POE

Для этого есть специализированные микрухи. Например TPS2378, LM5073.

2. Необходим преобразователь с гальванической изоляцией,

если только устройство не полностью "взвешенное"

(без внешних разьемов, в пластмассовом корпусе).

Про что тоже написано, по приведенной ссылке в wiki.

Так что:

Так в том-то и проблема, что не хочется городить трансформаторы. Ну, не люблю я трансформаторы собирать ^^''''

А придется ;) Стандарт обязывает.

На такую мощность - однозначно обратноходовка. Можно вульгарно,

на UC3845/44. Но сейчас я бы использовал что нибудь посовременнее.

Из личного опыта могу порекомендовать NCL30000. Копеечная микросхемка

очень малопотребляющая. Очень мало обвязки. Переключение по нулевому

напряжению, реализованное на анализе служебной обмотки трансформатора,

(с которой онаже сама и питается). То что микросхема предназначенна

для сетевых PFC - смотреть не надо. Никто не заставляет делать

"медленную" (менее 100гц) обратную связь, и ставить минимальный

конденсатор по входу. А без этого - она превращается в обычную

обратноходовку. Несколько непривычна переменная частота

преобразования (за счет ZVS: следующий цикл начинается сразу, как

только израсходовалась энергия в трансформаторе, запасенная на

предидущем), но к этому можно превыкнуть, главное подобрать

индуктивность первички, чтобы частота не получалась слишком большой

или слишком маленькой, во всем диапазоне нагрузок.

Вобщем сейчас у меня это "дежурная микросхема", чтобы по быстренькому сделать преобразователь. Хоть с сети, хоть с чего пониже. К сожаленью оптимальные витки трансформатора, для 48в-5в - так прямо не скажу, тем более что у меня большинство девайсов с ней сделаны на ETD29, N87, зазор 2*0.2мм, а он для данного применения - великоват. Тут надо бы что-нибудь вроде E20. Если всеже будете использовать ETD29, то ориентировочно 30/3/7витков (первичка/вторичка/служебка).

На вторичной стороне - классика: TL431+оптрон.

В принципе, есть микрухи обединяющие в себе драйвер оконечного устройства PoE, и управление изолирующим преобразователем. Но, готового порекомендовать ничего не могу, а с применением неопробованных микросхем преобразователей надо быть аккуратным. Имею очень неприятный опыт использования SI3401.

(Да, да Raymond ;), почти то самое, что вы упомянули )

Которую нормально работать, так и не смог заставить (несмотря на то, что все сделано по Datasheet-у, даже с рекомендованным покупным трансформатором). Опознание устройства - срабатывает нормально, ключ питания - замыкается. На единицы ватт - преобразователь работает. Чуть больше - выносит микросхему, и совершенно непонятно почему, и не посмотреть ничего (все "внутри"). Потратил недели 2. Перерыл все апноты. Еще и менять эту дрянь, в "безногом" корпусе, с "медным пузом" - то еще удовольствие. Редкостное г... До сих пор вызывает рвотные позывы. Можно конечно надеятся, что в упомянутой Si3402 - все баги исправлены, ага ... Но я бы очень не рекомендовл использовать что нибудь от Si-Labs (У знакомых были "нежданчики" с другими их микросхемами). Уж лучше от Ti, NS, ON, или ST, чего нибудь поискать (tps23757 - вроде ничего).

Есть довольно простенький вариант, который морально подходит для питания относительно малыми токами: LM358 + опорное напряжение + делитель + IRF...ну, допустим.. 7306/7316 с радиатором. Примерно получаем: (5-3.3)*0.2A = 1.7*0.2 = 0.34W (по спецификации может потреблять 0.25A, тогда 0.41W).

Очень, очень кривой вариант ! Прежде всего потому, что транзистор включается в режиме "усилителя" а не в режиме "эмитерного повторителя", что приводит к фиг-знает-какому петлевому усилению, а при работе "генератора тока", коим является сток (коллектор) транзистора, на емкостную нагрузку - еще и к большому сдвигу фазы. Все это вместе создает предпосылки к динамической неустойчивости. Вобщем эта проблемма есть даже у "фирменных" LDO, стабилизаторов. Если почитаете апноты - то там очень подробно описывается, что не надо вешать керамические конденсаторы прямо на выход микросхемы, а следует поставить ферритовую бусину... бла-бла-бла. А уж если можно - то прямо на титульном листе datasheet-а - большими буквами "anycap", или что нибудь в этом роде.

Это все не просто так. Проблеммы с частотной коррекцией могут вылезти совершенно неожиданно, например при резком скачке потребления (типа передачи очередного пакета), будет возникать "провал" приводящий к порче данных или зависанию чего нибудь. Вероятность не очень большая, но если "повезет" - отлавливать задолбаешся. Если так уж хочется сделать LOWdrop-стабилизатор из "рассыпухи" - озаботьтесь "вольтодобавкой", чтобы поднять затвор полевика выше питания. Ток потребления от вольтодобавки - ничтожен (<1ма) и о потерях мощности там говорить не приходится. Взять можно очень много откуда (в крайнем случае сотворить зарядовую помпу из любого генератора с двухтактным выходом (хоть 1/6 74AC14), конденсатора и пары диодов в sot23). Обычно такой источник в системе уже есть. Например вывод микросхемы драйвера RS232, на котором он накапливает повышенное питание (для ADM202 - 2выв). Или "первичное" питание (там вроде 12в предполагалось). Если все это питается от преобразователя от PoE, то вообще не проблемма, даже если у транса единствення вторичная обмотка, на 5 в - сделать, параллельный выпрямителю, канал с удвоением можно на чип конденсаторе, резисторе и паре диодов sot23.

А если есть вольтодобавка - LOWdrop-стабилизатор - делается на TL431, n-канальном полевике, и 3 резисторах. Причем если полевик достаточно низкоомный, то он будет просто LOW-LOW-LOW-drop (по сравнению с большинством серийных микросхем) :)

Да и проще это чем "LM358 + опорное напряжение + делитель + IRF" (если делать отдельную зарядовую помпу - то равноценно по сложности). Если кажется большим собственное потребление TL431 (1ма от вольтодобавки), то можно использовать ее микропотребляющие аналоги NCP431 (собственное потребление менее 50мка), или TLV(собственное потребление менее 80мка, опорное напряжение 1.25в).

Datasheet для IRF7306/7416 описывают максимальную мощность рассеянья в 1.4W @+70°C, так что 0.5W должно быть относительно допустимо.

Полвата на SOIC-8, ИМХО многовато. Только если он "сливает" через обединенные ноги коллекторов на медный полигон на плате (печатный радиатор). Кроме того, учтите что транзисторов в упомянутом приборе 2 шт. Если Vgs_th - у 2 кристаллов - заметно отличается, то запараллелить их в линенйном режиме - не очень просто, это вам не ключи. Лучше поискать хотябы "одиночный" транзистор в SOIC-8. А еще лучше D-pak, SOT-89, SOT223 - они "в случае чего" -легко сопрягаются с печатными радиаторами (или просто обрезком медной фольги).

А вообще, понижающие DC-DC, в данном случае - рулят. Всячески рекомендую ST1S10 + IHLP2525 10uH, для этой задачи (5в->3.3в) - самое то, что надо. Работает железобетонно. Уже не первый раз применяю. На нейже можно сделать и все остальные напряжения питания, из первичного (если не более 18в. если более - юзаем ST1S14). КПД- значительно выше чем у LM2596, который при 3.3в выходном - выдает менее 74% (ST1S10 - более 95%). Количество обвязки - минимально: дроссель, 2 резистора для задания выходного напряжения, конденсатор частотной коррекции 2000-4000рF параллельно одному из резисторов (обычно все работает и без него), резистор на 1Ом (или ферритовая бусинка), последовательно с питанием самой микросхемы, и конденсаторы фильтров по входу, выходу, и питанию самой микросхемы. Единственная особенность: входной и выходной конденсатор - несколько десятков микрофарад керамики X7R (X5R), (но нынче это совершенно не проблемма) танталлы - толко как дополнительные, сплошная "земля" по обратной стороне, и конденсаторы с дросселем - далеко не утягивать (сигналы по ногам микросхемы разложены вполне грамотно, это само собой получается), ибо частота преобразования - мегагерц.

4)

Возникла идея засунуть до кучи ещё и RTC в проект.. и синхронизировать время из сети... но это чуть позже.

Ну, про RTC - тут у нас уже был большой разговор.

5) не очень понятно, за каким лешим вам в таком контроллере сдалась ОС ?

Какие функции она будет там выполнять (кроме потребления системных ресурсов, и организации глюков :) ) ?

Пишешь все "с нуля", с обращением прямо "к железу", и радушься жизни :).

6)

Отладка: UART в режиме RS232 (на скорости 115200), включается только при старте ЦП, если есть потенциал на заданном пине ЦП, иначе не включен и не потребляет системных ресурсов;

А какие такие ресурсы у вас будет потреблять RS232, чтобы его выключать ? Изменено пользователем dr.Nimnul
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

З.Ы.Попытался нарыть даташит на ваш индикатор

http://www.g-nor.com/html/GNM-7881Ax-Bx.pdf

К сожаленью он очень короткий, и китайский (моя по китайски не понимает).

Необходимых цифер там просто нету.

Так что все что я сказал про импульсный ток светодиода и развертку матрицы - особенно актуально.

Вот, для сравнения, даташит, на похожий индикатор от Kingbright.

http://www.kingbright.com/attachments/file/psearch/000/00/00/TC15-11SURKWA(Ver.5A).pdf

Peak Forward Current - 185ма. Т.е. при работе таким током со скважностью 1/80 средний ток единичного элемента будет составлять всего 2.3ма . Больше НИЗЗЯ ! Для "сверхяркого красного" - это конечно не очень мало, но хочется иметь возможность включить и поярче... Кроме того, это всетаки Kingbright. А какие кристаллы стоят в вашем noname - одному богу ведомо (а его как известно нет).

Но если ты заделаешь конвертор флаем, ничто не мешает сделать отвод от вторичной обмотки транса на 3V3.

Вы несколько неправы. Сколько не наблюдал попыток сделать +5в и+3.3в на одном транчформаторе - обычно все оканчивалось фейлом. Причины 2:

1) Кросстабилизация. Оба напряжения, (если это стандартные питания логики) - имеют достаточно маленький допуск, и по сути требуют индивидуальной обратной связи. А с общим трансом - ОС возможна только от одного из, либо от их весовой суммы (стабилизация некоего среднего значения).

Кроме того, вклад падения на выпрямительном диоде - достаточно существеннен, оно тоже заметно зависит от тока нагрузки (а также от температуры этого диода), и даже если потокосцепление вторичек - идеально, добится того чтобы оба напряжения были в допуске, во всем дипазоне нагрузок и входных напряжений, - почти нереально. Путем долгого подбора, можно добится некоего компромисса, если нагрузки более-менее постоянны (под конкретное устройство), но это не есть красиво.

2) Эту проблемму можно обозвать "некратное деление обмотки". Например у меня в последнем трансе, который делает +5в, во вторичке - 2витка. Откуда отвод делать :) ? Если от середины - получится примерно (5+0.5)/2-0.5=2.25в, а больше - просто неоткуда.

И почти в любом случае, витков на 5в - получается очень мало. Там особо и свободы для подбора то и нет.

Не просто так, в ATX-х блоках питания делают отдельный стабилизатор, на 3.3в, с насыщаемым дросселем (ака управляемое реактивное сопротивление в цепи переменного тока, снятого с 5-вольтовой вторички), и своей локальной обратной связью (как правило, на отдельной TL431). Но не думаю, что ту есть смысл так заморачиваться. Я не разу такого сам не делал, но что-то мне подсказывает, что это далеко не так просто как выглядит со стороны ;).

Так что,+3.3в - проще делать отдельным преобразователем, не смотря на кажущуюся простоту схемы с отводом. Причем, крайне желателен синхронный (без диода), в виду малого выходного напряжения, иначе КПД - будет удручающе низким.

Кроме всего прочего, КПД, (при использовании синхронного преобразовтеля на ST1S10) - будет такимже, несмотря на 2 ступенчатое преобразование, ибо при выпрямлении 5в - относительные потери на падение диода - меньше, чем при непосредственном выпрямлении +3.3в. Если принять падение на диоде за 0.5в то при непосредственном выпрямлении получается 3.3/3.8=0.86, а если делать сперва 5в, то получается 5/5.5*0.95=0.86 (все прочие потери - считаем равными в обоих случаях).

В принципе, с этой точки зрения, даже выгоднее сделать сперва, ну скажем +12в (для звука например), а потом из него, 2 преобразователями +5в, и +3.3в (12/12.5*0.95=0.91).

 

Еще один плюс в сторону флая - гальваническая развязка девайса, что очень желательно для устройства, питаемого через длинный кабель.

Не просто желательно, а строго обязательно по стандарту PoE. Ethernet - всегда предусматривает гальваническую развязку. Причем НА ОБОИХ КОНЦАХ КАБЕЛЯ. Как по линиям данных (сигнальными трансформаторами), так и по питанию (через изолирующие преобразователи). Изменено пользователем dr.Nimnul
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

dr.Nimnul, приветствую, рад видеть!

 

Об организации периферии. Для управления светодиодами рекомендую MBI5026, узнал о драйвере по проекту LightPack в свое время, использовал в нескольких проектах. По-сути, тот же сдвиговый регистр со стабилизацией тока. Ток задается на всех выходах внешним резистором, управляется все через быстрый SPI на 10MHz. Конечно, для этого лучше выделить отдельный контроллер, для связи я бы использовал I2C слейв (ибо SPI у контроллера уже занят в режиме мастера), благо, все это будет сидеть на одной плате и далеко тащить провода шины с пулапами не придется. А UART можно использовать с большей пользой.

 

В качестве экзотики (использовал на практике) - периферийные контроллеры от Princeton для LED (PT6958) и для VFD (PT6312). Единственный недостаток при сканировании кнопок - отсутствие выхода прерывания, т.е. полный слейв. Клаву обычно реализую отдельно по I2C используя расширители портов. PCF8574 - самый простой вариант, и как следствие - наиболее быстрое обращение к нему. Есть варианты посложнее, многопортовые, с кучей регистров и индивидуальной настойкой пинов. Опробовано и использовано в целой куче проектов. Никакого сканирования клавы с тратой ресурсов - все по прерыванию. Антидребезг на капах - работает стабильно в т.ч. в сложной электромагнитной обстановке. Выгодное решение, если кнопок не сотня. А если сотня, то можно еще декодировать PS2, что тоже делалось.

 

Еще бы, если делать РоЕ по всем стандартам - это достойная задача на самом деле, и весьма ощутимая часть описанного в стартпосте проекта. Конечно же, с полной гальванической изоляцией (думаю, и без капса, все, кто читает эту тему, знает что физический уровень Ethernet всегда гальванически развязан ; ) ) Но, я так понял, Alan хотел упростить задачу и просто использовать свободные жилы кабеля и питать устройство просто по линии от своего источника (сделать врезку-переходник в сеть чтобы подключиться к жилам - совсем просто же). Хотя это далеко не самый красивый вариант, да и стандартизация - всегда плюс.

 

По поводу флая - в целом согласен, что на таком низком напряжении - это сложно (это можно прикинуть и рассчитать ради интереса). Хотя никто не мешает подогнать напряжение с отвода до 3,3 вольт с помощью LDO, всяко потерь будет меньше. Но делал на более высоком напряжении, с отводами, с кросстабилизацией вполне можно бороться. Все что вы говорите о необходимости повторной стабилизации (зависимость падения напряжения на диодах от вариации нагрузки, дроссель с насыщением как в ATX) - совершенно правильно, для тех мощностей (хотя там кросстабилизация по 5 и 12 вольтам порой вылезает : ) ). Здесь же ситуация гораздо проще, тем более, что жрет в основном пятивольтовое питание, по которому и ОС и которое наиболее меняется под действием нагрузки индикатора, нагрузка по 3.3 вольтам на физику Ethernet - вполне постоянна. Но учитывая простоту и эффективность современных синхронных импульсных преобразователей, правильнее и красивее деле сконвертить до пяти вольт и потом степдауном к 3.3, что и делается (тут скорее всего КПД будет зависеть от правильной трассировки платы, правильного выбора индуктивности и обмазыванию преобразователя годной керамикой).

 

Управлять пьезоизлучателем проще всего с помощью индуктивности и ключа. Индуктивность к питанию, ключ к земле, а-ля буст без диода, прямо к ключу - пищалку. Расчётом дросселя можно добиться неплохого визга. Правда, здесь громкость будет зависеть от частоты, но для сигнализаций монотональных - вполне сойдет. Идея успешно применялась в наручных часах, тамагочи, и прочих гениях китайской мысли. Кстати, по этой же топологии некоторые умельцы реализовывали класс Е раскачки электрострикционного излучателя.

 

А вот это

 

>> Пишешь все "с нуля", с обращением прямо "к железу", и радушься жизни

 

В рамочку и на стенку. :)

 

P.S. Что именно от силабов еще глючило, кроме POE? Ибо сам не очень юзаю их продукцию, активно - только USB-мосты, с ними проблем нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Об организации периферии. Для управления светодиодами рекомендую MBI5026, узнал о драйвере по проекту LightPack в свое время, использовал в нескольких проектах. По-сути, тот же сдвиговый регистр со стабилизацией тока. Ток задается на всех выходах внешним резистором, управляется все через быстрый SPI на 10MHz.

вполне достойная идея. Я как-то упустил из виду специализированные микрухи для управления светодиодами. С указанными лично не общался, хотя подобные штуки (сдвиговый регистр+перезащелка+генераторы токов) встречал. Потом посмотрю что это такое. Тут важно только чтобы оно обеспечивало должный ток (и не перегревалось при этом). Ибо придется ему работать не на 1 светодиод, а на целую колонку, в виду маленькой скважности - ток придется умножать в N-раз.

 

Клаву обычно реализую отдельно по I2C используя расширители портов. PCF8574 - самый простой вариант, и как следствие - наиболее быстрое обращение к нему. Есть варианты посложнее, многопортовые, с кучей регистров и индивидуальной настойкой пинов. Опробовано и использовано в целой куче проектов. Никакого сканирования клавы с тратой ресурсов - все по прерыванию.

 

Можно и так. Но если используется проц индикации, то программное сканирование - получается "на халяву", одновременно с разверткой индикатора: Одним и темже ключем (с дешифратора, или напрямую к контроллеру, если ног хватит)одновременно коммутируешь, к +5в, строку индикатора и строку матрицы клавиатуры. Столбцы клавиатуры - притянуты к земле, и заведены на отдельные входы считывани. По таймерному прерыванию:

1) Считал слово с клавиатуры. Если чего нажато - кинул в буфер, (и)или сразу в интерфейс (тутже реализуется и антидребезг по счетчику циклов опроса).

2) погасил индикацию (закрыл все ключи), чтобы не было паразитных засветок от переключения

3) перезащелкнул очередное слово на следующую строку индикации

4) сменил номер строки (в порту, который управляет ключами строк)

5) зажег индикацию (открыл установленный ключ)

6) загрузил в сдвиговый регистр следующее слово на индикацию, из видеобуфера

Конец обработчика. До следующего вызова - горит очередная строка, и происходит распространение сигналов в матрице клавиатуры.

Фоновая программа - обычно вообще остановлена (крутится в бесконечном холостом цикле). В принципе, она может заниматься разгребанием буфера клавиатуры, хотя это красивее делается в обработчике таймерного прерывания, после считывания очередного слова с клавиатуры. Может заниматся текстовой печатью или рисованием в видеобуфер (выполнением высокоуровневых команд от основного проца, пришедших с интерфейса), хотя эта штука неплохо делается в обработчике прерывания, по приходу очередного байта в интерфейс.

Еще бы, если делать РоЕ по всем стандартам - это достойная задача на самом деле, и весьма ощутимая часть описанного в стартпосте проекта.

Да ничего особо достойного там нет. Единственная относительно сложная штука - собственно сам изолирующий преобразователь. Взаимодействие с хостом, и опознание - осуществляется специализированной микросхемой (протокол там кстати элементарный). Эта микросхема все и делает. По окончании "рукопожатия" - подключает полевик на основной преобразователь. Необходимо приделать к ней резистор, программирующий класс устройства по нагрузке (таблица обычно преведена в даташите), многофазный диодный мост (со всех дифпар интерфейса, чтобы как не включишь - всегда питание приходило куда надо) - 8 диодов или 2 мостовых сборки, и, если изолирущие трансформаторы по сигнальным парам не имеют отводов от середины - высокочастотные фильтрующие дросселя, с каждого провода дифпары (впрочем если есть отвод от серединки транса - дроссель все равно полезен, для доп фильтрации). И не увлекаться емкостью фильтра ДО ключа подключающего основной преобразователь (там ЕМНИП, не более 0.1мкф положено), чтобы в процессе детектирования, вас не приняли бы за КЗ, из-за тока заряда этого конденсатора. Основной конденсатор должен располагаться ПОСЛЕ ключа.

Все ! Более никаких сложностей там нету. Если такая уж проблемма сделать преобразователь - вот пожалуйста:

4498100m.gif правда, пока - это "не совсем то". Я выдрал источник служебного питания из своего сетвого 700ваттного PFC. Но даже в таком виде оно работает в диапазоне входных напряжений 60-395в. Если надо - могу оптимизировать под входное около 48в, выкинуть лишнее, прикинуть трансформатор (и транзистор на 800в - слишком высокоомный, такой там нафиг не нужен, и цепочки из резисторов можно покороче сделать, и т.д.). Эта схема дает мощность порядка 40вт, это немного избыточно, хотя, если транс на ETD29 - устраивает, то можно не напрягаться, как говорится "запас карман не тянет"(в принципе - как раз, верхняя граница допустимой нагрузки для PoE), индикатор может сожрать немало, особенно если в дальнейшем его планируется делать "настенного" размеру (такиеже сборки, только большие, потребуют бОльших токов для обеспечения тойже яркости).

 

Но, я так понял, Alan хотел упростить задачу и просто использовать свободные жилы кабеля и питать устройство просто по линии от своего источника (сделать врезку-переходник в сеть чтобы подключиться к жилам - совсем просто же). Хотя это далеко не самый красивый вариант, да и стандартизация - всегда плюс.

Не самый красивый. Вы правы. Тем более что использовать стандартный разьем - тут не очень правильно. А вдруг кто-нибудь туда воткнет что-то другое ? В гигабитном ethrnet-е, эти контакты - уже не свободные. (Сами же мне в свое время этим тыкали в теме про DC-AC преобразователь :) )

Кроме того, в PoE не так просто используется все 8 проводников и контактов, и относительно высокое напряжение. А 12в - это достаточно большие токи (мощность там уже далеко не совсем "копеечная"). По длинному ethernet-кабелю, да только по одной паре, да через те обжатые контакты... ф-у-у ! Тады уж лучше воткнуть обычный AC-DC с 220, на 12в, (неужели в помещении нет розетки ?) и с него все сделать. Кстати

этой задачи - я уже давал, причем даже с примеро разводки. Оно работает без нареканий. Единственное , что сейчас я ставлю дросселя по 10uH, и конденсаторов по 10мкф X7R, по выходу - не по 1, как нарисовано, а по 2-3шт (в зависимости от тока).

А если пустить по кабелю теже 48в - возвращаемся к тому с чего начинали - преобразователь основная проблемма. А добавить к нему, положенную по стандарту микруху - совсем не сложно. У меня эта часть заработала "с листа", даже с силабсовской микрухой.

 

По поводу флая - в целом согласен, что на таком низком напряжении - это сложно (это можно прикинуть и рассчитать ради интереса).

Рассчитать довольно сложно на самом деле. Реальные наблюдения за людьми, которые пытались такую штуку сделать (именно +5 и +3.3, пускай и с относительно небольшими нагрузками), показывают что АБСОЛЮТНО ВСЕ, со временем от этого отказались, ибо результат "не айс"(хотя "в легких условиях", может быть на пределе допустимого, и на какоето время - удовлетворять), а сделать степ-даун - нынче совершенно не проблемма. Следователно, нафига парнокопытному - клавишно-духовой музыкальный инструмент :)

Хотя никто не мешает подогнать напряжение с отвода до 3,3 вольт с помощью LDO, всяко потерь будет меньше.

Ну, вот так, кстати можно. Особенно если вольтодобавочку с тогоже транса сделать, да на этом стабилизаторе где-то 0.5-0.05в ронять (покупных микрух, с такими параметрами, я как-то не знаю, а вот TL431+полвик+3резистора - рулят). Вполне себе годное решение. Но все равно макетировать надо. С первого раза в оптимальные витки - точно не попадешь.

Но делал на более высоком напряжении, с отводами, с кросстабилизацией вполне можно бороться. Все что вы говорите о необходимости повторной стабилизации (зависимость падения напряжения на диодах от вариации нагрузки, дроссель с насыщением как в ATX) - совершенно правильно, для тех мощностей (хотя там кросстабилизация по 5 и 12 вольтам порой вылезает : ) ).

На высоких напряжениях, ака 5 и 12 - это совершенно другое дело. Хотя даже там, как вы правильно заметили, оно "порой вылезает". На 5 и 3.3 - оно будет безобразно.

Здесь же ситуация гораздо проще, тем более, что жрет в основном пятивольтовое питание, по которому и ОС и которое наиболее меняется под действием нагрузки индикатора, нагрузка по 3.3 вольтам на физику Ethernet - вполне постоянна

Нифига она не проще. По 5в каналу нагрузка будет меняться примерно процентов на 90-95, в зависимомти от того, что на индикаторе нарисовано. Да еще и импульсно потреблять, в процессе динамической развертки этого индикатора (порождая переходные процессы в преобразователи). Это, как раз - самый "ахтунг".

Кстати тут DC-DC, по 5в каналу весьма полезен, еще и с точки зрения, что у него переходный процесс значительно красивее, чем у большинства изолирующих преобразователей (ввиду прямой обратной связи на микросхему управления).

Я могу вам расказать страшную историю, как у меня сетевой преобразователь на TOP-switch, оказался полностью не работоспособен, из-за программной динамической развертки на нещастных 8шт семисегментных индикаторах, не смотря на то, что они потребляли "всего-то" процентов 50 общего потребления прибора, а все остальное - практически константа. Там микропроцессорная система была с аналоговщиной, +5в - для "цифири" - основной потребитель (и по нему обратная связь, на TL431), +-15в - для аналоговой части, с отдельными стабилизаторами на 7815/7915, и еще изолированный канал +5в (для опторазвязанного интерфейса), со своей 78L05. Как это не смешно, но единственное, как можно было заставить эту хрень более-мене заработать - это прицепить на 5в - мощный резистор на 20 Ом, и уменьшить ток индикатора, почти до предела (нормально видно, но заказчик наивно спросил "а нельзя ли поярче" :) ). Иначе: "8.8.8.8. " на индикаторе - и процессор повис. А влепишь электролит по +5в - преобразователь запустится не может (запасенная в служебном конденсаторе энергия заканчивается раньше, чем зарядится выходной электролит, засветится оптрон, и начнет поступать питание со служебной обмотки, преобразователь уходит в шотдаун, за это время выходной электролит успевает разряжаться, и так до бесконечности). Увеличшь служебный электролит - еще больше испортится переходный процесс, и придется еще сильнее увеличивать выходной (и этот процесс бесконечен).

Тут конечно сказалась архиубогая динамическая характеристика TOP-switch-а, ибо у него накопительный электролит - на тойже ноге, что и управление. Но тем не менее ...

(тут скорее всего КПД будет зависеть от правильной трассировки платы, правильного выбора индуктивности и обмазыванию преобразователя годной керамикой).

Ну таки да. Про индуктивность трассировку и керамику - я уже гворил ранее, нынче с этим никаких проблемм, даже с 1Мгц ST1S10.

 

Управлять пьезоизлучателем проще всего с помощью индуктивности и ключа. Индуктивность к питанию, ключ к земле, а-ля буст без диода, прямо к ключу - пищалку. Расчётом дросселя можно добиться неплохого визга. Правда, здесь громкость будет зависеть от частоты, но для сигнализаций монотональных - вполне сойдет. Идея успешно применялась в наручных часах, тамагочи, и прочих гениях китайской мысли. Кстати, по этой же топологии некоторые умельцы реализовывали класс Е раскачки электрострикционного излучателя.

Забавная идея. Голь на выдумку ... Но скорее всего проблемма будет в том, что очень острый резонанс - т.е. только на 1 частоту, как вы и сказали. Вариант со свободным вентилем ADM202 - он хорошо работает в достаточно широком диапазоне частот, и получается обычно совсем "на халяву" .

 

P.S. Что именно от силабов еще глючило, кроме POE? Ибо сам не очень юзаю их продукцию, активно - только USB-мосты, с ними проблем нет.

Я "хлебнул" только с POE. (похоже что ключевой транзистор на 100в, "на борту" - там сделан "на пределе технологии", или параметры даже хуже завленных. Одно неверное движение - и все вынесло, похоже что по напряжению, хотя если верить осцилу - снубер все ограничивал "с запасом") У знакомых глючил какой-то из Ethernet - контроллеров, причем глючил редко и труднообяснимо. Кончилось тем, что от него тоже отказались и перешли ЕМНИП на micrel. Краем уха слышал, что флеши у них еще где-то есть "кривые" (самостираются без видимых причин). Изменено пользователем dr.Nimnul

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вполне достойная идея. Я как-то упустил из виду специализированные микрухи для управления светодиодами.

 

 Просто ради информации - использовал микрухи типа PCA9532 и урезанный четырехбитный PCA9533. Хотя у них нет стабилизации тока - на борту готовый ШИМ, иногда экономит таймер. Частота может меняться, так что пищать от этой микрухи вполне себе можно. И вообще у NXP много забавной продукции, все и не перепробуешь. :)

 

Да ничего особо достойного там нет. Единственная относительно сложная штука - собственно сам изолирующий преобразователь. Взаимодействие с хостом, и опознание - осуществляется специализированной микросхемой

Ну это на усмотрение топикстартера. Это мы с вами на преобразователях "собаку съели", хотя с помощью, думаю, осилит сию задачу. :) Но я имел в виду именно микруху управления РоЕ - не доводилось мне сие ваять пока, хотя вы правы - там не должно быть ничего особо сложного. Даже в доме пока что нет ни одного РоЕ-свича, от которого можно было бы запитаться.

 

Я могу вам расказать страшную историю, как у меня сетевой преобразователь на TOP-switch, оказался полностью не работоспособен, из-за программной динамической развертки на нещастных 8шт семисегментных индикаторах

Прохладная история, тем более учитывая "капризность" и несколько обманчивую простоту TOP-switch. Хотя у меня опыт скорее положительный по работе с ними, проблемы запуска приходилось отдебаживать пару раз.

 

NCL30000 - хорошая вещь, только, жаль, на ней нельзя заделать преобразователи, питаемые напряжением ниже 12V, не стартует по даташиту, и эту защиту никак не обойдешь. Но здесь это и не нужно.

 

И таки да, к Alan'у - ждем твоего решения как виновника торжества. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ох, сколько комментариев получил во время отпуска.... О____о
Хорошо, постараюсь ответить по порядку. Итак:
 

Изложу некоторые свои мысли по сабжу:
1а) индикация: (Программная развертка)

Соглашусь. Реализация будет полностью программной, и БЕЗ дополнительного сопроцессора. Как раз индикация будет выполняться с наивысшим приоритетом (за исключением звука), но тот будет отъедать (по прикидкам) не более 1-2us (мкс), а развёртка планируется в 1kHz (тактирование), 125Hz вертикальная.
И выводиться будет построчно.

Тем более, если это 8-битная атмега, там и так быстродействие не запредельное.

Опять же, Вы абсолютно правы, спасибо. Но в данном случае, будет применяться тактовый генератор на 18.432MHz, что для данной задачи довольно быстро.
Кстати, точное время выполнения процедуры (точнее, положение относительно других довольно "шустрых", ещё не решено).
Опять же, процедура вывода звука занимает порядка 100-130 тактов. Там идёт несколько проверок, идёт ли воспроизведение, есть ли ещё данные в буфере, обработка ссылок и вывод нового байта. Да, будет ЦАП (R-2R). Насчёт того, какой у меня динамик... пока вопрос. Мне кажется, это пьезоизлучатель.. Могу ошибаться в настоящий момент. Проверю чуть позже.

1б) индикация: следует помнить, что импульсный ток светодиода - не безграничен

Никаких возражений!
Кстати, из следующего поста, вижу мануал.... (у меня он открылся вообще БЕЗ пояснительных надписей, видимо нет шрифтов в Ubuntu) но по результатам домашней проверки, суммарный ток на линию для достаточной яркости индикатора - это 10-15mA на точку, что для индикации 8-ми точек доходит до 80-120mA, для 80-ти (ВСЕ точки в линии) - 800-1200mA.
[datasheet]
В моём случае, это индикаторы Ultra Red (тип соединения - неизвестен, т.к. одна линия соединяет аноды, а другая - катоды... вот и угадывай) 660/625 (длинна волны) 1.8/2.0 (V) 20/20 (mA) 25/30 (min) 30/35 (max) Lumen (Яркость).
Примерно так.
[/datasheet]
Кстати, второй datasheet от KB, идёт на чуть бОльший индикатор, потому он не совсем подходит. И там рекомендуют уже 30mA средний ток и до 185mA импульсный.... многовато. Источник питания меня просто пошлёт ^_^''

Выводить, напомню, собираюсь горизонтально. Вертикальная индикация требует слишком большой скважности, или большего количества процессорного времени. В качестве драйверов строк будут выходить IRLML2402 (держат ток до 2A), а столбцами управлять будут сами 74HC595 (и ограничительные резисторы на 150 Ом).

1в) индикация: как показывает практика, матричные индикаторы - нужны далеко не всегда.

Что поделать, у нас чаще будет отображаться текст. Причём, где угодно.
Но мысль использовать сегментники, была.

1г) индикация: Внешняя SRAM.

Нет, это действительно, значительно усложнит схему. К тому же, в чипе и так 16kB памяти, а индикация не требует такого уж количества ресурсов.

2) Пищалка

Ох, молю, не напоминайте.. =)
И так голова кругом. В том числе, по работе в настоящий момент. Так что.. звук пока что на второй план.. Вместе с термометром, а он там будет О_о

3) питание

Над питанием пока тоже думаем. На самом Ethernet модуле, есть две свободных пары выводов. На них можно спокойно подпаяться и брать от туда питание. Насчёт уровня напряжения пока вопрос.. Модуль, который есть (готовый), не любит напряжений выше 35V на входе, что для POE является проблемой, ибо 48V. Придётся городить огород в начале. Но это чуть позже. В начале нужно собрать библиотеки в один проект и хотя бы доделать макетку.
Насчёт развязки питания - хороший пинок.. Задумаюсь.
ЗЫ: Те модули POE, что присутствуют у нас, являются довольно дубовыми (пара розеток + разъём для питания) - чуть позже выложу фото. Так что, с наличинем 48V проблем не возникнет. Придётся городить огород из развязки и понижающего преобразователя до приемлемых величин.. Вероятно, буду сбрасывать до 48->5V, а далее - 5->3.3V.

Опять же, благодарю за описание возможных грабель с ФНЧ для моего варианта "стабилизатора". Сам прекрасно понимаю, что это было довольно некрасиво придумано. Опять же, на нём можно собрать довольно простой импульсник... разве что, другой MOSFET выбрать, т.к. данные не выживут при питании >=30V.
 

4)Ну, про RTC - тут у нас уже был большой разговор.

Не укажете адреса разговора? :)
 

5) не очень понятно, за каким лешим вам в таком контроллере сдалась ОС ?
Какие функции она будет там выполнять (кроме потребления системных ресурсов, и организации глюков :) ) ?
Пишешь все "с нуля", с обращением прямо "к железу", и радушься жизни :).

Собственно, была мысль использовать ту самую FreeRTOS (опять же, познакомиться с оной и попробовать на вкус), но после прикидок требований к ресурсам.... отказался, в общем. На 22kHz не вытянет.
 

6)А какие такие ресурсы у вас будет потреблять RS232, чтобы его выключать ?

Если включена отладка, то в некоторых местах кода можно выводить отладочные сообщения (типа вывода мини-дампа пакета, уведомлений, и прочего). Если отладка выключена (не инициализировалась), то будет проходить проверка типа:
if (debug==1) {
<Вывод сообщения>
};
Собственно, в случае отсутствия отладки, даже не будет тратиться времени на передачу данных. Опять же, реализация обмена USART требует синхронности (отключаем прерывания и долго молотим строку символов, отправляя её через аппаратный порт наружу).

2 Raymond:
 

Об организации периферии. Для управления светодиодами рекомендую MBI5026, узнал о драйвере по проекту LightPack в свое время, использовал в нескольких проектах. По-сути, тот же сдвиговый регистр со стабилизацией тока.

Нашёл MBI5026 у себя в городе. 54.26р за 16 каналов... При этом, 74HC595 всего 7.90 р за 8 каналов.
Бюджет проекта мал.. потому выбор идёт на более простой чип.
Опять же, никто не запрещает мне использовать дополнительный PWM-генератор со стороны MCU (есть ещё один свободный таймер, а со стороны регистров есть вывод управления; всё вполне приемлемо).

Клавиатура не требуется, управление по сети, да и настройки сети меняться не должны. Потому ничего сложного не будет. Если что - запишу конфигурацию в EEPROM и буду инициализировать всё из памяти.

Но, я так понял, Alan хотел упростить задачу и просто использовать свободные жилы кабеля и питать устройство просто по линии от своего источника (сделать врезку-переходник в сеть чтобы подключиться к жилам - совсем просто же). Хотя это далеко не самый красивый вариант, да и стандартизация - всегда плюс.

Yep! Именно так и собирался делать. Теперь подумаю о вариантах. Возможно, постараюсь сделать более красиво и с развязкой и более прямым POE.
 

А вот это

>> Пишешь все "с нуля", с обращением прямо "к железу", и радушься жизни

В рамочку и на стенку. :)

Да, порадовало. Так и пишу, иначе не хватает тактовой. Чтобы всё работало на RTOS, пришлось бы задирать частоту выше 60MHz... и это очень печально. А так - 1kHz прерывания (большая часть - SysTick(), остальные по необходимости) при 18.432MHz - это довольно мало.


Итак, опишу кратко по питанию:
Всё, конечно, под вопросом. Буду стараться найти более удачное решение с нормальной гальванической развязкой, но это для меня пока сложновато, плюс детали могут оказаться достаточно дефицитными, а намоточного медного провода в городе днём с огнём не сыскать. Уже успел оббежать ВСЕ известные мне магазины - ничего. Есть только обычный монтажный, но на нём ухи, что называется, не сваришь - трансформатор намотать будет крайне проблемно.
Итак, ищу: преобразователь POE с гальванической развязкой (50+V -> 5V @3~4A), то есть, с допуском до 15~20W.
Преобразовывать напряжение для модуля Ethernet буду с 5V, т.к. при этом не потребуется дополнительный "качественный" преобразователь POE->3.3V @0.25A.

Звук: Будет ЦАП, и не обсуждается xD
Да, хочу там воспроизвести Nyan-Cat (ну да, такая мелкая замашка). Так что, вопрос с адекватным звуком - актуален.

Индикация - динамическая, строчная. Вывод синхронный, без регулировки яркости (либо с ней, но довольно простой - PWM).

В текущий момент занимаюсь тем, чем могу в относительно свободное время (на работе, да) - дописываю модули.
Плату пока не могу делать (даже переходники, хотя жаль).

Кстати, неожиданно обнаружил в своём магазине позитивный(!) фоторезист. Разве что обозвали они его "Фотопечатный лак".



Как и обесчал, нашёл картинку: Производитель PoE модуля. Да, конечно, фирма на букву "D". Но что контора закупает, тем и богаты. ::blush

Изменено пользователем Alan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возникла довольно неплохая (лично на мой взгляд) идея - использовать часть ATX блока питания (конкретно, переделанный источник дежурного напряжения 5B USB), немного его модифицировав (ну и собрав плату с нуля).

По идее, должен оставаться работоспособным при пониженном напряжении (40-50V, что удовлетворяет условиям PoE), но вероятно, придётся менять транзистор, а так же, пересчитывать трансформатор. Изначально напряжение на выходе 5V с током до 2А (под потолок), что мало, потому нужно переделывать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возникла довольно неплохая (лично на мой взгляд) идея - использовать часть ATX блока питания (конкретно, переделанный источник дежурного напряжения 5B USB), немного его модифицировав (ну и собрав плату с нуля).

По идее, должен оставаться работоспособным при пониженном напряжении (40-50V, что удовлетворяет условиям PoE), но вероятно, придётся менять транзистор, а так же, пересчитывать трансформатор. Изначально напряжение на выходе 5V с током до 2А (под потолок), что мало, потому нужно переделывать.

 

ИМХО, Идея абсолютно бесполезная. После такой переделки - от исходной схемы - ничего не останется :). Заводится от 40-50V - такой источник совершенно не обязан. Ибо если он удовлетворяет стандарту 80-265 VAC - то при 80в переменки, на коненсаторах будет около 110в постоянки (огромный конденсатор, рассчитанный на мощность несколько сот ватт, режим близкий к холостому ходу, т.е. заряд практически до амплитудного значения), да и не всегда при работе в "дежурном" режиме - обеспечивается полный выходной ток (а как только источник включается - активный PFC - разгонит напряжение на конденсаторах, до 400в, даже если на входе 80-переменки) так что даже готовый трансформатор использовать скорее всего не получится (надо перематывать первичку, причем бОльшим сечением, а она там обычно в самом низу, подо всеми остальными обмотками...). Только что сердечник от него взять, но они частенько бывают хорошо склеены эпоксидкой, да еще и в лак окунуты - не всегда и размотаешь. Кроме того, если это автогенератор (обычно в старых и дешевых источниках) - то штука ОЧЕНЬ капризная, и чего-то менять в схеме - себе дороже, а если на если используется какая-то микруха управления (более новые и более дорогие источники), то она может оказаться во первых: очень экзотической - у вас будет 1 экземпляр (выдранный из конкретного источника), спалишь - и все можно начинать с начала( с новой схемой и с новой микросхемой, ога...), да и тиражировать потом, даже в 2-3 экземплярах - будет проблемматично, во вторых: в современных источниках, эти микрухи очень жестко оптимизированы под микропотребление в режиме холостого хода (новые веяния моды, однако уже включенные в стандарт, чтобы компы в дежурном режиме елепстричества не потребляли, блин), что может породить довольно много неприятных сюрпризов, вроде очень маломощного драйвера затвора (попытка поставить полевик "потолще" - приведет к фейлу), либо вообще встроенного ключа (а он на 700в и 5 Ом Rds_on.... упс), да и автоматика перевода в режимы с "прерывистой" генерацией - может доставить гемор при наладке (в каждой микрсхеме производители "намудрили" по своему, и разбираться как это запретить - нет никакого желания).

Собственно схема преобразователя которую я привел - это и есть ровно тоже самое :) - вспомогательный источник, от большой силовой платы, с питанием от сети 80-265в, и с активным PFC на входе. В исходном виде запускается от 60в, правда несколько секунд (долго заряжается C30, через высокоомную "гирлянду" R7-10, рассчитанную на значительно бОльшие напряжения), слишком высокоомен ключ. Если делать на 48в, то:

1) "гирлянду" R7-10 - сокращаем до 1 резистора на 51к (желательно 1206)

2) "гирлянду" R12-14 - сокращаем до 1 резистора на 200к (желательно 1206)

3) Транзистор подбираем на 150-200в, и что-нибудь вроде 0.06-0.2 Ом, в открытом состоянии.

4) Шунт (R23, R24) уменьшаем до 0.05 Ом.

5) R21 - 27к

6)Диоды VD8, VD9 - оставляем один из 2, ибо избыточно.

7) VD5- последоватльно с питанием - можно выкинуть (закоротить), ибо он нужен для снижения тока потребления, пока C30 заряжается мизерным током, что для таких входных напряжений - не столь критично, правда учитывая что он в одном корпусе с диодом плавного запуска (который полезен) - можно и оставить.

8) трансформатор: ETD29 N87, с зазором 0.2мм на обоих "половинках" (суммарный зазор 0.4мм) (B66358G0200X187- сердечник, B66359W1013T001,

B66359A1013T001, B66359B1013T001 - Каркас горизонтальный, B66359S200X000 -Скоба) Первичка - 20 витков, d=0.4мм*6, вторичка на 5в - 2 витка, в 2 пучка (каждый на свой диод), по 8 проводов d=0.4мм в каждом, если вторичка на 12в - то 5-6 витков(и R27 - пересчитать естественно) , служебка - 8 витков d=0.4мм - в один провод. Мотать именно в таком порядке (первичка, вторичка (2 шт, друг над другом), служебка). В качестве межслойной изоляции, для кустарного исполнения - неплохо подойдет строительный бумажный скотч, шириной 20мм (между обмотками - по 4-5 слоев, межслойная , в пределах одной обмотки - по 1-2 слоя).

9)C16, С17 - высоковольтная керамика (на 1600в - минимум)

С15, С88 - пленочные С15 - на 250в (лучше - на 400), с88 - на 160в впрочем С88, еще должен быть задублирован электролитом, и он может быть и керамическим X7R, на 100в и более емкость - чем больше тем лучше (в разумных пределах), например чип 1206, на 1мкф, 100в - прекрасно подойдет.

10) С23-С27 - может хватить и 3шт, если места сильно жалко и не ставьте их "вплотную" по напряжению, для 5в выходного имеет смысл взять их на 16в, а для 12 - 1500-1000мкф на 25в. Выходной фильтр (L6, С28,29) - по желанию (для чистого питания), в качестве L6 - можно взять ферритовую бусинку с 1-2 витками, или готовое колечко из "раcпыленного железа", от паленой материнки, главное - толстым проводом, чтобы не было падения напряжения.

В таком виде - должно заработать. В крайнем случае, придется подобрать C19, R132, если будет возбуждаться обратная связь.

Вообще, по питанию, думается мне, имеет смысл сделать 2 неизолирующих Step-Down преобразователя (схему тут я уже давал, и с комментариями), с небольшого, не очень хорошо стабилизированного, напряжения (типа 12в), от негоже запитать и звук (там 5в-маловато будет). Временно работать от подключенного сетевого адаптера на 12в. А потом добавить модуль PoE, с изолирующим флаем на 48-->12в, можно через "диодное смешение" с сетевым адаптером (венее диод нужен только адаптеру, онже "противодуриковый", описанный флай - прекрасно выдержит включение стороннего источника "в лоб", у него и так выпрямительный диод имеется).

 

, а намоточного медного провода в городе днём с огнём не сыскать. Уже успел оббежать ВСЕ известные мне магазины - ничего. Есть только обычный монтажный, но на нём ухи, что называется, не сваришь - трансформатор намотать будет крайне проблемно.

Печально. Советую поискать по свалкам, выброшенные электромагнитные пускатели, реле, или другую электротехнику с большими НЕ ПРОПИТАННЫМИ (их хрен размотаешь) катушками.

В сетевых пускателях, эмальпровод как раз вроде того что вам нужен 0.3-0.5мм, его много (одного пускателя хватит на несколько трансформаторов) и они обычно не залиты и не пропитаны. Смотрите только чтобы совсем в луже не валялся долго (обычно это видно по степени коррозии металлических деталей) - испортится провод.

Либо еще можно мотать проводом МГТФ, во фторопластовой изоляции, правда он сильно дорогой, если его покупать, но быват большие запасы с советских времен. Если на ETD29 - то трансформатор достаточно свободный - должно влезть, хотя изоляция там и толще. Мотать проводом в ПВХ изоляции - точно не стоит, т.к. из-за толстой изоляции - вам придется сильно уменьшить сечение меди, а это нагрев. ПВХ - совершенно не термостоек. Изоляция "поплывет", (особенно внутри катушки, вы и не увидите, пока не размотаете) - и здравствуй межвитковое КЗ. Проходил я уже через это.

Впрочем поищете другие фирмы. Часто ферритами и намоточным проводом торгуют совершенно другие конторы. Не те что продают радиодетали.

 

Звук: Будет ЦАП, и не обсуждается xD

Да, хочу там воспроизвести Nyan-Cat (ну да, такая мелкая замашка). Так что, вопрос с адекватным звуком - актуален.

Да бога ради. Только тогда лучше не парится с пьезиками (очень убогая АЧХ, с острым резонансом, с которрым почти невозможно бороться), и поставить нормальный динамик. Если у вас большой IT-отдел - можно из старого корпуса выломать PC-speaker, там (за исключением самых современных) обычно вполне приличный 0.25Вт электромагнитный громкоговоритель. Раскачать его от +12в, посредством любого доступного операционника, "надставленного" комплементарной парой биполярных транзисторов, (второй конец - на емкостную среднюю точку питания). Либо использовать готовую микросхему аудиоусилителя, вроде 174УН14 (тысячи их). И не забудьте, перед усилителем - отсекающий постоянный уровень конденсатор.

По индикации:

Как я понял, планируется только 10 индикаторов, в одну строку, с организацией в матрицу 8х80 светодиодов (точек) ?

 

Вывод синхронный, без регулировки яркости (либо с ней, но довольно простой - PWM).

Если хотите использовать вход OE 74HC595 - не забывайте, что это надо делать ТЕМЖЕ таймером, который генерирует прерывание для загрузки очередной строки из видеобуфера. И никак иначе. Чтобы было строго синхронно со сменой сюжета.

 

В качестве драйверов строк будут выходить IRLML2402 (держат ток до 2A), а столбцами управлять будут сами 74HC595 (и ограничительные резисторы на 150 Ом).

Ну IRLML2402, на 800-1200ма, да еще и 1/8-ю времени - в принципе пройдут.

Хотя, падение на нем будет заметным (у него 0.25Ом) и эффект понижения яркости отдельной точки, при включении строки целиком - наблюдаться явно будет будет, что не очень красиво. (0.25Ом при токе в 1А -0.25в, что даст изменение тока около 8-10%, это хорошо заметно, особенно если сюжет динамически меняется).

А вот выходной ток 74HC595 - 6мА на ногу. А вам надо 80-120. УПС... так что "надставляйте" транзисторами. Хотябы биполярными, в режиме повторителя (хотя это и не лучший вариант). Либо на столбцы - 2N7002, в режиме ключа (один из самых дешевых, и доступных полевиков, тут вполне подходит) с резисторами примерно на 30 Ом. Их правда 80 шт надо ... ой, ё-ё.... Но такова жизнь. Если использовать 2N7002, в режиме ключа - то они будут замыкать "к земле", следовательно матрицу придется реорганизовать "катодами к столбцам", а на строки поставить 8 мощных ключей (заметно менее 0.1Ом), P-канальных (ибо придется подключать к +5в) лучше всего сдвоенных в SOIC-8, и управлять ими или напрямую с контроллера, или (для экономии ног) - с дешифратора 74HC138.

Не забывайте, что если точка в столбце горит 1/8-ю времени - то ей и ток надо в 8 раз больше, чем для свечения постоянным током. Правда это не совсем справедливо, дело в том, что глаз субьективно воспринимает короткие вспышки высокой яркости - несколько более яркими, нежели непрерывное свечение с сохранением среднего значения, но тут запас очень небольшой, да и компенсируется он отчасти неленейностью люкс-амперной характеристики светодиода (светодиод 80ма - светится МЕНЕЕ чем в 8 раз ярче, нежели 10ма, ибо КПД на высоких токах падает), так что в первом приближении - следует считать именно так: импульсный ток - в 8 раз больше среднего, необходимого для комфортной яркости.

 

Кстати, второй datasheet от KB, идёт на чуть бОльший индикатор, потому он не совсем подходит. И там рекомендуют уже 30mA средний ток и до 185mA импульсный.... многовато.

Я это приводил просто к тому, что нельзя бесконечно увеличивать скважность. Если даже у такого большого индикатора - максимальный импульсный ток - до 185мА, то у вашего - маленького, да еще и китайского - он еще меньше, и загонять в него стопиццот ампер, пускай даже очень малое время, (не превышая среднего значения) - низзя.

 

Соглашусь. Реализация будет полностью программной, и БЕЗ дополнительного сопроцессора. Как раз индикация будет выполняться с наивысшим приоритетом (за исключением звука), но тот будет отъедать (по прикидкам) не более 1-2us (мкс)

Лично я, в свое время, решал почти аналогичную задачу, и на этом как раз пролетел. Процессор был 80C188XL (86-х совместимая система команд) тактовая - 20Мгц. Индикация - 8шт семисегментных индикаторов (матрицей 8х8 светодиодов). Ну, до кучи, еще прием комманд (эпизодически), по RS232, от управляющего компа, (но для мерцания индикатора хватало и без него). Параллельно вывод аналогового сигнала на ЦАП (это не звук, но требования по частоте квантования, полосе, джиттеру - примерно такиеже), сигнал получался из паттернов записанных в ПЗУ, либо напрямую, либо сложением 2 паттернов, вывод по прерыванию от таймера. Вобщем ничего сложного. Единственное что несколько усложняло задачу - это необходимость плавного масштабирования по частоте выходного сигнала, что осуществалялось плавной перестройкой частоты таймера, генерирующего прерывания для вывода в ЦАП. Это делало практически невозможным строгую синхронизацию с индикацией.

Получалось, что проц вобщемто и не загружен (он дастаточно мощный), но если в момент прихода преывания вывода на индикацию - он находится в обработчике вывода в ЦАП - то прерывание ждет, и предидущий квант индикации - удлинняется (на матрице горит строка которая должна бы уже сменится следующей), а последующий - укорачивается на туже величину. Это приводило к очень заметному мерцанию индикатора, похожему на мерцание не очень исправной люминисцентной лампы. Вроде волн по нему пробегающих. В виду полной несинхронности - характер мерцания затейливым образом менялся при перестройки частоты сигнала, а уж если влезал RS232 - вообще получалась "цветомузыка". Причем время загрузки ЦАП-а - по всем прикидкам тоже составляло менее 1%, от длительности такта индикации. Если разрешить вложенные прерывания, и задать индикации высший преоритет чтобы индикация могла "влезать" посреди перезагрузки ЦАП-а - мерцание почти исчезало, но появлялся заметный "джиттер" в выходном сигнале (что было абсолютно неприемлемо).

Спастись сумели только сделав вывод на индикацию синхронным с выводом в ЦАП, но до кучи, пришлось еще делать обработчик прерывания таким образом, чтобы все ветки всех ветвлений - выполнялись равное время, те чтобы процедура перегрузки ЦАП-а всегда занимала константное время (там счетчики тиков были и выборы из каких патернов брать данные), и после него начиналась процедура вывода на индикацию, тоже со своими счетчиками тиков (ибо не каждый тик надо менять, и еще привязывать к-т пересчета к изменяющейся частоте сигнала), тоже выровненными по времени... Вобщем победили конечно (почти, когда вклинивался RS232 - оно все равно помигивало, правда эпизодически, но на это уже все забили), но на$$$$$$$сь - "по самое не балуйся".

У вас конечно 1-2мкс, - это 0.1-0.2% от кванта индикации, да и чуть снизить частоту развертки можно, и у атмеги - есть приятная особенность - у не все комманды по 2 такта, и вход-выход в прерывание - быстрый. Вобщем думайте сами. Минздрав вас предупредил.

Изменено пользователем dr.Nimnul

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты