Что-то я тут подумал (а толковой обучалки для начинающих по DC-DC степ даун я не нашел) и пришел к выводу.
Как же МК будет контролировать выходное напряжение? Если он и запустит трансформатор через ключи и все будет работать, то проверить он сможет это только с АЦП, однако, если он не сможет изменять частоту на выходе.. Только отключать или включать с пробелами... Не знаю чего это за конструкция такая...
Кто же стабилизировать напряжение будет на уровне 5 Вольт. А лучше даже 4,5 где-то.
Добавлено after 1 minute 44 seconds: В программах у дяди Володи (Старичок) указаны марки колец, в которых еще надо ориентироваться. А откуда я знаю, какое кольцо я вытащил из блока питания, который был под рукой?
Добавлено after 1 minute 44 seconds: Да и программы его рассчитаны на уже подготовленных строителей импульсных блоков питания. Которые знают все нюансы типа Дед тайм, Дюти цикл, Плотность тока и т.д. и т.п.
Добавлено after 7 minutes 7 seconds: Кстати, программки клевые. Вот только бы описали вот те определения. Вроде про плотность тока нашел. Но про циклы и таймы не понимаю. И про типы колец тоже.
Заголовок сообщения: Re: Светодиоды c пиксельной адресацией WS2812B
Добавлено: Чт окт 27, 2016 17:18:57
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
А я бы попробовал заряжать кондер viewtopic.php?p=2900136#p2900136 и потом стабилизировать обычным транзистором. Наверняка будет шум по питанию, но Вам же не звуковой усилитель или какой-то аналоговый измеритель запитывать.
Добавлено after 1 hour 11 minutes 45 seconds: Наваял нечто в протеусе. Вроде что-то похоже. На коллекторе транзистора можно контролировать напряжение и изменять ШИМ. Возможно в динамике и реале ничего хорошего и не выйдет, а может чего и получится.
Заинтересовал меня метод с ШИМ и если считывать на ТИНИ2313 встроенным компаратором напряжение, то можно его и регулировать этим же ШИМ. Вроде остальные микросхемы в блоках питания подобным образом и работают, как я умудрился в них разобраться.
Т.е. Задаем частоту где-то 100 кГц. На выходе два полевика, трансформатор на кольце, выходная обмотка контролируется компаратором через какой-нибудь делитель. Внутри контроллера ШИМ меняется, что заставляет убавлять или прибавлять выходное напряжение. Обмотки же надо посчитать и колечко подобрать. Все это делать в фоне.
Вывод на светодиоды делает этот же МК. Токма посчитать надо все наложения прерывания (запрещенные прерывания) и т.д.
Добавлено after 1 hour 20 minutes 20 seconds: Кстати, туплю и не могу найти. В программах у Старичка (Владимира) есть расчет для гантелек? Не для торов или Ш образных, а для гантелек?
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Двухтактник тем и хорош, что преобразует напряжение в зависимости от коэффициента трансформации. Напряжение питания WS2812B может быть в пределах 3,5...5,3V, а аккумулятор суперкара КАМАЗ 21...25V. При коэффициенте 5:1 напряжение на выходе будет 4,2...5V. Минус падение на 1 диоде Шоттки 0,5V даёт 3,7...4,5V. Нужна стабилизация?
СКАЗОЧНИК писал(а):
Вывод на светодиоды делает этот же МК. Токма посчитать надо все наложения прерывания (запрещенные прерывания) и т.д.
Проще подключить аппаратный модуль генерации двухтактного ШИМ и обойтись без прерываний. Иначе, головная боль от непредсказуемых результатов.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Я бы все равно сделал стабилизацию... На встроенном компараторе. А вдруг генератор там в разбег пойдет или еще чего случится. Про питание светодиодов читал, тем и хороши, что диапазон довольно большой. И даже указал, что можно не 5 Вольт сделать, а 4,5-4,8, чтобы не приближаться к крайним значениям. А ШИМ конечно, аппаратный. Другой и не смотрю.
У меня тормоз возник именно в расчете трансформатора. Ибо подходящих колец дома я не могу найти. Измерить марку феррита (ну это еще ладно) не могу, нету чем индуктивность измерять. Есть одинаковые ферритовые гантельки, довольно крупные, а у В.Денисенко нету в программах расчета под них. Я уже начитался про Пуш-Пулы. Понял что такое дэд тайм и что такое дъюти цикл. ))))) Короче, все уперлось в расчет трансформатора.
Здравствуйте! Тоже купил такие диоды. Стал включать, обнаружил что жутко геморный в плане реализации на МК протокол при всей его простоте... Да еще и SPI и UART у меня заняты под другие нужды. "В лоб" дергать ножкой тоже нельзя - подвешу проц на целых 3 мс (на 100 диодов) даже без возможности обработать прерывание. А модуль I2C можно использовать для этих целей?
Вообще, надо считать и определять на сколько часто надо выводить информацию на эти светодиоды. Если достаточно вывести один раз, а потом можно достаточно долгое время не менять ее, то можно сделать процедуру вывода тупой с отключений внешних прерываний. А после вывода уже обрабатывать все остальное, пока светодиоды сами себе светят до следующей посылки. А если сильно часто надо менять цвета, то нагружать МК еще всякими вещами уже чревато. Ну или брать что-то типа СТМ32 с большей частотой и ДМА. Там можно все проще.
В том то и проблема, что надо часто. Пытаюсь сделать ЦМУ. Диодов штук 100. Соответственно, обновлять лучше не реже 30 раз/с.
СКАЗОЧНИК писал(а):
можно сделать процедуру вывода тупой с отключений внешних прерываний.
Все бы хорошо, но если в устройстве используются такие асинхронные вещи, как например, прием команд от ПДУ или по UART, то можно поиметь много проблем.
СКАЗОЧНИК писал(а):
Ну или брать что-то типа СТМ32 с большей частотой и ДМА.
Я его и взял какраз Но большая частота не поможет при реализации "в лоб" программным путем, т. к. нет гарантии, что прерывание впишется между фронтами 1 импульса. При программной реализации прерывания придется запрещать однозначно. Интересный алгоритм нашел здесь: https://geektimes.ru/post/255548/ и библиотеку по нему: https://github.com/Silencer2K/stm32f10x-ws2812b-lib Успользуется ШИМ таймера+ПДП. Но у него есть очень существенный недостаток - немеряно жрет ОЗУ. На 1 диод расходуется 48 байт ОЗУ. Хотя на мой взгляд можно было бы сократить до 24 байт на диод, все равно неприемлемо много. Для тех, кто делает цветомузыку на Пентиуме - может и ничего, а вот при выборе МК согласно решаемой задаче такой алгоритм не подойдет. В общем, после долгих и мучительных рассуждений пришел к выводу, что все же лучше делать на SPI+ПДП. Избыточность при этом получается всего 3-хкратная, а если буфер сделать не на все диоды, то можно сэкономить много памяти. На и I2C не выйдет, т. к. разрывы будут и скорость мала. UART ну никак осовбодить не могу, а он всего дин у выбранного МК. SPI тоже вроде как занят, но я на него хотел цифровой переменный резистор вешать, можно наверное для него программный SPI написать или же поискать другой резистор.
Интересный алгоритм нашел здесь: https://geektimes.ru/post/255548/ и библиотеку по нему: https://github.com/Silencer2K/stm32f10x-ws2812b-lib Успользуется ШИМ таймера+ПДП. Но у него есть очень существенный недостаток - немеряно жрет ОЗУ. На 1 диод расходуется 48 байт ОЗУ. Хотя на мой взгляд можно было бы сократить до 24 байт на диод, все равно неприемлемо много.
Эмулятор спектрума на F4 помимо эмуляции самого z80, музыкального сопроцессора и т.д., примерно раз в 1us в прерывании подготавливает для DMA буфер для индикатора. По одному адресу берется битовая маска для 8 точек, по другому адресу хранится атрибут цвета, нужно их скомбинировать и получить на выходе восемь 16-ти битных значений. Иногда используют просто огромную таблицу для всех возможных вариантов цветов, а рассчитывают только адрес, но я видел и реализации где тупо в цикле считают цвета для каждой точки и складывают в буфер DMA. У тебя не F4, но и времени нужно целых 30us на светодиод, потому точно так же можно обойтись одним или двумя буферами по 48 байт. Изначально все хранишь в наиболее компактной форме, перед выводов преобразуешь в подходящую для передачи по DMA.
ЦМУ или еще чего... Подход попроще - есть светодиодный (максимум мультиплекс по каждому из цветов для снижения суммарного энергопотребления) дисплей на который с определенной периодичностью выдается картинка из буфера вывода. Гнать ту картинку чаще, чем воспринимает инерционность зрения смысла совершенно нету (будет сливаться в "кашу"). Вот из того и исходим. Тем более в данном случае "пиксели экрана с памятью".
Я хочу сделать двойной буфер некоторого размера, который передается модулем SPI, а 2-я половина заполняется. По половинному ПДП передается 2-я половина, 1-я заполняется и т. д. При этом в буфере данные представлены в виде "3 такта SPI на 1 бит WS2812", что полностью соответствует даташиту на 2812 по таймингам. Главное как тактовую частоту выбрать... А избыточность равна всего 3-м. Разбиение по 3 и заполнение по идее можно сделать довольно быстрым. И пока половина буфера выплевывается в SPI должно еще остаться время чтоб успеть принять команду от ПДУ или байт по УАРТ без потерянных пакетов и переполнений.
BOB51 писал(а):
Гнать ту картинку чаще, чем воспринимает инерционность зрения смысла совершенно нету (будет сливаться в "кашу").
Ну так 30 кадров/с - разве часто? Не случайно же это считается стандартным периодом для кино и т. п. Реже нельзя - динамичность потеряю и цвет будет меняться рывками.
У меня расчет обновлений на 0,016/секунду - частота обновлений ~62Гц - и то простая программная реализация вполне культурненько и с комфортом на "стандартной" АВРке при частоте тактового генератора в 16МГц работаеть...
Последний раз редактировалось BOB51 Пн ноя 14, 2016 13:33:25, всего редактировалось 1 раз.
Заголовок сообщения: Re: Светодиоды c пиксельной адресацией WS2812B
Добавлено: Пн ноя 14, 2016 13:32:39
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
Не знаю что у Вас за STM32. Но наверняка из всей мощи периферии можно что-то придумать замутить.
Кроме того, прерывания могут быть вложенными. Используйте, например SysTick, у него прерывание по умолчанию почти самый верхний приоритет и кажется понизить не удастся. В прерывании дернули ногой и вернулись обратно в уарты и пр. Опять же в STM есть специальные масочные регистры для порта, в которых можно установить или сбросить отдельные порты, не используя операций чтения текущего состояния порта и логических И или ИЛИ.
По-моему проблема надумана, хотя конечно Вам виднее.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
простая программная реализация вполне культурненько и с комфортом на "стандартной" АВРке при частоте тактового генератора в 16МГц работаеть
А пульт есть?
Z_h_e, насколько я понял, у СТМ32 вход в прерывание и выход из него занимают по 12 тактов, т. е. 24 такта на пустое прерывание. МК у меня STM32F030. Значит при 48 МГц такт равен 20,83 нс. Пустое прерывание займет 500 нс, даже ножкой дернуть некогда. А длительность импульса высокого уровня для нуля у 2812 равна 400+/-150 нс. Т. е. при программной реализации во время передачи я больше ничего другого впринципе не успею. И тут уже безразницы - пустые циклы наматывать или прерывание задействовать - прерывание не может быть длинее пустого прерывания, т. к. если оно возникнет во время передачи, даже если во время пустого цикла, тайминги неизбежно собьются.
Теперь про пульт. 100 диодов передаются 3 мс. Длительность импульса протокола NEC - 0,56 мс...
А, ну так тогда у Вас и задача значительно проще! А мне нужен пульт. Да, забыл сказать, т. к. весь пакет от пульта длится около 110 мс, то я неизбежно теряю несколько бит из этого пакета и таким образом прием правильной команды невозможен вообще, даже при повторной передаче.
Заголовок сообщения: Re: Светодиоды c пиксельной адресацией WS2812B
Добавлено: Пн ноя 14, 2016 14:12:34
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
Подзабыл я STM, получается не катит по прерыванию. Можно сделать отдельный видеопроцессор на каком-нибудь МК. Передавать ему изображение, а он пускай заморачивается с выводом картинки. А передавать можно 256 битный цвет, мне кажется не нужно 24 бита цвета на пикель. Кроме того передавать можно не весь экран, а только участки где есть изменения, если это конечно допустимо.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Интересный алгоритм нашел здесь: https://geektimes.ru/post/255548/ Используется ШИМ таймера+ПДП. Но у него есть очень существенный недостаток - немеряно жрет ОЗУ. На 1 диод расходуется 48 байт ОЗУ
А в чём проблема? Берём STM32F103C8T6 за менее 2$. 100*48=4.8К из 20К ОЗУ. много жрёт только ПДП буфер остаётся ещё куча памяти. сами массивы с пикселями занимают 4байта на пиксель. Прерываниям USART и SPI абсолютно не мешает так как полностью работает в фоне аппаратно
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения