PY32F002 - chinesische ARM für 8 Cent von PUYA


Es gab schon einen ARM für 16 Cent, jetzt haben wir ARM für 8 Cent. Ja, acht.

PY32F002/PY32F003 von PUYA sind Mikrocontroller mit ARM Cortex M0+ Kern, der mit 24/32 MHz getaktet wird.
PY32F002 haben 20 kB FLASH, 3 kB RAM, SPI, USART, I2C, ADC, Timer... nichts zu meckern.
PY32F003 zusätzlich DMA und ein paar Timer mehr, außerdem gibt es eine größere Speicherauswahl.
Es gibt eine SWD-Schnittstelle, man braucht also keinen exotischen Programmierer.
Stromversorgung 1,7 V...5,5 V.
Gehäuse von Standard-SOPs über TSSOPs bis hin zu kleinen QFNs oder DFNs.
PDFs zum Herunterladen auf der chinesischen Version der Website:
https://www.puyasemi.com/cpzx3/info_267_aid_242_kid_235.html
Wir Klicken auf den orangefarbenen Ordner. Jeder hat das gleiche RAR mit einer Reihe von PDFs und anderen Hilfsmitteln. Manche auf Chinesisch, manche auf Englisch.
PY32F002:

PY32F003:

Beispiele für Gehäuse:




Hello world (Quellen beigefügt):

Blinkende LEDs und Text auf UART (9600 bps)
Tests:
Soweit mir aufgefallen ist, gibt es ein paar Probleme mit dem Zurücksetzen.
1. Beim Anschließen einer Taste an den RESET-Pin erscheint manchmal ein HardFault-Interrupt, wenn er gedrückt wird.
Der externe Reset kann deaktiviert werden, so dass das Problem eher gering ist. Einen externen Reset habe ich schon lange nicht mehr benutzt.
2. Das System kann ca. 2 Mal übertaktet werden, indem der "wait state" des Flashs auf 1 gesetzt und die Kalibrierung des Generators geändert wird.
Das einzige Problem ist, dass das Zurücksetzen "wait state" des Flashs zurücksetzt, und die Generatorkalibrierung wird nicht zurückgesetzt.
Wenn jemand übertakten möchte, nicht zurücksetzen.
Die Stromaufnahme im Schlafmodus liegt bei etwa 5 µA, als 8-Bit-Killer würde ich es also nicht bezeichnen. Obwohl preislich...

Programmierung:
Um Unterstützung für PUYA-Chips zu J-Link hinzuzufügen, muss man die ,,.FLM"-Dateien aus dem Anhang in das Verzeichnis ,,/opt/SEGGER/JLink/Devices/Puya/" hochladen und Folgendes zur Datei ,,JLinkDevices.xml" hinzufügen:
Zitat:<!-- -->
<!-- Puya -->
<!-- -->
<Device>
<ChipInfo Vendor="ST" Name="PY32F002Ax5" WorkRAMAddr="0x20000000" WorkRAMSize="0xC00" Core="JLINK_CORE_CORTEX_M0"/>
<FlashBankInfo Name="FLASH" BaseAddr="0x08000000" MaxSize="0x5000" Loader="Devices/Puya/PY32F0xx_20.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
<FlashBankInfo Name="OPT" BaseAddr="0x1FFF0E80" MaxSize="0x10" Loader="Devices/Puya/PY32F0xx_OPT.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
</Device>
<Device>
<ChipInfo Vendor="ST" Name="PY32F003x4" WorkRAMAddr="0x20000000" WorkRAMSize="0x800" Core="JLINK_CORE_CORTEX_M0"/>
<FlashBankInfo Name="FLASH" BaseAddr="0x08000000" MaxSize="0x4000" Loader="Devices/Puya/PY32F0xx_16.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
<FlashBankInfo Name="OPT" BaseAddr="0x1FFF0E80" MaxSize="0x10" Loader="Devices/Puya/PY32F0xx_OPT.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
</Device>
<Device>
<ChipInfo Vendor="ST" Name="PY32F003x6" WorkRAMAddr="0x20000000" WorkRAMSize="0x1000" Core="JLINK_CORE_CORTEX_M0"/>
<FlashBankInfo Name="FLASH" BaseAddr="0x08000000" MaxSize="0x8000" Loader="Devices/Puya/PY32F0xx_32.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
<FlashBankInfo Name="OPT" BaseAddr="0x1FFF0E80" MaxSize="0x10" Loader="Devices/Puya/PY32F0xx_OPT.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
</Device>
<Device>
<ChipInfo Vendor="ST" Name="PY32F003x8" WorkRAMAddr="0x20000000" WorkRAMSize="0x2000" Core="JLINK_CORE_CORTEX_M0"/>
<FlashBankInfo Name="FLASH" BaseAddr="0x08000000" MaxSize="0x10000" Loader="Devices/Puya/PY32F0xx_64.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
<FlashBankInfo Name="OPT" BaseAddr="0x1FFF0E80" MaxSize="0x10" Loader="Devices/Puya/PY32F0xx_OPT.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
</Device>
Kommentare
Kommentar hinzufügenWo kann man sie kaufen? [Mehr erfahren]
https://www.lcsc.com/products/Microcontroller-Units-MCUs-MPUs-SOCs_11329.html?keyword=py32f0 [Mehr erfahren]
Daher bin ich überrascht, dass alle chinesischen "Spielzeuge" immer noch auf modernen 51er-Versionen sind. Bezüglich chinesischer Schaltungen, weiß vielleicht jemand wie es mit Kompatibilität aussieht,... [Mehr erfahren]
Anscheinend gehen sie davon aus, dass man gegen Spatzen keine Kanonen verwenden soll (Es gab schon mal Aktion mit Spatzen). [Mehr erfahren]
Weil 51er für 4 Cent sind, nicht für 8 ;) und sie haben Programme, die seit Jahren fertig sind. [Mehr erfahren]
Schade, dass solche Mikrocontroller nicht bei ali erhältlich sind. Wenn ich nur diesen Mikrocontroller mit lscs bestellen würde, wäre es immer noch billiger, etwas auf dem lokalen Markt zu bekommen. [Mehr erfahren]
Es gibt immer mehr ARM oder RiscV, aber 8-Bit für 2 Cent werden wohl nicht verschwinden. Es gibt PY32F003, nur der Preis ist irrational. Ich bestelle meistens mit Leiterplatten, dann bekomme... [Mehr erfahren]
Jemand hat vor 20 Jahren ein Programm für Spielzeug geschrieben und verwendet es einfach weiter. Es ist eine Frage der Zeit und sie werden es auf ARMs tun. Änderungen finden vor unseren Augen statt,... [Mehr erfahren]
Hoffen wir, obwohl angesichts der letzten Nachrichtenflut, wie ChatGPT Programme auf der Grundlage einer verbalen Beschreibung ausspuckt, verwirrt sein können, ob alles in die gute Richtung geht. In... [Mehr erfahren]
Das ist ein großer Vorteil. Bei vielen Lösungen sind die Verrenkungen, die zum Ausführen der Umgebung erforderlich sind, ein Hindernis bei begrenzter Zeit. Schön, dass sie diesen Weg gehen :) [Mehr erfahren]
Wo kann man das kaufen und wie viel? [Mehr erfahren]
Dies ist ,,kostenlos" durch die Verwendung des Cortex M-Kerns. Es hatte keinen Sinn, etwas Eigenes zu erfinden, also haben wir die Kompatibilität kostenlos erhalten. Kürzlich wurde ich Besitzer von... [Mehr erfahren]
In 20 Jahren diktieren Sie die Beschreibung auf Ihr Smartphone und erhalten nach einer Woche ein fertig montiertes und programmiertes Schaltung. Mir wird übel. [Mehr erfahren]
Vielleicht nicht in 20 Jahren, sondern in 10 Jahren. Und zwar nicht nur eine fertig montierte Schaltung, sondern möglicherweise das ganze Gerät mit einem auf einem 3D-Drucker gedruckten Gehäuse ;) ... [Mehr erfahren]
@piotrgo, welche Umgebung oder SDK verwenden Sie, um diese PUYAs zu entwickeln? Ich würde auch gerne mit ihnen spielen :) [Mehr erfahren]
Einfacher Editor mit Syntaxhervorhebung und mehreren Karten. Es passt zu allem. Ich hatte so viele verschiedene Chips probiert, dass ich mich daran gewöhnt hatte. Außerdem GCC/SDCC oder was auch immer... [Mehr erfahren]
VSCode funktioniert recht gut mit dem Cortex Debug-Plugin, der richtigen Konfiguration und OpenOCD. [Mehr erfahren]
Wie ist die Kompatibilität solcher Programme? Ich verstehe, dass "Hex" nicht funktioniert, aber mit dem Quellcode reicht es aus, ihn mit "chinesischen Tools" zu kompilieren? [Mehr erfahren]
Ich behalte es jetzt einfach im Auge. Ich habe ein GD32, aber noch keine Zeit es zu testen. Soweit ich weiß, sollte in den meisten Fällen eine für STM32 kompilierte Binärdatei auf einem chinesischen Ersatz... [Mehr erfahren]