Начиналось вот с этого: 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) в качестве вспомогательных периферийных устройств и/или "интеллектуальных расширителей".
Пы.Сы. Адаптации платформы аналогично иным продуктам ардуиноIDE нету в связи с моими ограниченными возможностями. ("нельзя объять необъятное") Примером подобного для MCS51 можно считать https://z-uno.z-wave.me (там в основе ядро MCS51, но несколько с иной периферией). Ежли кому интересно будет - могут присоединяться к текущему проекту со своими дополнениями... Однако как и основной проект - на бесплатной основе...
в fbc_util_1.txt исправлены операции инверсии портов и выполнена подгонка под библиотеку bspi_m.txt применена модифицированная библиотека протокола побитово-синхронного протокола передачи данных (BSPI) bspi_m.txt Версия тестировщика для самой базовой котуинки (пока в стадии "ленивого написания") для работы в комплекте
Заложена интерактивная менюшка для ввода односимвольных команд из терминала. Ввод делается в нижней строчке в ответ на запрос в окошке. Решил, что удобнее будет использовать только циферки 0=возврат/выход в старшее меню, а 1-9 для исполнения (по контексту) команда - один символ, без дополнительных "скрытых" (см.пример на скрине). В принципе "заготовка" вполне себе работает, хотя и не является полноценным консольно-экранным приложением. Далее уже вопрос по собственно целевой программке - программатору для АТ89С51/52 прорабатываться будет. Ну и чего там на "жгучей платке" еще соорудить можно будет... Тот же фузе доктор или еще чего... запуск котуинки сначала проходят внутренние тесты, затем сообщение о версии бутлоадера и вывод приглашения к загрузке файла программки 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 Воть... В менюшечной системе устранена "узкость" - теперь в строчке команд можно вводить сколько угодно символов - все равно устойчиво будет анализироваться (и исполняться) только самый первый
там было "немножко грязючки" ... теперь нету... Теперь дописать до полного программатора может любой желающий - основные заготовки в тестовой оболочке уже сделаны, старая версия под ISP для AT89S51/52 так же ранее опубликована (как и еще более "древний" вариант для AT89C2051/4051). Так что мне можно и не слишком торопиться с окончательным вариантом...
файл-заготовка программы для 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) ; файл переключения в автовыбор для ; переключения памяти программ с РПП на ВПП ;---------- ; ; файлы пользовательской программы ;
Ранее уже писано было - это МК семейства MCS51 выпускаемые ATMEL - AT89C/S и там с десяток разновидностей. Атмел студио поддерживает только AVR микроконтроллеры. Для MCS51 атмелем был сделан кейл-подобный ассемблер (c51asm.exe) с запуском из командной строки. Ссылки на инструмент разработки были еще где-то в начале "винной"... ( https://radiokot.ru/forum/viewtopic.php?f=62&t=94201 ) А как сегодня разыскать на сайте микрощипа - сказать трудно... там и до документации по современным AVRкам докопаться не так легко... Разве что еще разок подготовить архивчик для каталога с настроенными прожками и запускающими батниками да в сундук КОТА предложить к размещению (чтоб потом по ковырдесят раз не копаться в архивах)...
Пока что вот такая "напоминалка" - архив каталога, размещаемого в корневом каталоге диска 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 Так что - разобраться таки можно будет.
И постигла меня ПЕЧАЛЬКА... Все в теории и на макетке вроде так как требуется, но вот старую AT89C51 никак в режим программирования вогнать не удалось... Сигнатурку видим, ПЗУ читаем, а прошивать - никак. Предположительно ошибки разводки платки... возможно преобразователь (хотя на осциллограммах все без нареканий...) или вариант обмена с шинным расширителем придется модернизировать... Вобщем пока придется отложить ту "жгучу платку" в приложении к AT89C51 да проверить на всяк случай сам МК на заведомо исправном программаторе все ж валялся весьма долго... В худшем случае модернизированная схемка "прожигайки" https://img.radiokot.ru/files/20529/2ldyvr98hd.GIF и "менюшкин интерфейс" пойдут для работы с менее привередливыми к скоростям железячками.
Придется таки отказаться от комбинированной системы управления, задав все критичные функции на шинный расширитель. В принципе как-то не ново - уже на ISP варианте сталкивался с "ограичением на медлительность", да ранее примерно тот же подход был... Так что перепахамс схемку "прожигалки" в плане "новых мыслей" вот под такое: https://img.radiokot.ru/files/20529/2lfi1e39e3.JPG а далее ... все заново переписывать... мнндяаа... Вот, кстати, весьма древний вариант подобного устройства (самого простейшего) https://img.radiokot.ru/files/20529/2lelek3h67.GIF Кому-то давненько отдал - да и чегодня бы все равно пришлось интерфейс переделывать - та железяка под LPT была заточена... ЭЭЭХХХхххх.... Антикварьять - ностальжи...
Продолжаемссс работу над программатором для 40-лапых... Вторая попытка для модуля "прожигайки" с измененной чуток схемкой и подизвращенная прожка для контроллера "прожигайки":
ДОСАДКО... Совсем упустил из виду пакостную особенность параллельного режима - при установленных флагах защиты кристалл читается как "пустой"("чистый"), но запись данных в него провести невозможно. А вот статус бит защиты у АТ89С51/АТ89С52 аналогично сигнатуре просмотреть невозможно (их можно только установить или сбросить). Неделя к.... Зато и схемку и алгоритм вычухал по максимуму... Теперь чуток отредактировать "грязючку" да описание работы и можно будет выгрузить "на всеобщий поцарапс".
Для работы в ПК как и ранее применяется терминал: https://sites.google.com/site/terminalbpp/ выбираем версию Terminal20130116.zip - эта стабильна и наиболее наворочена. Для работы с АТ89С51/АТ89С52 была изготовлена «жгучая плата» FB4012 с собственным МК «периферийного расширителя» на базе AT89S51 (прошивка для которого одинаково работает и в АТ89С51) с прошивкой fb.hex версии 0.4.
Прошу прощения, что влажу с немного посторонним вопросом. Но возможно здесь, как в довольно близкой по смыслу теме мне подскажут решение. Жизнь принуждает искать параллельный программатор для 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 раз.
давно это было... но вроде как для параллельного программирования КР580ВВ55 не нужна, ног и так должно хватать. или там USART по пинам пересекается с шинами данных/адреса?
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Главный вопрос - протокол загрузки... когда-то пытался подобраться к этим RD (и "понавороченнее") да кроме Flip ни Х/З не обнаружил... Может плохо искал.... Грузить дамп из ПК задача осложняемая необходимостью "притормаживания" протокола обмена по последовательному каналу. Для обхода данного пункта и применяются подобные котуинке решения - сброс сразу всего массива в буферное ОЗУ. А уже делее работает сам "удаленный прошивальщик" всего-то с применением простейшего интерактива с ПК. Второй пункт - минимизация "петель сигнальных токов" - генерацию тайм-слотов и контроль критичных данных передаем конечному "жгучему МК" - так и в прошивайке для АТ89Сх051 и в прошивайке для АТ89С51/52 сделано - "жгучая голова" непосредственно под безнажимкой. А вот командный МК можно и на удалении выставить. В качестве приемника - накопителя я бы чего-то способного управлять двумя-четырьмя микросхемами ОЗУ поставил... Там любой кристалл с возможностью грузить внешнее ОЗУ хош в аппаратном, хош в программном варианте подойдет. Второй кристалл - обеспечение шин сигналов управления. В конструкции надо много "вольных лапок".... Как вариант... платку ардуино-мега возможно будет эффективнее использовать для интерфейса с ОЗУ и шинами адреса/данных при дополнительном "жгучем периферийнике" или на 40-лапке MCS51 или на АВРке. Кстати... шины адреса/данных ОЗУ можно совместить с шинами адреса/данных безнажимки - так уже в прошлом делал. Вот примерно как это решение: https://img.radiokot.ru/files/20529/2lelek3h67.GIF Хотя... такой вариант можно и в AT89S8252/8253 при условии, что основная программа жестко привязана к текущей конструкции и к конкретному МК (несменяемая - т.е. программатор только для определенного типа МК). Тогда базовый загрузчик дампа от котуинки b52m1(грузит только данные) плюс собственная программа для программатора, внешнее ОЗУ в 64к*8 с "двусторонним доступом" и (возможно - если лапок не хватит) дополнительная "жгуча головушка" на чем удобнее. Интерфейс с ПК аналогично котуинке для PG4012 интерфейс со жгучей головой - bspi. Единственно тогда лапок и на управляющие выводы хватило (прошивались не такие "жирные" кристаллы). На сегодня с загрузчиком котуинки пара выводов может быть в той схеме высвобождена.
Последний раз редактировалось BOB51 Пт авг 27, 2021 10:41:38, всего редактировалось 3 раз(а).
вообще говоря, если задача состоит только в восстановлении парочки доставшихся в наследство МК, то городить собственный программатор и писать для него софт - крайне неразумное решение. куда разумнее поискать в округе кого-либо с профессиональным программатором и решить проблему за пару банок пива. ну или чего-то там другого... выйдет и быстрее, и дешевле, и надежнее.
Добавлено after 4 minutes 5 seconds: у меня, кстати, есть такой программатор для DIP-корпусов
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Кому уж чего проще - до определенного размера массива дампа у котуинки больше преимуществ - всего-то "жгучку"-приставку собрать да прожку написать. Единственно пока у меня накопительный буфер до 32к*8 абсолютно свободно использоваться может. Вариант собственного "дисковода" на ОЗУ/ЕЕПРОМках еще вылеживается...
... городить собственный программатор и писать для него софт - крайне неразумное решение... у меня, кстати, есть такой программатор для DIP-корпусов
Да, я понимаю, неразумно. Поэтому и рассматривал в первую очередь покупной вариант. Знакомых с таким железом нет, я тут сам местный прошивальшик AVR/PIC. А от Вас я далеко. А восстановить хочется, эти МК у меня уже пару лет валяются, и мысль довольно навязчива. Глянул даташит - вроде как не хватит мне голого МК без расширителей. На прошивающей стороне 32 управляемых вывода. Минус 2 вывода на UART, остается 30 штук. Минус 24 (8+16) на данные/адрес. Остается 6 шт. А прошиваемый МК аж 9 для контроля требует. Я все правильно посчитал ?
если судить по рисунку (не вникая в специфику) у нас 12 лап управления и 16+6=22 линии "двойного использования" (если ОЗУ используется как в моем варианте выше) итогом 34 лапки надо плюс две на RS232 -> 36 свободных лап (не считая интерфейса буферного ОЗУ)... атмега8515/162 под ассемблером....? или таки ардуино-мега как более универсально-избыточный вариант (с внешней платкой расширения)...?
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения