Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: Котуинко

Сб июл 31, 2021 20:14:03

Начиналось вот с этого:
https://radiokot.ru/forum/viewtopic.php ... 1#p3435971
В кратце...
Базовая платка на основе MCS51 (AT89S52) с совмещенной внешней памятью программ/данных на 64 килобайта (на основе ОЗУ).
AT89S52 в режиме микропроцессора.
Основное программное обеспечение на сегодняшний день написано под ассемблером (компилятор от Атмел c51asm.exe версии1.2).
Базовая платформа имеет 8+3 линий программно определяемого пользователем ввода - вывода (текущая конфигурация) и оснащена бутлоадером, позволяющим загрузить из персонального компьютера файл формата intel hex8 (созданный под любым компилятором) и/или передать управление загруженной программе или использовать бутлоадер для подгрузки файла подкачки (забыл как такое по-мудреному называется).
Для связи с ПК используется СОМ порт (или мост USB-COM) исключительно по сигналам RxD и TxD.
Протоколов "притормаживания" не требуется (расплата довольно низкая скорость UART).
Для обеспечения работы с котуинко в ПК используется свободно-бесплатная программа "терминал".
Основное назначение - расширитель портов ввода-вывода ПК (замена прямого доступа к LPT к примеру)
Частные проекты (уже реализованные) - программаторы для AT89C2051/4051, AT89S51/S52 и ныне лениво шкарябаемый для AT89C51 и прочих 40-лапых...
В проекте используются МК семейств AVR и PIC10/12/16 (ассемблер соответствующих семейств) а также платформы ардуино (Си/С++ в рамках референса IDE) в качестве вспомогательных периферийных устройств и/или "интеллектуальных расширителей".
8)

Пы.Сы.
Адаптации платформы аналогично иным продуктам ардуиноIDE нету в связи с моими ограниченными возможностями.
("нельзя объять необъятное")
Примером подобного для MCS51 можно считать
https://z-uno.z-wave.me
(там в основе ядро MCS51, но несколько с иной периферией).
Ежли кому интересно будет - могут присоединяться к текущему проекту со своими дополнениями...
Однако как и основной проект - на бесплатной основе...
:beer:

Re: Котуинко

Сб июл 31, 2021 20:33:58

А я грешным делом уже подумал о нарушении правил форума.:)
1.4 Название создаваемой темы должно быть чётким, понятным и отражать её сущность.
:beer:

Re: Котуинко

Сб июл 31, 2021 21:09:01

Ну в самом начале была таки "винная"
https://radiokot.ru/forum/viewtopic.php?f=62&t=94201
Насчет "сущности" - стоит иногда предварительно почитать то, что в теме опубликовано.
8)

Re: Котуинко

Пт авг 06, 2021 19:06:44

Вычуханная версия прошивки АТ89S51 (устанавливаемого на плате FB4012)
fb4012.zip
(154.36 KiB) Скачиваний: 218

в fbc_util_1.txt исправлены операции инверсии портов и выполнена подгонка под библиотеку bspi_m.txt
применена модифицированная библиотека протокола побитово-синхронного протокола передачи данных (BSPI) bspi_m.txt
:write:
Версия тестировщика для самой базовой котуинки (пока в стадии "ленивого написания") для работы в комплекте
mb4012.zip
(143.31 KiB) Скачиваний: 199

Заложена интерактивная менюшка для ввода односимвольных команд из терминала.
Ввод делается в нижней строчке в ответ на запрос в окошке.
Решил, что удобнее будет использовать только циферки 0=возврат/выход в старшее меню, а 1-9 для исполнения (по контексту)
команда - один символ, без дополнительных "скрытых" (см.пример на скрине).
В принципе "заготовка" вполне себе работает, хотя и не является полноценным консольно-экранным приложением.
Далее уже вопрос по собственно целевой программке - программатору для АТ89С51/52 прорабатываться будет.
Ну и чего там на "жгучей платке" еще соорудить можно будет... Тот же фузе доктор или еще чего...
:roll:
запуск котуинки
сначала проходят внутренние тесты, затем сообщение о версии бутлоадера и вывод приглашения к загрузке файла программки
https://img.radiokot.ru/files/20529/2l6kokeg2k.png
В ответ жмем кнопу SendFile в окошке Transmit и в выпадающем окне выбираем требуемый файл (в данном случае mb.hex)
Далее запускается процесс загрузки с эхом в окне терминала:
https://img.radiokot.ru/files/20529/2l6ktiutlr.png
завершается процесс загрузки следующим окном:
https://img.radiokot.ru/files/20529/2l6l0lyfiv.png
в отмеченной стрелочкой позиции стоит нулик. Если поставить за нуликом курсор и нажать Send (или клавиш enter на клавиатуре ПК) то произойдет возврат в режим бутлоадера (soft restart) - только без тестирования.
Для продолжения работы текущей программки надо в ту позицию вместо 0 ввести 1
https://img.radiokot.ru/files/20529/2l6l5lvbx5.png
и нажав send продолжить работу программы.
Выпадает следующее меню с предложением провести проверку/настройку напряжения +12 вольт Vpp:
https://img.radiokot.ru/files/20529/2l6l7olpz5.png
оставив единичку и нажав send включим подачу +12 вольт Vpp на соответствующий вывод панельки макета с выводом сопровождающего сообщения:
https://img.radiokot.ru/files/20529/2l6lb2fcjg.png
для отключения достаточно снова нажать send.
Замечание - кнопа send работает только в случае, если курсор будет установлен за символом в окне терминала - иначе окажемся в том окне, где в данный момент находится позиция курсора.
Если в момент, когда в окне терминала имеется предложение о тесте Vpp в строчке ответа ввести 0 то данный пункт будет игнорирован.
Далее (и после теста Vpp или минуя оный) будет выдано следующее:
https://img.radiokot.ru/files/20529/2l6li9q280.png
поскольку прожка пока в стадии написания при подтверждении единичкой далее последует каскад контрольных тестов с выводом на индикатор, подключенный к Р1 МК, установленного на FB4012.
Тесты проходят в "кольцевом режиме"
сначала однократно выпадает вот такое окошко:
https://img.radiokot.ru/files/20529/2l6llkg2mc.png
с завершением
https://img.radiokot.ru/files/20529/2l6ln62mjc.png
далее или играемся включая соответствующий цифирке индикатор(1-8) или запускаем следующее кольцо теста введя нулик.
https://img.radiokot.ru/files/20529/2l6lp53vdk.png
Воть...
:roll:
В менюшечной системе устранена "узкость" - теперь в строчке команд можно вводить сколько угодно символов - все равно устойчиво будет анализироваться (и исполняться) только самый первый
mb4012_1.zip
(65.5 KiB) Скачиваний: 209

тем самым с обработчиком интерактива консольного терминала вроде как все завершено...
8)
лениво царапки дальше...
:write:

Re: Котуинко

Пн авг 09, 2021 09:01:07

Пришлось еще последний тестик подправить....
mb4012.zip
(143.58 KiB) Скачиваний: 203

там было "немножко грязючки" :oops: ... теперь нету...
Теперь дописать до полного программатора может любой желающий - основные заготовки в тестовой оболочке уже сделаны, старая версия под ISP для AT89S51/52 так же ранее опубликована (как и еще более "древний" вариант для AT89C2051/4051).
Так что мне можно и не слишком торопиться с окончательным вариантом...
:wink:

Re: Котуинко

Пн авг 09, 2021 09:46:31

файл-заготовка программы для AT98S52
; version 1.01 KOBRA softvare
; only c51asm.exe assembler!
;----------
;
; Projekt _______kotios ( kotuino mode2 )
; Filename ______kotios.asm
; File version __0.1
; начато 16 мая 2021 года
; Autor _________BORIS KRUTITSKIY
;
;----------
$pagewidth (255)
$da
$include (kotios\baseinc\kotuinko.inc)
;----------
$include (kotios\librus\dfn_ios.txt) ; файл объявленных имен, бит и констант
$include (kotios\librus\mac_ios.txt) ; файл описания макросов
; вместо name project подставляется имя файла соответствующего проекта
; шаблоны имеют name project = proto
; системная обработка
$include (kotios\librus\io_sys.txt) ; файл переключения в автовыбор для
; переключения памяти программ с РПП на ВПП
;----------
;
; файлы пользовательской программы
;


$include (kotios\librus\strings.txt) ; файл строк текстовых сообщений ASCII

end


У меня и микросхем то таких в уже не первой свежести AVR studio нет.

only c51asm.exe assembler!

а что это за хрень такая ? :)

Re: Котуинко

Пн авг 09, 2021 11:44:00

Ранее уже писано было - это МК семейства
MCS51 выпускаемые ATMEL - AT89C/S и там с десяток разновидностей.
Атмел студио поддерживает только AVR микроконтроллеры.
Для MCS51 атмелем был сделан кейл-подобный ассемблер (c51asm.exe) с запуском из командной строки.
Ссылки на инструмент разработки были еще где-то в начале "винной"...
( https://radiokot.ru/forum/viewtopic.php?f=62&t=94201 )
А как сегодня разыскать на сайте микрощипа - сказать трудно... там и до документации по современным AVRкам докопаться не так легко...
:dont_know:
Разве что еще разок подготовить архивчик для каталога с настроенными прожками и запускающими батниками да в сундук КОТА предложить к размещению (чтоб потом по ковырдесят раз не копаться в архивах)...
:roll:

Пока что вот такая "напоминалка" - архив каталога, размещаемого в корневом каталоге диска D (иначе переписываем *.bat файлы в соответствие имеющемуся).
https://disk.yandex.ua/d/acM65G-9okpINw
Рассчитано для работы в DOS окне (как в ХР х32, так и в DOS окне 7ки и 10ки) - единственно cmd.exe для ХР х32 уже в каталоге, а для 7-10 надо будет его соответственно туда скопировать.
В каталоге также портабле версия редактора dpad.
Запускающий батник для AD2500 комплекта - a.bat
для c51asm - at.bat
Так что - разобраться таки можно будет.
:tea:

Re: Котуинко

Сб авг 14, 2021 00:48:16

И постигла меня ПЕЧАЛЬКА...
:(
Все в теории и на макетке вроде так как требуется, но вот старую AT89C51 никак в режим программирования вогнать не удалось...
Сигнатурку видим, ПЗУ читаем, а прошивать - никак.
Предположительно ошибки разводки платки... возможно преобразователь (хотя на осциллограммах все без нареканий...) или вариант обмена с шинным расширителем придется модернизировать...
:dont_know:
Вобщем пока придется отложить ту "жгучу платку" в приложении к AT89C51 да проверить на всяк случай сам МК на заведомо исправном программаторе все ж валялся весьма долго...
В худшем случае модернизированная схемка "прожигайки"
https://img.radiokot.ru/files/20529/2ldyvr98hd.GIF
и "менюшкин интерфейс" пойдут для работы с менее привередливыми к скоростям железячками.
:roll:

Re: Котуинко

Сб авг 14, 2021 14:25:13

Придется таки отказаться от комбинированной системы управления, задав все критичные функции на шинный расширитель.
В принципе как-то не ново - уже на ISP варианте сталкивался с "ограичением на медлительность", да ранее примерно тот же подход был...
Так что перепахамс схемку "прожигалки" в плане "новых мыслей" вот под такое:
https://img.radiokot.ru/files/20529/2lfi1e39e3.JPG
а далее ... все заново переписывать...
:facepalm:
мнндяаа...
:write:
Вот, кстати, весьма древний вариант подобного устройства (самого простейшего)
https://img.radiokot.ru/files/20529/2lelek3h67.GIF
Кому-то давненько отдал - да и чегодня бы все равно пришлось интерфейс переделывать - та железяка под LPT была заточена...
ЭЭЭХХХхххх....
Антикварьять - ностальжи...
:sleep:

Re: Котуинко

Чт авг 19, 2021 14:48:03

Вышла новая версия симулятора ардуино - 2.9.2
(да еще с каким-то Q2WDBotSim... :roll: )
смотрим тут
https://www.sites.google.com/site/unoardusim/
8)

Продолжаемссс работу над программатором для 40-лапых...
Вторая попытка для модуля "прожигайки" с измененной чуток схемкой и подизвращенная прожка для контроллера "прожигайки":
fb4012.zip
(172.94 KiB) Скачиваний: 185

тестики для комплекта попозже по готовности будут.
Поглядимссс.... чего на этот раз получится...
:roll:

Re: Котуинко

Ср авг 25, 2021 21:38:39

ДОСАДКО...
:oops:
Совсем упустил из виду пакостную особенность параллельного режима - при установленных флагах защиты кристалл читается как "пустой"("чистый"), но запись данных в него провести невозможно.
А вот статус бит защиты у АТ89С51/АТ89С52 аналогично сигнатуре просмотреть невозможно (их можно только установить или сбросить).
Неделя к....
Зато и схемку и алгоритм вычухал по максимуму...
:twisted:
Теперь чуток отредактировать "грязючку" да описание работы и можно будет выгрузить "на всеобщий поцарапс".
:hunger:

Re: Котуинко

Чт авг 26, 2021 20:32:32

Проект PG4012.
В основе та же базовая КОТУИНКО с биосом версии b52m1.
b52m1.zip
(442.67 KiB) Скачиваний: 173

Для работы в ПК как и ранее применяется терминал:
https://sites.google.com/site/terminalbpp/
выбираем версию Terminal20130116.zip - эта стабильна и наиболее наворочена.
Для работы с АТ89С51/АТ89С52 была изготовлена «жгучая плата» FB4012 с собственным МК «периферийного расширителя» на базе AT89S51 (прошивка для которого одинаково работает и в АТ89С51) с прошивкой fb.hex версии 0.4.
fb4012.zip
(172.34 KiB) Скачиваний: 183

Третий компонент — собственно управляющая программа для всего комплекса в сборе — файлик mb.hex версии 0.3, загружаемый в котуинку.
mb4012.zip
(164.33 KiB) Скачиваний: 181

Остальные действия проводим согласно контекстному меню с помощью терминала.
Программатор позволяет
1. настроить номинал напряжения +12 вольт
2. определить какой МК установлен (по байтам сигнатуры)
3. загрузить целевой файл прошивки из ПК в программатор
4. провести полное стирание МК
5. провести контроль «чистоты» ПЗУ МК
6. провести запись дампа из памяти программатора в ПЗУ МК с одновременной верификацией результата.
Блок-схема комплекта:
https://img.radiokot.ru/files/20529/2lr3u6cbby.JPG
описание процесса работы «в картинках»:
запускаем терминал
https://img.radiokot.ru/files/20529/2lr36l7ie0.png
включаем питание котуинки и ждем завершения самотестирования
https://img.radiokot.ru/files/20529/2lr36mcy6u.png
загружаем в котуинку управляющую программу mb.hex
https://img.radiokot.ru/files/20529/2lr36ngeok.png
https://img.radiokot.ru/files/20529/2lr36pe801.png
после появления заставки даем команду 1 (продолжить)
https://img.radiokot.ru/files/20529/2lr36og348.png
проводим проверку источника +12вольт (можно и пропустить введя 0)
включили
https://img.radiokot.ru/files/20529/2lr36qey52.png
и затем отключили
https://img.radiokot.ru/files/20529/2lr36rgmg6.png
на приглашение устанавливаем МК в «безнажимку»
https://img.radiokot.ru/files/20529/2lr5dje51y.jpg
и вводим 1
программатор проведет чтение сигнатур и предложит ввести файлик дампа для прошивки
https://img.radiokot.ru/files/20529/2lr36khqq5.png
введем сначала 1
https://img.radiokot.ru/files/20529/2lr36tik8p.png
затем требуемый файл
https://img.radiokot.ru/files/20529/2lr36uq29a.png
следующее субменю для дальнейших действий
https://img.radiokot.ru/files/20529/2lr36sjd3y.png
Вариант окна после удачного завершения записи с верификацией (команда 3)
https://img.radiokot.ru/files/20529/2lr36vjak5.png
если затем дать команду проверки чистоты по естественно получим ошибку в первом же байте:
https://img.radiokot.ru/files/20529/2lr36zi5lt.png
ввод нуля приводит к откату в предыдущее меню вплоть до выхода в загрузчик биос
https://img.radiokot.ru/files/20529/2lr36xi85j.png
Из удачных решений — модуль bspi_m.txt подпрограмма обмена данными между двумя «разношерстными» МК. В текущем варианте — под MCS51, но легко переделывается и под АВР и под ПИК.
Защит от неверных действий особо не ставилось, так что аккуратно в работе с вводом цифирек.
Замечания по работе с «залоченными» МК.
Такой МК выдает полную сигнатуру и читается как «чистый».
Статус битов защиты нам остается неизвестен (так задумано изготовителем).
Однако при попытке прошивки программатор «подвиснет» (применен алгоритм с опросом активации нуля на линии busy/ready, а защиту на длительность ожидания я не поставил) — в таком случае просто выключаем и заново включаем питание. Затем все по новой с обязательным выполнением операции «общее стирание» перед проверкой на чистоту и последующей прошивкой.
8)

Re: Котуинко

Пт авг 27, 2021 09:41:02

Прошу прощения, что влажу с немного посторонним вопросом. Но возможно здесь, как в довольно близкой по смыслу теме мне подскажут решение. Жизнь принуждает искать параллельный программатор для 89C51RD2 с памятью программ 64КБ. Доставлись пару таких МК, в которых умудрились затереть заводской загрузчик, и теперь они не программируются через утилиту Flip, но путем тщательных поисков на просторах интернетов была найдена статья https://ra4nal.ontvtime.ru/prgrd2.shtml где в прикрепленных файлах нашелся драгоценный загрузчик. Осталось его восстановить.
В продаже необходимого программатора я найти не могу, даже знаменитый TL866 его не поддерживает, как и Willem для LPT-порта. Все найденые варианты программируют максимум 32КБ памяти. Возможно прийдется что-то мудрить самому. Я не уверен, что потяну самостоятельную разработку софта для ПК, но небольшой опыт написания программ под ПК на Pascal имеется. Пока со стороны железа рассмативаю самодельный вариант на AT89S52+КР580ВВ55 (имеются в наличии). 2 порта КР580ВВ55 использовать для задачи адреса, а 3-й для шины данных. Еще пару выводов AT89S52 для всяких служебных входов 89C51RD2 (типа ALE, PSEN и пр.). На стороне ПК простенькая прога, которая будет слать в СОМ-порт команды/данные, и на стороне программатора AT89S52, которая все это принимает и выставляет необходимые уровни на своих ногах и ногах расширителя КР580ВВ55. Почему КР580ВВ55 ? Она 1 по количеству выводов заменяет кучу всяких мультиплексоров/шинных формирователей, а мне важна простая аппаратная часть (как можно меньше корпусов микросхем). Жизнеспособная идея ?
Если вам известен готовый программатор, который может запрограммировать загрузчик в самый конец 64КБ памяти 89C51RD2 - пожалуйста дайте знать.
Последний раз редактировалось Пока_без_кота Пт авг 27, 2021 09:50:19, всего редактировалось 1 раз.

Re: Котуинко

Пт авг 27, 2021 09:49:43

давно это было... но вроде как для параллельного программирования КР580ВВ55 не нужна, ног и так должно хватать. или там USART по пинам пересекается с шинами данных/адреса?

Re: Котуинко

Пт авг 27, 2021 09:52:28

...ног и так должно хватать...

Благодарю за мысль, сейчас гляну даташит на 89C51R2D.

Re: Котуинко

Пт авг 27, 2021 10:16:00

Главный вопрос - протокол загрузки...
когда-то пытался подобраться к этим RD (и "понавороченнее") да кроме Flip ни Х/З не обнаружил...
Может плохо искал....
:dont_know:
Грузить дамп из ПК задача осложняемая необходимостью "притормаживания" протокола обмена по последовательному каналу.
Для обхода данного пункта и применяются подобные котуинке решения - сброс сразу всего массива в буферное ОЗУ.
А уже делее работает сам "удаленный прошивальщик" всего-то с применением простейшего интерактива с ПК.
Второй пункт - минимизация "петель сигнальных токов" - генерацию тайм-слотов и контроль критичных данных передаем конечному "жгучему МК" - так и в прошивайке для АТ89Сх051 и в прошивайке для АТ89С51/52 сделано - "жгучая голова" непосредственно под безнажимкой.
А вот командный МК можно и на удалении выставить.
В качестве приемника - накопителя я бы чего-то способного управлять двумя-четырьмя микросхемами ОЗУ поставил...
Там любой кристалл с возможностью грузить внешнее ОЗУ хош в аппаратном, хош в программном варианте подойдет.
Второй кристалл - обеспечение шин сигналов управления.
В конструкции надо много "вольных лапок"....
Как вариант... платку ардуино-мега возможно будет эффективнее использовать для интерфейса с ОЗУ и шинами адреса/данных при дополнительном "жгучем периферийнике" или на 40-лапке MCS51 или на АВРке.
Кстати... шины адреса/данных ОЗУ можно совместить с шинами адреса/данных безнажимки - так уже в прошлом делал.
Вот примерно как это решение:
https://img.radiokot.ru/files/20529/2lelek3h67.GIF
Хотя... такой вариант можно и в AT89S8252/8253 при условии, что основная программа жестко привязана к текущей конструкции и к конкретному МК (несменяемая - т.е. программатор только для определенного типа МК).
Тогда базовый загрузчик дампа от котуинки b52m1(грузит только данные) плюс собственная программа для программатора, внешнее ОЗУ в 64к*8 с "двусторонним доступом" и (возможно - если лапок не хватит) дополнительная "жгуча головушка" на чем удобнее.
Интерфейс с ПК аналогично котуинке для PG4012 интерфейс со жгучей головой - bspi.
Единственно тогда лапок и на управляющие выводы хватило (прошивались не такие "жирные" кристаллы).
На сегодня с загрузчиком котуинки пара выводов может быть в той схеме высвобождена.
:roll:
Последний раз редактировалось BOB51 Пт авг 27, 2021 10:41:38, всего редактировалось 3 раз(а).

Re: Котуинко

Пт авг 27, 2021 10:24:12

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

Добавлено after 4 minutes 5 seconds:
у меня, кстати, есть такой программатор :) для DIP-корпусов

Re: Котуинко

Пт авг 27, 2021 10:32:54

Кому уж чего проще - до определенного размера массива дампа у котуинки больше преимуществ - всего-то "жгучку"-приставку собрать да прожку написать.
Единственно пока у меня накопительный буфер до 32к*8 абсолютно свободно использоваться может.
Вариант собственного "дисковода" на ОЗУ/ЕЕПРОМках еще вылеживается...
8)

Re: Котуинко

Пт авг 27, 2021 10:42:21

... городить собственный программатор и писать для него софт - крайне неразумное решение... у меня, кстати, есть такой программатор :) для DIP-корпусов

Да, я понимаю, неразумно. Поэтому и рассматривал в первую очередь покупной вариант.
Знакомых с таким железом нет, я тут сам местный прошивальшик AVR/PIC.
А от Вас я далеко.
А восстановить хочется, эти МК у меня уже пару лет валяются, и мысль довольно навязчива.
Глянул даташит - вроде как не хватит мне голого МК без расширителей. На прошивающей стороне 32 управляемых вывода. Минус 2 вывода на UART, остается 30 штук. Минус 24 (8+16) на данные/адрес. Остается 6 шт. А прошиваемый МК аж 9 для контроля требует.
Я все правильно посчитал ?
Вложения
Новый точечный рисунок.jpg
(36.25 KiB) Скачиваний: 136

Re: Котуинко

Пт авг 27, 2021 10:48:49

если судить по рисунку (не вникая в специфику) у нас 12 лап управления и 16+6=22 линии "двойного использования" (если ОЗУ используется как в моем варианте выше)
итогом 34 лапки надо плюс две на RS232 -> 36 свободных лап (не считая интерфейса буферного ОЗУ)...
атмега8515/162 под ассемблером....?
или таки ардуино-мега как более универсально-избыточный вариант (с внешней платкой расширения)...?
:roll:
Ответить