PY32F002A (и другие от PUYA)- чудо микроконтроллер

теперь по прошивке PY32:
Доступно два варианта, первый - defaul isp circuit, то есть через встроенный загрузчик, распиновка:

USB2SERIAL            PY32F0xx
+--------+      +-------------------+
|     RXD| <--- |PA2 or PA9  or PA14|
|     TXD| ---> |PA3 or PA10 or PA15|
|     VDD| ---> |VDD                |
|     GND| ---> |GND                |
+--------+      +-------------------+

Подробности тут:

Это теория? Ведь 002 у вас нет, а 003 не компилируется! :thinking:
P.S. pip install puyaisp :scream: Ой, всё!

с чего это? в IDE нет, а сmake нам на что?

PS ты бы хоть в папку тулзы глянул, увидел, что там используется AirISP

Во-первых: у меня аллергия на линукс, а во-вторых - енту эйру уже устанавливал(увеличив папку ардуины ещё на пару гигов) - нуеё нафиг :slightly_smiling_face:

зачем, для заливки через IDE всё необходимое есть в аддоне…
Собирать можно и в винде mingw64 для этого есть, а рабочий аддон для этого у уважаемого IOSetting

Получается практически что и в IDE - используем любимый текстовый редактор,
PS знакомые программисты никаких кейлов хирейлов не используют (тех кого знаю)

Мне MINGW32 хватило понять, что никто в этом не разбирается :grinning_face:

плата относительно недорого,10 чипов по 25 рублей

2 лайка

Подитог:

Опробована масса различных программаторов DAPLINK, кроме сделанного на базе RP2040 все работают, понравился Arm DAPLINK CMSIS-DAP сделанный из блюпила с замапленной разводкой, выход на стандартные пины SWD ))) (прошил и имеем готовый DAPLINK, паять ничего не надо)

По PY32, их конечно мешок, но все с включенной защитой от чтения, ERASE средствами pyocd не работает, надо почитать документацию возможно ли это в принципе.
Жду программатор JLINK V9.

PS надо почитать про openocd, может она умеет снимать защиту от чтения.
PPS @ЕвгенийП плохого не посоветовал )))
PPPS зато интересно, вспомнилось как программировал PT на самодельном программаторе на тумблерах, экзотика…

Connecting to target via SWD
Found SW-DP with ID 0x0BC11477
DPv0 detected
CoreSight SoC-400 or earlier
Scanning AP map to find all available APs
AP[1]: Stopped AP scan as end of AP map has been reached
AP[0]: AHB-AP (IDR: 0x04770031, ADDR: 0x00000000)
Iterating through AP map to find AHB-AP to use
AP[0]: Core found
AP[0]: AHB-AP ROM base: 0xE00FF000
CPUID register: 0x410CC601. Implementer code: 0x41 (ARM)
Found Cortex-M0 r0p1, Little endian.
FPUnit: 4 code (BP) slots and 0 literal slots
CoreSight components:
ROMTbl[0] @ E00FF000
[0][0]: E000E000 CID B105E00D PID 000BB008 SCS
[0][1]: E0001000 CID B105E00D PID 000BB00A DWT
[0][2]: E0002000 CID B105E00D PID 000BB00B FPB
Memory zones:
  Zone: "Default" Description: Default access mode
Cortex-M0 identified.
J-Link>erase
No address range specified, 'Erase Chip' will be executed
'erase': Performing implicit reset & halt of MCU.
Reset type: NORMAL (https://wiki.segger.com/J-Link_Reset_Strategies)
Reset: Halt core after reset via DEMCR.VC_CORERESET.
Reset: Reset device via AIRCR.SYSRESETREQ.
Erasing device...
Erasing done.
J-Link>

Есть информация и на гитхабе (ихнем)

Для не умеющих пользоваться поиском, к примеру openocd настроенный - https://gitee.com/puya-semiconductor/tools-and-software/raw/master/PY32_GCC/openocd-0.12.0.zip

PS ведро чипов оказалось вполне живые, сокет sop8, доступно 64 флэша 8 RAM, 5 пинов, Владимир Мединцев на аналогичной крохе от STM запускал дисплей по SPI, по сути attiny но с большими возможностями, есть в корпусах ssop20, совсем мелкота с большим числом доступных пинов, наверно подойдёт @lilik под 2000 диодов ws2812

  py32f003.dap info
AP # 0x0
                AP ID register 0x04770031
                Type is MEM-AP AHB3
MEM-AP BASE 0xe00ff003
                Valid ROM table present
                Component base address 0xe00ff000
                Peripheral ID 0x04000bb4c0
                Designer is 0x23b, ARM Ltd
                Part is 0x4c0, Cortex-M0+ ROM (ROM Table)
                Component class is 0x1, ROM table
                MEMTYPE system memory present on bus
        ROMTABLE[0x0] = 0xfff0f003
                Component base address 0xe000e000
                Peripheral ID 0x04000bb008
                Designer is 0x23b, ARM Ltd
                Part is 0x008, Cortex-M0 SCS (System Control Space)
                Component class is 0xe, Generic IP component
        ROMTABLE[0x4] = 0xfff02003
                Component base address 0xe0001000
                Peripheral ID 0x04000bb00a
                Designer is 0x23b, ARM Ltd
                Part is 0x00a, Cortex-M0 DWT (Data Watchpoint and Trace)
                Component class is 0xe, Generic IP component
        ROMTABLE[0x8] = 0xfff03003
                Component base address 0xe0002000
                Peripheral ID 0x04000bb00b
                Designer is 0x23b, ARM Ltd
                Part is 0x00b, Cortex-M0 BPU (Breakpoint Unit)
                Component class is 0xe, Generic IP component
        ROMTABLE[0xc] = 0x00000000
                End of ROM table

>

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

   // PORTA mapped to VPORT0
   // PORTC mapped to VPORT1
PORTCFG.VPCTRLA=0x20;
PORTCFG.VPCTRLB=0x31;  
    VPORT0.DIR =0xFF;
    VPORT1.DIR =0xFF;

Так вот, когда работал с tft дисплеями, заметил одну особенность. Если писать в виртуальный порт, то скорость появления сигналов на физическом была в раза три выше, чем если просто писать в физический. Как это работает так и не понял, может Евгений пояснит.

Я ещё не начал осваивать Xmeg-и, лишь примеряюсь. Полистал вот даташит.
Иногда просто “Нано” не хватает.

Могу лишь предположить, что , возможно, используются разные инструкции . В одном случае запись в виртуальный порт - это как запись в регистр, выполняется быстрее.
Если есть возможность - посмотреть , что получается на асме, и сравнить.

А что не хватает в “Нано” что есть в XMega?

Мне часто не хватает скорости, 16МГц - бывает маловато.
Ещё иногда не хватает производительности - деление медленное.
Опять же 16бит пошустрее считать будут
АЦП тоже получше

А так, ещё много чего есть, что я ещё не использовал нигде. К примеру DMA - пррямой доступ к памяти…

Здначицца пора переходить на STM(кто перешёл уже к AVR не вернулся) :melting_face:

как бы не было поздно))

Ну, не знаю. Сложноват пока для меня. Не интересно " в тёмную" юзать.))
Да и сверх задач нет. Ничего супе-пупер сложного я не делаю.

я бы не был столь категоричным. ничего достойнее проекта @dimax на STM так и не появилось

Мелкие “осцилографы” на них, а так, да, сложнее в изучении. Но ведь не здряж китайцы сначала всё делали на STM, потом на копиях, а вот теперича уже на своих собственных микроконтроллерах.

на этом форуме, а вообще наверное есть что-то достойное…

Добавлю тут ссылку на прошивку разных чипов через UART

И инструменты с инструкциями от OPENPUYA

По переделке адаптеров разных типов в разные типы наиболее полно здесь!

Программатор отладчик Jlink из блюпила

CubeProgrammer с сайта производителя

1 лайк

Что-то? https://aliexpress.ru/item/1005001321192613.html Думается победитель по всем номинациям! Контроллер(ранее STM), реле, дисплей, датчик, разъёмы, кнопки, рассыпуха, плата и всё енто за 1-1.5 бакса.