Несколько слов о примененном в вышеприведенных постах предобработчике электромеханического энкодера (проект p508enk) алгоритме. В связи с возможными изменениями угловой скорости ротора, замыкающего контактные группы от типовой программной обработки антидребезга с фиксированной длительностью задержки опроса линии датчика решено было отказаться. Вместо этого применен позиционно-привязанный вычисляемый условный переход на ячейку, содержащую вектор перехода на последующий участок программы. Занудно... Может графическая картинка пояснее будет... http://img.radiokot.ru/files/20529/10olmil01x.GIF Сама программа состоит из стартовой точки и двух ветвей согласно возможному направлению перемещения ротора. В каждой из ветвей последовательно обрабатываются несколько позиций таким образом, чтобы в каждой точке обработки из возможных 4-х состояний входных линий корректными являлись только три. Четвертое состояние при нормально работающих контактных группах является логически невозможным (аварийный статус). Таким образом предусматривается возможность движения вала как в прямом , так и в обратном направлении из любой позиции в любой из двух ветвей программы. Причем при многократном "ерзании" от стартового для текущего направления (01 или 10 но не до 11!) в рабочее 00 тактовый импульс генерируется только один раз. Для увеличения быстродействия решено отказаться от применения флагов кроме флажка запрета повторной генерации тактового импульса. Хотя такой подход и породил две независимые ветви для каждого из направлений перемещения вала. Дополнительно используется участок ожидания нейтрально-исходного положения вала (оба контакта пассивны) для обработки в момент подачи питания и в случае обнаружения сбоя контактной группы (с возможным пропуском одного и/или нескольких позиций перемещения вала). Необходимость такого дополнения вызвана результатом макетных испытаний первого варианта программы ( с блокировкой по обнаружении ошибки) — при некоторых «стечениях обстоятельств» пакеты от индуктивного выброса в соединительных проводах в момент коммутации контактов имеют весьма значительную длительность. При дополнении защитного фрагмента сбои исключаются... НО... автоматически могут быть пропущены от одного до нескольких последовательно идущих импульсов положения ротора. В принципе... для «рукояток — крутилок» такой пропуск не есть проблема. На выходе будем наблюдать пульсирующий сигнал направления с присутствующим внутри него счетным импульсом. Ежли чисто теоретически — без учета антидребезга - диаграммы сигналов на выводах предобработчика будут вышлядеть таким образом: http://img.radiokot.ru/files/20529/10olkrmhx0.GIF Наиболее удачным для вышеприведенного алгоритма представляется система команд МК семейства PIC. Однако «с оглядкой» - по причине отсутствия переноса из PCL в PCH (можно правда макросом подправить — но «командов много» будет). В других семействах возможна табличная организация с доступом через DPTR(mcs51) и/или Z(AVR). Одначе... такая «пересадка» требует проверки не только по написанию кода, но и по экономической целесообразности (ежли часть ПО устройства — пригодится, ежли автономный преобразователь — даже тинька 13-я «жирновата» будет...).
И про возможные доработки. Самый оптимум по быстродействию (минимальный код) получается ежли энкодер подключать ко входам GP1:GP0. От сонного режима в данной версии пока решено отказаться - ибо потребуется ставить контроль времени "зависания" в каждом из возможных стационарных состояний. А это уже значительное увеличение размера кода (потеря возможного быстродействия). Касательно 6-лапки PIC10F200 - пока "в планах на проверку" - нет приемлемой раскладки выводов - GP3 работает только на ввод, т.е. или два входа с одним выходом или предобработка позиционного статуса в виде двух команд сдвига при ПЗУ в 256 байт... Можеть и "не влезть"...
Таки в pic10f200 прожка влезла... Правда с некоторым отличием - вместо сигналов направления выведены два тактовых сигнала - отдельно для R и для L приращений. http://img.radiokot.ru/files/20529/10ta62hpig.GIF
собственно макетку для проверки не делал - посикоку вывод сброса в прожке переназначается - а мои железяки потом назад ту "козявку" не возвернут... В то же время интерес вида "а будет ли работать?" в железе привел к соответствующей модификации схемки и прожки для pic12f508 (или для разового баловства pic12c508) http://img.radiokot.ru/files/20529/10taa7cs05.GIF при соответствующей переделке прожки
тут для выбора выходных лапок раздолье. И "оно ж таки работает".
Теперь еще и сигнал системного сброса прилепить можно, ежли данная восьмилапка будет с логикой на "рассыпухе" компоноваться (для древних схемок). Надоть как-нибудь для сравнения на тиньку (хотя бы 13-ю) прожку "пересадить"...
"Векторный" подход из-за громоздкости пришлось заменить на "сравнение с маской + переход при совпадении с продолжением при несовпадении". Кроме прочего из "неудобств" - переход по условию в диапазоне +63/-64 ячейки то текущей команды (вместо "обыденных"+127/-128) - пришлось таки немного поизмываться над взаимным размещением участков программы и поставить пару "удлиннителей" для переходов. Длина прожки чуток поболее, чем у ПИКушки, но по количеству команд почти "на равных": 238 байт у AVR (119 команд) 112 ячеек ПЗУ у PIC (ячейки 12-битные) Быстродействие у АВРки конечно можно весьма выше, чем у ПИКа выставить.
В принципе надо б еще одну модификацию слепить - с выходным набором сигналов из тактового; признак приращения/направления; и строба завершения текущего пакета. Собственно о том стробе - прием тактовых импульсов начинается от первого поступившего, "прикрытого" несколько ранее установленным сигналом направления. При превышении времени "простоя" между соседними тактовыми импульсами более 0,1 секунды должен быть отработан сигнал "окончание текущего пакета". Вот как-то такое мыслится...
Не знаю, в тему будет, аль нет. Бегая по глобальной паутине, в поисках информации про индукционные нагревалки, наткнулся как один радиолюбитель из юэсэй (штат не помню) долго бился с различными неустойчивыми помехами на управлении ключами, в своём 20 кВт-ном агрегате. Проблема решилась после того, как он проволочки идущие до затворов ключей скрутил в витую пару (на каждом ключе по паре). После этого пишет, что всё пошло как по маслу. И много чего, из железа, у себя в гараже переплавил
Ну и про синтезатор частоты. Спасибо огромное за подсказки и объяснения. На макетках поигрался, в пределах 0.5% частоту держит. Единственное не знаю как фильтр НЧ делать между компаратором и транзистором управляющим генерацией.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Связалси с загрузчиком данных для WS2812B... МНДЯааа...
еще тот подарочек... вроде как наброски получились - ушло на тестирование.
Проблема в том, что у мня в наличии той ленты в "физическом виде" нетуть - проработка "дистанционной черепахой" написал-отослал-пришел ответ -отредактировал... и по новой... Пока не получится чегось путнего...
С той лентой на WS2812B судя по инет-ресурсам общаться предпочитают по перепорченному изврату на основе модуля SPI. Только воть... данные перед отсылкой все равно "делить/выворачивать" надо... Предлагается более "универсальный" алгоритм (правда пока только максимум до 85 пикселей в ленте), основанный на условных переходах в АВРкиных МК... Зато... судя по результатам отладки/трассировки в дебаггере весьма стабильно работающий. Вобчемссшшсс... чегось на подобие программной фазовой манипуляции с весьма жесткими требованиями к результату:
Даавненько по проектам не лазил... Малость материал "отлежался" - глянул... НЕ ОЧЕНЬ в отношении читаемости там где исходник "дробленый" на много подключаемых файлов.
Дабы подправить положение решено немножко поменять структуру организации материада в проекте, благо все три используемых компилятора (для mcs51, avr и pic) такую возможность предоставляют. Пока речь идет о вложенных в основной файл текстовых субфайлов, а не о компоновке из полноценных библиотек и/или совместной обработке нескольких *.asm файлов в пределах одного проекта (высшая степень работ на ассемблере). Итак декларация к форме подачи исходников и прочих материалов в проектах, которые далее публиковаться будут:
Навеяно попыткой заменить кусман схемы из viewtopic.php?p=2970048#p2970048 на самопалку на основе МК... Основная часть предварительных размышлений осталась в viewtopic.php?f=2&t=140285 , здесь только конечный результат замысла для тестов желающими. Вобщем... Имитируется генератор ряда частот для одной из семи нот. У того имитатора кодирующие перемычки для выбора соответствующей ноты. Выборка проводится один раз при подаче питания на устройство, обеспечивая тем самым возможность применения однотипной прошивки для ряда генераторов разных нот. Ну и "закладка возможных модификаций функционала"... Насчет прецизионности - вряд-ли более примитив-бытовых требований сможет обеспечить (проверять особо нечем). Основное преимущество - тиражируемость.
Остальное в избытке в самой папке с исходником проекта.
Решил поосмотреться в отношении "расширенной mcs51" - изделий от силабса и STC MCU Limited... Силабсы весьма дорогенькие... Одна бэушная в лапы попалась http://img.radiokot.ru/files/20529/16qsft1o0y.jpg ежли не угробил при монтаже вроде после сборки программатора можно попытать будет...
Одначе вроде есть софт и схемки самодельных программаторов... Вот тут http://www.silabs.org.ua ... МММ... при беглом взгляде на схемки... малость вспомнился СУСАНИН...(или диверсант заменивший цоколевку 6N137)...
Так что пока те исходные схемки " в обработке". Замаячила также вкусность типа STC15F204... НО... пока только в виртуальных планах - по получении "подопытных кролей" будет чего проясняться...
Заглянул сегодня на сайт STM... посмотреть нет ли чего обновленного для IDE... Похоже пошел процесс по МК типа STM8/STM32 аналогичный былому для ПИКов... Как и предполагалось - "когда народ плотно подсядет - воть тогды и затянем петельку!"... Первая "питичка" такого процесса - разработка средств разработки программ передана сторонним фирмам. По данному скрину можно порадоваться будущей "платности" этого продукта (пока еще иногда кое у кого и фри, но обычно это не более пары годков)...
Вроде и раньше так и было. Только Cosmic наоборот стал Free для STM8, надо зарегистрироваться http://cosmicsoftware.com/download_stm8_free.php лицензию любезно присылают, уже пару раз получал.
IAR STM8 до 8Кб тоже пожалуйста на шару. Попереводил практически все поделочные проекты заказчиков с меги8/48 на STM8S003 из-за крайней дешевизны последних - куда там, до 4Кб не добрался. 8Кб для радиогубительских целей "должно хватить каждому(c)". Все что выше 8Кб, это уже серьезно , тут удобнее применять STM32 - там бесплатного хватает выше крыши. Ну и не будем занудами - для дома, для семьи, втихаря под одеялом, коммерческие продукты можем и подлечить. Большинство и виндовс не лицензионную пользует и ничего. На производстве, если оно не нищебродское, можно и прикупить.
Раньше была собственная IDE бесплатно и без регистраций (та же STVD MainFrame Version 3.6.5.2 - Build Feb 25 2013 к примеру). С учетом того, что "сторонние" в любой подходящий момент могут изменить условия и необходимости заново изучать нюансы работы как с компиляторами, так и с самой IDE это уже весьма настораживающий показатель. Насчет размера кода - АВР проигрывает на необходимости операций обращения к памяти и то... как программу составлять...
Добавился отчет об очередном образце "дисплейчика с утилизации" (вариант бэушного от кассовых аппаратов на NJU6432). viewtopic.php?p=3018553#p3018553 Имеются особенности в соответствии бит ОЗУ сегментам дисплея... В коллекции пригодятся.
В принципе как обработчик данных от ПК можно и АВРку с блоком ОЗУ/ПЗУ поставить. Но вот с непосредственным исполнением загруженного фрагмента преимущество за 51-й. А поскольку внешняя периферия изначально "лишь определена как некое...", то и прикладные прожки в резидентном ПЗУ будут иметь вид биос/бутлоадера...
Вобщемсс... пока собрать базовы платки надо... а заодно и плановы задачки готовить...
Для "стыковки" с ПК предполагается использовать gwbasic, который вместе с документацией и прочим скачивается отсюда: http://www.gw-basic.com/downloads.html
http://img.radiokot.ru/files/20529/17kian8crd.jpg разводка платки с ОЗУ сделана для совмещения с установкой ПЗУ с прошивками без изменения позиций данных/адресов (самая неоптимальная). До первичного тестирования остались следующие гложущие вопросы: 1. разъёмное соединение ВПП/ВПД с процессором (в отношении долговременной надежности); 2. необходимость установки блоков подтягивающих резисторов на Р0 и Р2 (для случая с подключением ULN2803 обязательны); 3. будет ли ВПД стабильно работать при частоте тактирования в 12МГц (реальный кварц в 11,0592 тоже "не подарочек"); Ответы на это должен дать тест на сборке из следующих кубиков: http://img.radiokot.ru/files/20529/17kigllxlm.GIF Удаляюсь для сочинительства прожек теста...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения