Базовая платформа порта-расширителя ПК для любительских применений. Основано на микроконтроллере AT89S52 и аналогичных с режимом работы с совмещенной внешней памятью программ/данных. Собственно начальный проект был тут: https://radiokot.ru/forum/viewtopic.php ... 7#p3167597 далее в данной теме (в отличии от "винной") обсуждение исключительно вышеуказанного проекта.
Изменены базовые программы в связи с обнаруженной некорректностью в файле reboot_key.txt : строка 86 ныне имеет добавленную команду CLR A (для абсолютной страховки) в связи с чем изменились и вектора в dfn_u51b4.txt (проект U52A работа с размещением биос в РПП/программа пользователя в ВПП/ВПД) строки
Код:
13 ld_ptxdi equ 0x047D ; адрес размещения метки proc_txd_init биос 14 ld_ptxd equ 0x0482 ; адрес размещения метки proc_txd биос
собственно полный архив проектов с внесенными изменениями (включая и прикладной проект теста дисплея на HT1621 - папка HT1621b - (но в HT1621b еще не правленые библиотеки!)): https://yadi.sk/d/yPAi9Inl3a9PR4
Следующим добавлением планируется программатор для АТ89С2051/АТ89С4051. Этох МК подзавалялось... А параллельный программатор или под 98ю винь (перезапускать комп ВЛООМ) или опять же под старую железяку с прямым доступом к LPT, которую подстраивать муторнее, чем заново соорудить. ЗАодно и с комплектом из нескольких МК тренировка будет.
не факт, что раскладка выводов у тиньки будет таковой в финале... Пока надо отработать печатну платку "на дырчатом шаблоне"...
Набросок "соглашений по интерфейсным сигналам" для той приставки (тоже пока первичный замысел - в дальнейшем возможны изменения): Спойлер
Код:
Общие соглашения проекта upgm.
Программатор на основе базового КОТУИНКО (проект PGX051) и блока поддержки на основе ATTiny2313 (проект PAVR).
Основная оболочка и накопитель размещаются в блока КОТУИНО. Прикладной расширитель интерфейса на основе ATTiny2313 выполняет функции аппаратного устройства, управляющего процессом прошивки прикладного МК типа АТ89С2051 или АТ89С4051. Алгоритм интерактивного управления/загрузки intel hex8 файла во временный накопитель и обработки управления процессом выполняет КОТУИНО совместно с программой TERMINAL и набором командных файл-заготовок (папка com_string) размещенных в ПК. Физическое управление линиями программатора и источниками напряжений процесса прошивки выполняет плата-расширитель на основе ATTiny2313.
Приняты следующие соглашения по наименованию линий интерфейса:
key_z линия управления напряжением на выводе rst зиф-панельки режим вывод с внешним подтягивающим резистором. активный уровень = 0 исходное состояние = 1 (reset 2313) состояние простоя = 1 (cold_init 2313) при активном уровне на выводе rst зиф-панельки формируется 0 размещение - PAVR
/key_h линия управления напряжением на выводе rst зиф-панельки режим вывод с внешним подтягивающим резистором. активный уровень = 1 исходное состояние = 1 (reset 2313) состояние простоя = 1 (cold_init 2313) при активном уровне на выводе rst зиф-панельки формируется 1 от подачи обратного напряжения защищено диодом шоттки. размещение - PAVR/ Линия key_h Исключена в связи с изменением в схемотехнике формирователя напряжений для вывода RESET зиф-панельки
key_u линия управления напряжением на выводе rst зиф-панельки режим вывод с внешним подтягивающим резистором. активный уровень = 0 исходное состояние = 1 (reset 2313) состояние простоя = 1 (cold_init 2313) при активном уровне на выводе rst зиф-панельки формируется +12V размещение - PAVR
Одновременная активация выводов key_z, key_h и key_u ЗАПРЕЩЕНА - возможно поражение ключей формирователей управляющих напряжений на выводе rst зиф-панельки. При подаче питания (reset 2313) активна только линия key_h, обеспечивающая сстояние сброса для АТ89Сх051 в зиф-панельке. Допустимые Рабочие комбинации:
bus_0 - bus_7 двунаправленная шина данных зиф-панельки. режим определяется в соответствии с режимом работы программатора выводы обеспечены внешними подтягивающими резисторами к +5вольт исходное состояние - вход с Z состоянием (reset 2313). размещение - PAVR
Линии дополнительного функционала
pgm_line линия генерации импульса /PROG (---__---) зиф-панельки режим вывод (с внешним подтягивающим резистором) активный уровень = 0 исходное состояние = 1 (reset 2313) состояние простоя = 1 (cold_init 2313) при активном уровне на выводе /PROG зиф-панельки формируется ---__--- необходимой длительности размещение - PAVR
ptr_clc линия генерации тактового импульса XTAL1 (___-___) зиф-панельки режим вывод (с внешним подтягивающим резистором) активный уровень = 1 исходное состояние = 1 (reset 2313) состояние простоя = 0 (cold_init 2313) при активном уровне на выводе XTAL1 зиф-панельки формируется ___-___ тактовый импульс для приращения внутреннего счетчика АТ89Сх051 необходимой длительности размещение - PAVR
rdy_bsy линия контроля квитирования RDY/BSY зиф-панельки режим ввод с Z состоянием (с внешним подтягивающим резистором) исходное состояние = Z (reset 2313) активный уровень = 0 (определяется статусом целевого МК) размещение - PAVR
Интерфейсные линии связи. Одноименные и одинаковые по функционалу для обеих модулей - PAVR и PGX051. Эти линии обеспечивают синхронный последовательный обмен между модулем КОТУИНО(PGX051) и PAVR. Применяеится передача двух байт младшими битами вперед.
bus_dtr двунаправленная шина данных исходный стстус по системному сбросу и в режиме простоя режим вход с Z состоянием с внешним подтягивающим резистором при работе на передачу режим выход с исходным состоянием = 1 текущее состояние определяется передаваемыми данными в прямом коде данные передаются/принимаются младшими битами вперед размещение - PAVR и PGX051
bus_clc двунаправленная шина синхронизирующих тактовых импульсов исходный стстус по системному сбросу и в режиме простоя режим вход с Z состоянием с внешним подтягивающим резистором при работе на передачу режим выход с исходным состоянием = 1 активный уровень импульса строба = 0 импульс генерирует устройство, ведущее передачу данных. размещение - PAVR и PGX051
bus_qt двунаправленная шина квитирования статуса обмена исходный стстус по системному сбросу и в режиме простоя режим вход с Z состоянием с внешним подтягивающим резистором при работе на передачу режим вход с Z состоянием с внешним подтягивающим резистором наличие состояния 0 по завершении передачи пакета соответствует статусу "устройство занято" повтор передачи возможен по истечении 50uS после появления bus_qt = 1
при работе на прием сразу по получению старт статуса на bus_drt вывод переводится в режим выход с исходным состоянием = 1 после завершения операций подготовки к приему пакета на bus_qt выводится 0 и сохраняется там до завершения обработки принятого пакета и действий с данным пакетом связанных. Затем вывод переводится в режим вход с Z состоянием с внешним подтягивающим резистором и устройство по истечении 100uS защитного интервала либо принимает следующий пакет, либо само инициирует передачу пакета.
размещение - PAVR и PGX051
Пакет предваряется старт - состоянием на линии данных. По обнаружении данного состояния (bus_dtr=0) приемник инициализирует соответствующую программу, выдает bus_qt=0 и переходит в режим программного опроса bus_clc. Запись текущего бита производится по заднему фронту импульса на bus_clc.
По завершении обработки принятых данных приемник переводит bus_qt в режим ввода. Автоматически за счет пвнешней подтяжки обеспечивается статус bus_qt=1. Если Приемник должен провести ответную передачу то дополнительно должна быть выполнена задержка 50-100uS.
Линии управления режимом программирования
combus_3 (P3.3 in AT89Cx051) /combus_4 (P3.4 in AT89Cx051)/ - передано в обращение PAVR combus_5 (P3.5 in AT89Cx051) combus_7 (P3.7 in AT89Cx051) режим вывод с подтягивающим резистором статус по системному сбросу 1:1:1:1 в процессе cold_init (PGX051) должно быть установлено 0:0:0:0 (чтение сигнатуры) размещение - PGX051
Линия управления режимом программирования
combus_4 (P3.4 in AT89Cx051) режим вывод с подтягивающим резистором статус по системному сбросу 1 в процессе cold_init (PAVR) должно быть установлено 0 (чтение сигнатуры/чтение данных) размещение - PAVR
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
У меня старые модели даавно пылятся. Только воть легче порой чего поновее соорудить, тем более с такой удобственной интерфейсной "прокладкой" между ПК и прикладушкой.
Да и некоторым "начинающим котяткам" образец подхода к созданию самоделки - под... уже простотой примитива "вот создал я суперустройство..." с последующим "а вот... не работает!!!... ПОМОГИТЕ!!!...". Это вроде как обучалка будет. Посему для матерых кошаков покажется чересчур избыточно (в большинстве случаев промежуточные этапы упускают).
Немножко добавок/ретуши "после взгляда под утро" по схеме
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
_________________ ZМудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Ежли исключительно конкретика потребителя - китаезы временно вопрос снимают. Но... только о конкретной модли целевого микроконтроллера (у меня также и ранняя версия и полноценный покупной программатор имеется).
Однако в данном случае гораздо более интересная разработка. КОТУНО в ранее уже сделанном варианте биос является интрактивным загрузчиком файла стандарта intel hex 8 программы (или дампа некоторых данных для перемещения и\или использоания предварительо загруженным интерпретатором). Причем объём кода до 64 килобайт (обработка текстового формата файла "на лету"). Дальнейшее взаимодействие загруженного кода и биос также многовариантно... А что уже та прожка деать будет - зависит от прицепленного к базовому модулю железка и потребностей пользователя в каждом конкретном случае. При том, что как транзитная оболочка в ПК используется свободно-бесплатная прогрмма-термиал СОМ порта (хоть "стандартного" хоть USB-COM). На данный момент отработка одного из вариантов взаимодействия порта расширителей и прикладной аппаратной платформы, в которой также используется МК другого семейства в качестве "периферии с мозгами" - прототип мультимикроконтроллерной самоделки с "использованием простейших МК ПО ИСТИННОМУ ПРДНАЗНАЧЕНИЮ" : если нет того, что требуется - его надо создать из имеющихся в налчии "универсальных кубиков"
ШКЕЛЕТ-заготовка двух проектиков для совместной работы. https://yadi.sk/d/Fwj1voNj3amEL3 Для АВРки пока только набросок - там еще определяться с генератором тайм-сетки/или интервалов/...
Попался на дефекте старой-доброй тиньки... Долго верой и правдой служила... Выводы порта А обычно редко использую... Или как выходные линии... А тут попался нюёнс - как выход работоспособна, а как вход - "в обрыве"(пересылка "всегда нуля", независимо от того, что на входной лапке делается)... Жаль мелкосхемку - пойдет в какое иное изделие с "инвалидностью" по PORTA.0...
Протокол обмена между модулями построен по старому примитиву "побитового квитирования" - неплохой чисто программный вариант для МК без спецблоков и при значительных разностях частот системных генераторов соединяемых устройств. Дальше уже проработка прикладных частей. Прикладные проекты промежуточного теста с основными концептуальными положениями:
собственно то тест отработки командного файла для ПК и протокола обмена - засылка байта в блок прожига и возврат принятого назад (пересылка кода 0х41 символа А).
Порядок действий: Запускаем в ПК терминал включаем блок с подключенным адаптером-расширителем ожидаем завершения тестов биос и запроса на нажатие кнопки синхронизации жмем красну кнопу и ждем приглашения на загрузку базовой программы в окне терминала выбираем send file и указываем pgx.hex по завершении загрузки система входит в интерактивный режим приема командных файлов... Далее работа в самосинхронизирующемся режиме (без усяких дополнительных кноп - только по подсказкам на экране терминала). Пока выбор невелик - из вышеуказанного. Продолжение по мере настроения/вдохновения.
Костяк и основные принципы построения с полными исходниками - в основном архиве на яндекс-диске.
УФФ... первый рабочий тест таки испекся. ПРОТОТИП ПРОГРАММАТОРА для АТ89С2051/4051 Не слишком оптимально и требует редакции - НО ВПОЛНЕ РАБОТОСПОСОБЕН. управление с помощью загрузки командных хекс файликов (так проще тест и проверку организовать). Принцип. Открываем папочку hex files первично (из командного режима бутлоадера) сначала загружаем сам программатор (pgx.hex) затем применяем следующие файл-команды:
Код:
at2051.hex - загрузка максимального значения адреса ПЗУ для AT89C2051 at4051.hex - загрузка максимального значения адреса ПЗУ для AT89C4051 bbinfo.hex - возвращает строчку-идентификатор блока расширения (Px051v0 на данный момент) chenge_mc.hex - приводит линии панельки в соответствии с режимом установки/снятия МК chip_erase.hex - выполняется "общее стирание" МК purity.hex - выполняет проверку на "чистоту" - возвращает или только значение (шестнадцатеричное для простоты) счетчика ошибок (в норме 0x0000) или значение счетчика ошибок (ненулевое), адрес первой встреченной ошибки и считанный байт данных этой ячейки rd_dump.hex - выполняет чтение ПЗУ МК в "верхнюю страницу" ОЗУ накопителя (позже будет использовано, пока просто читает) blank.hex - заполняет нижнюю страницу накопителя ОЗУ кодом 0xFF (подготовка к загрузке целевого файла) rd_sign.hex - читает и возвращает для просмотра первые два байта сигнатуры МК wr_lb1.hex - запись бита защиты LB1 wr_lb2.hex - запись бита защиты LB2 wrv_data.hex - запись и верификация массива из нижней страницы ОЗУ накопителя в МК - возвращает или только значение (шестнадцатеричное для простоты)счетчика ошибок (в норме 0x0000) или значение счетчика ошибок (ненулевое), адрес первой встреченной ошибки и считанный байт данных этой ячейки
Служебные команды, используемые для настройки/проверки источников питания вывода RESET upg_on.hex - включить источник +12 вольт upg_of.hex - отключить источник +12 вольт z_on.hex - включить закорачивающий ключ z_of.hex - отключить закорачивающий ключ
ts_rom.hex - тест проверки корректности размещения байт в ПЗУ (с помощью заведомо исправного промышленного программатора)
Следует учесть, что ряд команд (purity.hex, rd_dump.hex, wrv_data.hex) не будут исполняться до тех пор (завершение с просьбой загрузки предельной границы массива данных), пока не будет загружено значение максимального адреса массива (at2051.hex или at4051.hex) Команда chenge_mc.hex помимо прочего сбрасывает значение максимального адреса массива (по флагам). Загрузка целевого файла производится также как и загрузка командного - система автоматически разместит данные из целевого файла по соответствующим адресам нижней страницы ОЗУ накопителя. Поскольку применен алгоритм обхода при прошивке тех ячеек, значение которых равно 0xFF рекомендуется перед загрузкой целевого файла выполнить команду blank.hex. Вот вкратце/сумбурно пока все. Ссылка на полный архив исходников: https://yadi.sk/d/apC6cV-h0hvObw (старые удалены как потерявшие актуальность). Папка PAVR относится к собственно приставке (МК ATTiny2313) Папка PGX051 - проект подгружаемой в КОТУИНКО программы для работы всего комплекта в режиме программатора AT89C2051/4051 Папка kotuino_b2b - собственно основа проекта КОТУИНО (биос b52b). Папка comand_files_pgx051 содержит исходники командныхфайлов и сами командные файлы. При изменениях в PGX необходимо проверять и командные файлы - их базовые параметры для упрощения привязаны к значениям, считываемым из листинга pgx.lst после чистовой компиляции.
Внешне вроде без изменений. Я рассчитывал на измененный оффлайн хелп - аналогично тому, что на сайте сделано - УВЫ... А вот платформы (данные о платах) обновлены. Хотя для рядового пользователя - в том особо нужды нету.
Поглядю как в работе будет... Вроде при "все сообщения" начальная красна строчка кудысь задевалась... или чего еще обнаружится - надо пробовать...
ПРЕДУПРЕЖДЕНИЕ!
После переустановки ARDUINO IDE с 1.8.5 на 1.8.7 из рабочих папок проектов, ранее использовавшихся в работе с и IDE, исчезли все файлы *.ino (была отдельная папочка в пределах которой те проекты размещались, на них собственно "прописи" в той IDE видимо были выставлены... )
Файлы самодельных и ранее подключенных библиотек в папке C:\Documents and Settings\User\Мои документы\Arduino\libraries изменений не имеют. "Пропажа" также не коснулась папок-дубликатов, размещенных в резервных каталогах.
На всякий случай перед переустановкой IDE рекомендую скопировать проекты на внешний носитель и/или в любую папку, ранее не использовавшуюся в работе с IDE.
Наконец-то появилось чего-то путнего (на первый взгляд) для злосчастных STM32... https://radiokot.ru/forum/viewtopic.php ... 1#p3471521 "... 5. "Новая доступная среда разработки для микроконтроллеров STM32" Новые версии интегрированной среды разработки TrueStudio будут переориентированы исключительно на STM32 и станут бесплатными. Какое место они займут в формирующейся экосистеме STM? Подробнее в статье ..." Надо попристальнее глянуть...
Атоллик ставится и на ХР без проблем... А вот STM32cubeMX требуеть java 1.7.45... А на моих "старушках" только 1.7.21 ставить можно... Интересно, была ли та cube под младшие версии java (win_xp32)? И ежли была - где б неспешно стырить...
Он тоже на жабе. Если система WinXP, вероятно комп не этого кода выпуска и возможно на нем лучше будет работать что-то типа EmBitz. Среда не требует Java, имеет системные требования ниже чем у Атоллик и работает быстрее. На XP запускается. А что касается Куба, если хотите использовать библиотеки, то лучше SPL если она есть под требуемый МК. А вообще просто посмотрите это. Там рассматривается как Куб (HAL и LL), так и SPL и программирование без библиотек. Еще про отладку прочитать можете.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 33
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения