Микроконтроллеры PADAUK

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Грызет канифоль
Сообщения: 290
Зарегистрирован: Чт ноя 06, 2014 13:09:06

Сообщение viiv »

Здесь буду собирать полезную информацию по микроконтроллерам PADAUK. Присоединяйтесь, кому интересно.
Дешевые (некоторые брал по 3...4руб/шт), можно купить (Озон, Чип-Дип,...), есть в мелких корпусах (SOT23-6, SO8), есть с флешом, есть и однократно программируемые... Как по мне, есть задачи для таких "букашек".

И так, начало: Выше - про открытые проекты программатора/компилятора. Внимание! Не все микроконтроллеры Padauk поддерживаются открытым программатором!

Есть, конечно, и средства разработки, поставляемые самим производителем, но их я (пока) не пробовал использовать, поэтому пока и сказать нечего.
Последний раз редактировалось viiv Вт май 05, 2026 18:23:39, всего редактировалось 1 раз.
Реклама
Грызет канифоль
Сообщения: 290
Зарегистрирован: Чт ноя 06, 2014 13:09:06

Сообщение viiv »

Есть несколько ZIF адаптеров, которые устанавливаю в программатор. Однократные микроконтроллеры ставлю в ZIF адаптер , прошиваю, затем запаиваю в печатную плату.
Адаптеры такие:
  • Для SOT23-6 (в программатор ставить через переходник, не "напрямую")
  • Для SOP8
  • Для SOP16
Последний раз редактировалось viiv Вт май 05, 2026 18:47:51, всего редактировалось 3 раза.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3490
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Сообщение smacorp »

Контроллеры очень симпатичные. И при углублённом изучении могут доставить немало удивительных ощущений, как приятных, так и напротив.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Грызет канифоль
Сообщения: 290
Зарегистрирован: Чт ноя 06, 2014 13:09:06

Сообщение viiv »

Исходники софта программатора Здесь.
Развитие проекта остановилось (более двух лет нет коммитов), тем не менее как-то работает, прошивать какие-то микроконтроллеры умеет.

Лучше устанавливать "development" версию - она довольно сильно ушла от релиза (больше микроконтроллеров поддерживается). Некоторые заметки по сборке development версии под Linux:

Спойлер1) Скачиваем development ветку с github:

Код: Выделить всё

> git clone --branch development https://github.com/free-pdk/easy-pdk-programmer-software
> cd easy-pdk-programmer-software
Должно быть так:

Код: Выделить всё

> git branch -a
  * development
2) Собираем easypdkprog: здесь все просто, просто запускаем "make" Далее я просто скопировал собранный easypdkprog в /usr/local/bin

Код: Выделить всё

> sudo cp ./easypdkprog /usr/local/bin
Собранный easypdkprog, должен выдать примерно такую версию:

Код: Выделить всё

> easypdkprog -V
   easypdkprog 1.3-82-g85f5a7b
Далее необходимо собрать прошивку (firmware) программатора, версии протокoла
для релиза 1.3 и development на основе этой же версии отличаются и необходимо
обновить firmware программатора (прошивку STM32F072):

ВНИМАНИЕ: PMS171B у меня не определялся, не тот ICID был: в исходниках 0xD36,
из микроконтроллера считывалось 0xE36. Пока "тупо" поправил в файле fpdkicdata.c:

Код: Выделить всё

  {  .name                                      = "PMS171B",
-было    .otpid                                     = 0x2D36,
-было    .id12bit                                   = 0xD36,
+стало    .otpid                                     = 0x2E36,
+стало    .id12bit                                   = 0xE36,
    .type                                      = FPDK_IC_OTP2_2,
    .addressbits                               = 12,
Я не уверен, что все остальное Ок, но, по крайней мере, PMS171B стал
опознаваться и easypdkprog пишет, что "IC is supported: PMS171B ICID:0xE36".

Код: Выделить всё

> cd Firmware/source
> make
В подкаталоге "build" будет собранная "прошивка" STM32F072:
* EASYPDKPROG.bin - бинарник
* EASYPDKPROG.dfu - для обновления через dfu-util

3) Записываем прошивку. У меня было установлено dfu-util версии 0.9-1,
если не установлено, устанавливаем

Код: Выделить всё

> sudo apt-get install dfu-util
Обновляем прошивку STM32F072 программатора, для этого с зажатой кнопкой
подключаем программатор к USB и запускаем:

Код: Выделить всё

> dfu-util -d 0483:df11 -a "@Internal Flash  /0x08000000/064*0002Kg" --dfuse-address 0x08000000 -D build/EASYPDKPROG.dfu
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash  "
Downloading to address = 0x08000000, size = 40520
Download  [=======] 100%        40520 bytes
Download done.
File downloaded successfully
Отключаем от USB и заново подключаем (не нажимая кнопку), на шине USB
программатор видится как "0483:5740 STMicroelectronics Virtual COM Port":

Код: Выделить всё

> lsusb
....
Bus 003 Device 103: ID 0483:5740 STMicroelectronics Virtual COM Port
....
При подключении к USB c "зажатой" кнопкой, программатор видится, как "0483:df11
STMicroelectronics STM Device in DFU Mode":

Код: Выделить всё

> lsusb
...
Bus 003 Device 104: ID 0483:df11 STMicroelectronics STM Device in DFU Mode
....
После обновления программатора, easypdkprog стал опознавать PMS171B и пишет,
что "IC is supported: PMS171B ICID:0xE36":

Код: Выделить всё

> easypdkprog probe -v
Searching programmer... found: /dev/ttyACM0
FREE-PDK EASY PROG - HW:1.2 SW:1.3 PROTO:1.5 (1.3-82-g85f5a7b)
HWVAR:0 HWMOD:0
Probing IC... found.
TYPE:OTP RSP:0xE360 VPP=4.50 VDD=2.00
IC is supported: PMS171B ICID:0xE36
Реклама
Эиком - электронные компоненты и радиодетали
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 166
Зарегистрирован: Чт апр 28, 2016 22:33:47
Откуда: ARPA Internet

Сообщение ejsanyo »

Прикоснулся к этой вселенной через PFS154-S16.
Из плюсов:
  • Можно включить очень глубокий сон, в котором чип практически ничего не ест. Но потом можно его пробудить легко и быстро. В основном режиме потребление также гораздо меньше, чем у большинства современных контроллеров.
  • Диапазон напряжений питания весьма широкий, включая старые добрые 5В. Можно делать что-то батарейное без дополнительных стабилизаторов.
  • Обычный SOIC, дружественный к самопальным платам.
  • Чётко работают программные delay-и, похоже программный "ногодрыг" и есть основной сценарий его использования. :))
  • Ну и, конечно, копеечная цена во многих случаях решает.
Из минусов:
  • Весьма геморройный способ прошивки повышенным напряжением. Нужен и сложный программатор, и приходится учитывать всё это в построении схемы, если хотите сделать внутрисхемную зашивку. (перемычки по питанию, нюансы с ногой PA5). Но и плюс в этом тоже есть - не получиться просто так взять и софтово "окирпичить" чип.
  • Как следствие - полная неспособность к самопрошивке, встроенного блока EEPROM также нет. Вешайте внешний чип, если требуется.
  • И разумеется, никакой внутрисхемной отладки нет. Во всякие симуляторы, вроде Proteus-а, Падауки (пока что?) не завезли.
  • Периферия имеет кучу ограничений по использованию (которые придётся ещё и внимательно выискивать по даташиту), и в целом весьма убогая. Даже после Атмеги вам будет грустно.
  • Памяти мало, но в целом адекватно для ядра, периферии и позиционированию чипов на рынке.
Хоронили кваку - порвали три Rocket Launcherа.©
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 107
Зарегистрирован: Вт фев 28, 2017 08:13:31
Откуда: Свердловская обл.

Сообщение Zikon »

И зачем заморачиваться с этими чипами ?
Сейчас очень много азиатских Cortex-M0+ очень дешёвых.
Очень хороши младшие PUYA PY32F002B
Периферия подобна STM32F0 и программатор J-Link, DAP-Link
Среда разработки Keil, IAR, VSCode+EIDE и HAL / LL есть
Потребление в рабочем режиме на уровне STM32L0
Да и в режиме DeepSleep - 1.7 мкА - неплохо
( LSI + LPTIM в работе )
Корпуса - да, нет sot23-6, но
so8, so14, so16, qfn20, tssop20 - тоже неплохо

более старшие PY32F002A (F003 F030)
тоже недорогие и чип кристалл одинаковый
( что даёт плюшки для PY32F002A от PY32F030 )
более богатая периферия и различные корпуса до 32pin
Реклама
Друг Кота
Аватара пользователя
Сообщения: 6618
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

Отмечусь чтобы не потерялось.
Астролябия-сама меряет, было бы что мерять!!!
Грызет канифоль
Сообщения: 290
Зарегистрирован: Чт ноя 06, 2014 13:09:06

Сообщение viiv »

Zikon писал(а): Пт июн 26, 2026 11:50:34 И зачем заморачиваться с этими чипами ?
Мир - он разнообразный :-)
МК специфичный, - да. Задачи для него есть (по крайней мере, я его ставлю иногда. Зачастую на плату, где уже есть другой MCU. Можно вместо поставить 32-x битник? да, - часто, можно. Но зачем, если в конкретной задаче проигрывает по какому-то (или нескольким) параметрам: место на плате, потребление, ...
Ну нет Keil-а и других - мне не важно. Редактор - "обычный", сборка из командной строки.

ejsanyo писал(а): Пт июн 26, 2026 11:00:39 Прикоснулся к этой вселенной через PFS154-S16.
Я на флешовом "тренируюсь", а потом переношу в однократный, - это мой основной сценарий использования. Когда прошивка готова - записываю в программаторе (в ZIF панельке) и потом запаиваю в устройство. Соответственно, никакого внутрисхемного программирования.

ejsanyo писал(а): Пт июн 26, 2026 11:00:39 Даже после Атмеги вам будет грустно.
Атмега? атмега - "крутой" восьмибитник! :-) Там и gcc нормальный имеется, .... Старая только - появились конкуренты, которые "отбирают хлеб".
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 166
Зарегистрирован: Чт апр 28, 2016 22:33:47
Откуда: ARPA Internet

Сообщение ejsanyo »

Zikon писал(а): Пт июн 26, 2026 11:50:34 Сейчас очень много азиатских Cortex-M0+ очень дешёвых.
Послушать, так всё прям шоколадно с этими чипами. Но ведь и какие-нибудь недостатки, наверно, должны быть у них? :?
Хоронили кваку - порвали три Rocket Launcherа.©
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 166
Зарегистрирован: Чт апр 28, 2016 22:33:47
Откуда: ARPA Internet

Сообщение ejsanyo »

Ну ладно, расскажу ещё из странного по теме:
По крайней мере мои Падауки имеют непривычную маркировку - не сверху, а только на пузе, притом исключительно невнятную. Интересно, это у данного производителя всегда так? Получается, что когда вы встречаете очередную кетайскую поделку на контроллере с "затёртой" маркировкой, то оказывается, что это может быть и норма, и никогда этой маркировки не было! :)))
Ещё момент про 16-битный таймер: по крайней мере на PFS154 доступ к почти всей периферии сделан более-менее по современной классике - через регистры, хоть и в специальном адресном пространстве ввода-вывода. За исключением доступа к счётному регистру этого таймера, который делается через...специальные команды ядра ldt16 и stt16! :shock: Вы где такое раньше видели, чтобы специально для периферии в ядре был выделенный набор команд?! Я такое последний раз видел, разве что, в 8048 контроллерах и может ещё в каких-то додревних архитектурах. Основной головняк в том, что в SDCC даже в последней версии (на нынешний день), похоже, работа с этими командами не оформлена должным образом. Поэтому приходится изгаляться. Пока что у меня получилось сделать так:
Делаем глобальную переменную, причём запихиваем её по конкретному адресу ОЗУ. Причём гугль И-И утверждает, что она должна выравниваться по чётным адресам.

Код: Выделить всё

volatile __at(0x20) uint16_t T16C_current = 0;
Потом, когда надо, влепляем ассемблерную вставку, в которой параметром команды жёстко забиваем адрес, ранее занятый переменной:

Код: Выделить всё

//получаем данные таймера так, поскольку функция __sfr16 load недопилена в компиляторе
__asm
    ldt16 0x20
__endasm;
//всё. Содержимое таймера скопировано в T16C_current
А как вы решили для себя эту проблему?
Хоронили кваку - порвали три Rocket Launcherа.©
Потрогал лапой паяльник
Сообщения: 398
Зарегистрирован: Чт май 07, 2026 00:30:38

Сообщение Zapolyarny »

не обязательно же по адресу 0x20?
если нет, то:

Код: Выделить всё

 volatile uint16_t T16C_current __attribute__((aligned(2)));
....
__asm
    ldt16 T16C_current
__endasm;
Если, конечно, в SDCC выравнивание работает.

---
глянул документацию по SDCC, вроде, новые версии его разрешают упрощённую запись _asm_() ?
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 166
Зарегистрирован: Чт апр 28, 2016 22:33:47
Откуда: ARPA Internet

Сообщение ejsanyo »

Zapolyarny писал(а): Пн июн 29, 2026 15:36:31

Код: Выделить всё

 volatile uint16_t T16C_current __attribute__((aligned(2)));
....
Да, пробовал скормить компилятору этот атрибут, в разных формах. Постоянно говорит что Syntax error. В конце концов гугль И-И мне сказал, что якобы SDCC именно под Падауком его не поддерживает. :? Поэтому и вот так.
Такое

Код: Выделить всё

_asm_(ldt16 0x20);
тоже не ест.
Хоронили кваку - порвали три Rocket Launcherа.©
Потрогал лапой паяльник
Сообщения: 398
Зарегистрирован: Чт май 07, 2026 00:30:38

Сообщение Zapolyarny »

Похоже, что не только для этого микроконтроллера, а вообще в SDCC нет __attribute, заменено своими и aligned среди них нет.
Встал на лапы
Аватара пользователя
Сообщения: 107
Зарегистрирован: Вт фев 28, 2017 08:13:31
Откуда: Свердловская обл.

Сообщение Zikon »

8 бит контроллер и чтобы 16бит сразу прочитать/записать сделали отдельные команды, не стали заморачиваться с буферной защёлкой для фиксации половины 16бит счётчика как в других 8-ми битниках
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 166
Зарегистрирован: Чт апр 28, 2016 22:33:47
Откуда: ARPA Internet

Сообщение ejsanyo »

Добавлю ещё пару странных моментов:
Контроллер прерывания глупый: все прерывания валятся в один обработчик, без всяких приоритетов и тем более без вложений. Что прервалось - разбирайте по флагам сами.
Очень китайские ШИМ блоки: PFS154 имеет в себе аж 3 штуки таких! На первый взгляд - что-то вроде 11-битных таймеров с выходом ШИМ...или как будто не совсем 11? Курим в даташите пункт "Equations for 11-bit PWM Generator" и видим, что коэффициент пересчёта этого таймера задают лишь 10 бит. Но при этом длительность импульсов действительно задают 11 бит. При том младший бит входит в формулу с коэффициентом 0,5! Это вообще как?! :shock: Могу лишь предполагать, что наверно этот таймер, по сути, тактируется и фронтом, и срезом поступающих импульсов, происходит такое вот своеобразное "удвоение частоты". А в обработке потолка пересчёта выкинули младший бит...не знаю, чтобы немного схемотехнику компаратора упростить?
Хоронили кваку - порвали три Rocket Launcherа.©
Встал на лапы
Аватара пользователя
Сообщения: 107
Зарегистрирован: Вт фев 28, 2017 08:13:31
Откуда: Свердловская обл.

Сообщение Zikon »

ejsanyo писал(а): Пт июн 26, 2026 15:59:33
Zikon писал(а): Пт июн 26, 2026 11:50:34 Сейчас очень много азиатских Cortex-M0+ очень дешёвых.
Послушать, так всё прям шоколадно с этими чипами. Но ведь и какие-нибудь недостатки, наверно, должны быть у них? :?
Тоесть у Padauk - недостатков нет ?
А где взять официальный программатор ?
Или на ОЗОН купить за ~1000 р конструктор
(это единственный вариант сейчас )
И как вам такое вхождение в использование Padauk ?
и -20°С .. +70°С - это только дома использовать ?

Большинство клонов STM32 имеют те-же болезни.
Которые уже давно разжёваны и пережёваны!

PY32 программируется любым DAP-LINK от 100р
IDE - IAR,Keil,VSCode+EIDE
потребление очень низкое
и конечно зависит от включенных модулей периферии
да нет корпуса sot23-6
но есть dfn8 (3x2 e=0.5) или qfn16 (3x3 e=0.5)
и so8,so14,so16,essop10
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 166
Зарегистрирован: Чт апр 28, 2016 22:33:47
Откуда: ARPA Internet

Сообщение ejsanyo »

Zikon писал(а): Вт июн 30, 2026 08:03:21 Тоесть у Padauk - недостатков нет ?
Так вот тут, собсно, и пишем про них. Вот ещё например такой: все наверно уже привыкли, что таймеры с разрядностью побольше имеют аппаратный захват (input capture) по перепаду на какой-нибудь ноге или выходе компаратора скажем? В Падауки такой фишки не завезли, даже для 16-битного таймера. По крайней мере, в PFS154. Юзайте, полусофтовый захват через ноги внешних прерываний, коих тут две штуки максимум.
Но я это всё к тому, что и у АРМовых китайцев наверняка имеется масса своих приколов? Может, стоит создать отдельную ветку, посвящённую этой теме?
Хоронили кваку - порвали три Rocket Launcherа.©
Встал на лапы
Аватара пользователя
Сообщения: 107
Зарегистрирован: Вт фев 28, 2017 08:13:31
Откуда: Свердловская обл.

Сообщение Zikon »

ejsanyo писал(а): Вт июн 30, 2026 09:36:26 Но я это всё к тому, что и у АРМовых китайцев наверняка имеется масса своих приколов?
Самый большой прикол у китайцев это то, что
чипы PY32F002A / F003 / F030
имеют одинаковый чип внутри и
PY32F002A имеет всё "плюшки" от PY32F030
конкретно приколы PY32 вот тут
https://github.com/Xiamatsu/py32f002a_003_030
(пока сколько раскопал)

Шпаргалки также есть
https://github.com/Xiamatsu/MCU_Pinout

Другие азиатские АРМы
( та же Nation - так то сингапурская )
тоже исследую немного и там же на гите
параллельно раскопки публикую
и да - там много совсем не похоже на STM32
оригинальных и интересных
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 166
Зарегистрирован: Чт апр 28, 2016 22:33:47
Откуда: ARPA Internet

Сообщение ejsanyo »

А как насчёт поделиться наработками на основе этих "игрушечных" контроллеров? Вот, наконец, от меня вам пример работающей схемы . :))
Хоронили кваку - порвали три Rocket Launcherа.©
Встал на лапы
Аватара пользователя
Сообщения: 107
Зарегистрирован: Вт фев 28, 2017 08:13:31
Откуда: Свердловская обл.

Сообщение Zikon »

ejsanyo писал(а): Ср июл 01, 2026 21:54:55 А как насчёт поделиться наработками на основе этих "игрушечных" контроллеров? Вот, наконец, от меня вам пример работающей схемы . :))
Готовых устройств нет у меня.
Просто исследователь (в свободное время)
азиатских недорогих контроллеров.
Сравнение, небольшие тесты.

https://docs.google.com/spreadsheets/d/ ... sp=sharing

Многе уже присутствует на гите в разных репозиториях.

Привлекли сначало CH32V003 и новая архитектура RISC-V
но конкретно данный чип разочаровал сильно,
после знакомства с PY32F0xx.
Урезанный PY32F002B смотрится неплохо даже без DMA.
И это получилось первое вхождение в 32бит.
С STM32 так и не разбирался ранее, а теперь тоже исследую для сравнения.
Ответить

Вернуться в «Разные вопросы по МК»