Дко электронщик
Два блока FPP имеют совместный доступ к одной и той же памяти программ OTP 2 k × 16 бит, памяти данных 160 байт (SRAM) и всем портам ввода-вывода. Блоки FPP работают с взаимоисключающими тактовыми циклами, полагаю, чтобы избежать конфликтов в чтении/записи общих ячеек памяти. В микросхему встроен единый переключатель задач (Task Switch), который определяет какому блоку FPP должно быть передано управление на текущем такте.
ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ «ДОМ КОМПОНЕНТОВ И ОБОРУДОВАНИЯ «ЭЛЕКТРОНЩИК» Действующее
Что сказать об особенностях этого языка и компилятора… Действительно, синтаксис как у языка Си. Компилятор не поддерживает передачу аргументов в функцию. Также функция не может вернуть значение. Зато есть указатели и глобальные переменные.
Данный товар получен от клиентов, которые купили его для целей производства, но он оказался не востребован. Возможно отсутствие ГТД и страны происхождения.
Заглянув в инструкцию к программатору, находим раздел, в котором идёт описание того… как пользователь должен изготовить «переходник» для разъёма JP7, чтобы подключить в разъём на лицевой панели микроконтроллер… чегоооо?
В окне Writer нажимаем иконку Auto Program или кнопку Program на самом программаторе. Начнётся процедура загрузки прошивки. После которой на экране увидим сообщение об успешной операции.
Список используемых источников
Для запуска утилиты общения с программатором в IDE выбираем Execute/Writer, открывается окно программатора. При первом подключении, возможно, он потребует обновления прошивки, соглашаемся, дальше система всё сделает сама.
Программатор питается от сетевого адаптера 9В 2А, который поставляется в комплекте (нужен переходник на евро-розетку). Связь с компьютером через USB (но питание по UAB не подаётся). Выглядит точь-в-точь как на иллюстрациях в инструкции. При подключении к ПК, он автоматически определяется Windows 10, в явной установке драйверов не нуждается.
Дальше раздел O/S Test Select указываем какие пины нужно протестировать, перед загрузкой прошивки. Можно вручную снимать галочки, а можно указать Only Program PIN, тогда программатор будет тестировать только пины, необходимые для загрузки прошивки. В нашем случае это PA5, PA3, PA6.
Общая информация об организации
В целом… жить можно… Приноровиться надо. Дешёвый контроллер окупает всё веселье!
И вот такая получилась реализация:
Программирование на Mini.C
Для загрузки прошивки в микроконтроллер PFC161 потребуется программатор 5S-P-003, где 003, как я понимаю, это его версия. Более ранние версии не поддерживают этот микроконтроллер, да и в продаже их почти и нету.
Я по началу наивно полагал, что достаточно к ним соответствующие провода кинуть и готово. Однако, как выяснилось позже, программатор перед загрузкой прошивки проверяет состояние линий микроконтроллера, а проверять он может только контактами 1-28 разъёма JP7. Без проверки он выдаёт ошибку подключения, поэтому как ни крути, надо колхозить эту «переходную плату».
Правда вот незадача, прошивка наша ничего не делает…
Все микроконтроллеры PADAUK строятся на схожей архитектуре. Набор инструкций процессора сильно напоминает PIC микроконтроллеры, естественно с некоторыми усовершенствованиями и доработками. Вектор прерывания только один. После срабатывания прерывания они автоматически отключаются на время выполнения подпрограммы обработки и автоматически включаются после возвращения в основную программу.
Теперь можно отсоединять программатор и подключать питание отладочной платы.
Полный код программы
Разъём XS5 (IDC-6), собственно, и используется для подключения к программатору. Также на плату была добавлена пара Н – мостов для коммутации нагрузки (микроконтроллер в целевой плате будет управлять биполярным шаговым двигателем).
Для начала я попробовал реализовать простой алгоритм управления шаговым моторчиком при помощи драйвера, расположенного на печатной плате. По нажатию на одну из кнопок он должен вращаться в одну сторону на заданное количество шагов, по нажатию на другую кнопку – делает то же количество шагов в обратную сторону. Поскольку прошивки под большинство проектов я пишу на С, для этих контроллеров я выбрал Mini.C, в надежде, что освоится с ним будет проще.
Нажимаем F7 или Execute/Build или маленькую, хорошо знакомую по другим IDE, иконку на верхней панели. Компилятор отрапортовал об успешной сборке проекта и выдал предупреждение, что мы никак не используем прерывание.
Для него написано: JP7.
Теперь можно подключать наш микроконтроллер к лицевой панели. Поскольку программировать мы будем внутрисхемно, то нужен провод, который будет соединять разъём на отладочной плате и зажимную панельку на лицевой панели программатора. Сделаем ещё один переходник, подключив соответствующие пины, на разъёме отладочной платы к разъёму программатора. На экране программатора появится надпись «IC ready», означающая, что микроконтроллер готов к прошивке.
Микроконтроллер с несколькими ядрами
Разъём JP7 (двухрядный PLS) является отражением разъёма на лицевой панели. Они прозваниваются зеркально. Поэтому нам всего лишь нужно сделать вот такие перемычки для JP7. Джампер на JP2 оставляем на своём месте.
Заключение
Получилась вот такая схема обвязки микроконтроллера:
Типы данных тут несколько отличаются по названию, но в целом, несут тот же смысл, что и в классическом СИ. Не поддерживаются вычисления с плавающей точкой. Вся арифметика только целочисленная.
Перед компиляцией нужно настроить кое-какие опции. Переходим во вкладку Execute/Code Option, открывается вот такое окно.
Необходимо убедиться, что джампер замыкает JP2. И установить микроконтроллер в разъём на передней панели, сместив его вниз на 4 контакта (естественно используя переходник SOIC-DIP).
Переходим к подключению микроконтроллера.
На официальном сайте производителя имеется документация на все модели контроллеров на английском и китайских языках. Доступна для скачивания полнофункциональная среда разработки FPPA IDE (про установку и работу с ней поговорим далее). Программы можно писать на классическом ассемблере, однако производитель предлагает ещё и вариацию языка C – Mini.C, что мне показалось очень интересным.
Среда разработки крайне не любит кириллицу в комментариях. Нет, формально комментарии писать можно. И при компиляции ошибки не выдаёт. Но, по какой-то причине при сохранении файла и его повторном открытии часть символов меняется на знак вопроса. Так-то ладно… но! При попытке выполнить rebuild компилятор повисает, и среда вылетает. Я долго мучился и не мог понять в чём причина. Причём ошибка плавающая. То есть заново созданный файл с комментариями, содержащими кириллицу, поддаётся «пересборке», а повторно открытый уже нет. Чудеса… однако…
Что можно сказать в итоге. У меня остались приятные впечатления после знакомства с экосистемой PADAUK. Микроконтроллеры с низкой себестоимостью – не такая уж и плохая штука. Если сравнивать с другими 8 разрядными микроконтроллерами вроде Tiny13 или Tiny10 или PIC10, которые известны несравненно шире, то PFC161 не уступает этим товарищам ни в производительности, ни в объёме памяти программ, ни в богатстве периферии. Но выигрывает в цене, причём даже модели с перезаписываемой памятью. Кроме того, исходный код можно без труда портировать под PMS152 (с OTP памятью) и изделия на его основе уже можно тиражировать (при условии что вам не требуется специфическая периферия, вроде контроллера сенсорных кнопок).
Используется программирование с ограничением напряжения (низковольтное программирование), при этом:
Жмём ОК. Нам предлагают сохранить модифицированный файл PDK в папку проекта. Сохраняем его под другим именем (система по умолчанию добавляет в конец имени файла маркировку корпуса S08B). Теперь отправляем этот файл на программатор. Для этого в окне Writer ищем иконку Load File, указываем модифицированный PDK файл. Теперь на дисплее программатора появляется имя файла, модель контроллера и надпись «remove». То есть файл загружен, но контроллер пока не обнаружен. Собственно, с этого момента программатор может работать отдельно от компьютера и в автономном режиме грузить прошивки в контроллеры.
В файловом менеджере сразу появился файл с расширением «.c» – исходный код проекта на языке Mini.C, также файл extern.h, в который мы наверно пишем какие-то макросы, и файл с расширением «.PRE», содержащий, по-видимому, инструкции для компилятора.
Раздел Check Jump показывает, как должны быть установлены перемычки и в какую позицию нужно устанавливать микросхему на лицевой панели для различных корпусов этого контроллера.
В левой части будет схематично показан разъём передней панели и показано каким образом в него необходимо установить микроконтроллер. Если посмотреть на имена активных (подсвеченных) пинов и нумерацию, то увидим, что они совпадают с распиновкой корпуса нашего микроконтроллера.
Анализируя модельный ряд микросхем PADAUK, можно выявить следующие характерные особенности:
Ниже листинг программы с комментариями.
Особенности микроконтроллеров PADAUK
И теперь ATtiny13 в корпусе DFN10 в магазине LCSC при заказе от одной штуки стоит около 80-100 рублей, а при заказе от 500 штук 20-30 рублей (по курсу на июль 2022 года). На площадке отечественного дистрибьютера компонентов «ДКО Электронщик» позиции по запросу ATtiny13 во многих корпусах отсутствуют вообще (в частности DFN10). Те, что имеются в наличии идут от 100 рублей за штуку. В магазине «ЧИП и ДИП» цена микроконтроллеров ATtiny13 (в основном в корпусах SOIC) поднялась до 400 – 500 рублей.
ИНН 771376126426 Действует с 14.09.2023
Данные получены расчетным методом и могут отличаться от официальных.
Проверьте правильность URL
Переходим обратно в окно Writer и жмём иконку Convert.
Наиболее интересной особенностью является наличие FPPA. У некоторых микроконтроллеров всего один модуль FPPA и они функционируют как хорошо знакомые нам AVR или PIC контроллеры. У некоторых моделей количество модулей FPPA составляет 2 или 4. Для примера обратимся к документации на микроконтроллер PCM232, а именно к разделу, описывающему архитектуру.
В основу изделия заложены микроконтроллеры ATtiny13 в корпусах DFN10. И как сейчас помню, закупался этими контроллерами в розницу (ДКО Электронщик) по цене 28,7 рублей за штуку (июнь 2020 года). С тех пор многое изменилось…
ИНН 772504314483 Действует с 01.09.2023
ИНН 772504314483 c 23.06.2023
Актуальность предложений на товары в корзине истекла, данные были удалены 29.09.2024 в 00:00:00 (Мск.) Зарегистрируйтесь или авторизуйтесь на сайте, если регистрировались ранее, чтобы сохранять список товаров из корзины
Вообще, как я понял, для программирования любого микроконтроллера PADAUK используется максимум 8 линий (6 сигнальных и 2 питания). Для внутрисхемного программирования вообще 5 линий (3 сигнальных и 2 питания). Согласно документации, в разъёме JP7 они выведены на контакты с 29 по 36.
Источники:
https://www.rlocman.ru/cat/site.html?di=28812&rut=588495aac30a4590157486497b63ff5d5066152565af8472943a756767ba161d
https://habr.com/ru/articles/678330/&rut=f2d8464b173750542cf548984f260a756eba41c15bcb85f7d0b5f12df47ae53c
https://www.electronshik.ru/&rut=f1b98b196305edbaa1885455d0641d5907efc06db96e00d6eb6100dfc0e42e41
https://www.chipfind.ru/company/dkoelektroncshik.htm&rut=a7a8ede0bdd1f01646c04db7ce11fa21046a75cadb551c1a654bdaa0fc805e88
https://www.rusprofile.ru/id/506100&rut=fbb0c79b0f5959dbe780b9402be5e36536bb72515ba1b16af64c83335889b041
https://zachestnyibiznes.ru/company/ul/1057746560970_7725535824_OOO-DKO-ELEKTRONSchIK&rut=ee0bf242224311966ff478da6634c8dc6c9d9fdb793e8567255b61b36f88dcfb
https://halvacard.ru/shops/internet/electronshik&rut=d23f30063e3121e68971c816f5d7b2d5d0197ac10ae20c697a195f29e41f13bd