Forum: Mikrocontroller und Digitale Elektronik CH32V003 / SPI und Gehäuse SOP-16


von Ralph S. (jjflash)


Lesenswert?

Weil ich mit meinem "Projekt" einer Doku gerade fertig geworden bin habe 
ich hier eine Frage an die CH32V003 Experten bezüglich des SPI.

Kann es sein, dass ich irgendetwas im Datenblatt übersehe, oder gibt es 
tatsächlich keine Möglichkeit im 16 pol. Gehäuse des Controllers den 
Clock des SPI auf irgendeinen Pin zu mappen?

Wenn der Clock nicht nach außen geführt wird, welchen größeren Nutzen 
hat die SPI-Schnittstelle dann? Hier hätte man dann auch MISO und MOSI 
weglassen können oder beim 16 pol. Gehäuse einen anderen Pin weglassen 
können (bspw. PC0 der nur ein GPIO ist) um dann an dieser Stelle den PC5 
mit clk des SPI aufzulegen.

Also: Kommt man "irgendwie" an den Clock des SPI im 16 pol. Gehäuse doch 
noch heran?

von Thomas Z. (usbman)


Lesenswert?

Ralph S. schrieb:
> Also: Kommt man "irgendwie" an den Clock des SPI im 16 pol. Gehäuse doch
> noch heran?

Das Datenblatt (V1.7) sagt auf der 2. Seite kein SPI für SO8 und SO16. 
Liegt wohl daran, dass der entsprechende PIN PC5 nicht rausgeführt ist.

von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

Thomas Z. schrieb:
> Das Datenblatt (V1.7) sagt auf der 2. Seite kein SPI für SO8 und SO16.
> Liegt wohl daran, dass der entsprechende PIN PC5 nicht rausgeführt ist.

... das ist die Tabelle, in der aufgeführt wird, was der V003 kann und 
in der Spalte SPI ist ein "-" angegeben. Das hatte ich zuerst nicht 
gesehen gehabt. Allerdings stimmts ja nicht so ganz. Geht man her und 
initialisiert den SPI und gibt dann etwas aus, erscheint auf der MOSI 
Leitung das gesendete Datum.

Das Forumsmitglied reirawb hatte mir einen Code zukommen lassen 
(herzlichen Dank an dieser Stelle) bei dem das Impulsmuster von WS2812 
LED's mittels SPI ausgegeben werden. Das funktioniert auch auf einem 16 
pol. Chip wunderbar.

Allerdings hätte es mich gewundert, wenn nicht, denn die werden für die 
unterschiedlichen Gehäuse nicht unterschiedliche Die's benutzen, zumal 
der Die selbst mehrere Bondflächen hat, sie Bild im Anhang.

Es erklärt nur nicht, warum WCH den PC5 nicht herausgeführt hat.
---------------------------
Außerdem hätte es ja sein können / kann es sein, dass durch irgendetwas 
undokumentiertes (was auch immer) der Clock doch gemappt werden kann, 
softwareseitig umgeleitet. Das ist ja die Anfrage hier.

:-( bisher sieht es so aus, als würde es nicht gehen.

von Vanye R. (vanye_rijan)


Lesenswert?

> Kann es sein, dass ich irgendetwas im Datenblatt übersehe,
> oder gibt es tatsächlich keine Möglichkeit im 16 pol.
> Gehäuse des Controllers den Clock des SPI auf irgendeinen
> Pin zu mappen?

Sagen wir mal so, ich bin zur selben Erkenntnis gekommen!

> Wenn der Clock nicht nach außen geführt wird, welchen größeren Nutzen
> hat die SPI-Schnittstelle dann?

Sie ist ja bei groesseren Gehaeusen verfuegbar. Allerdings haben sie 
beim SOT8 ja auch PD6/PA1 und PD5/PD4/PD1 jeweils zusammen gebondet. Ich 
finde das haetten sie beim SOT6 auch machen koennen. Aber vielleicht war 
nicht genug Platz fuer zwei Bonddraehte da. Oder sie haben es einfach 
vergessen.

> Also: Kommt man "irgendwie" an den Clock des SPI im 16 pol.
> Gehäuse doch noch heran?

Ich hab schonmal ueber legt ob man uber T1ETR eine Verbindung zu PC2 
schaffen kann. War aber erstmal nur eine schnelle Idee, der ich noch 
nicht gross nachgegangen bin.

> Allerdings stimmts ja nicht so ganz. Geht man her und
> initialisiert den SPI und gibt dann etwas aus, erscheint auf der MOSI
> Leitung das gesendete Datum.

In den Gehaeusen ist ziemlich sicher ueberall der gleich Chip drin.

Vanye

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Vanye R. schrieb:
> Oder sie haben es einfach vergessen.

Ein Grund, zum neueren CH32V002 zu wechseln, der hat im SO-16 SPI (steht 
jedenfalls so im Datenblatt V1.6 drin). Im SO-8 allerdings auch nicht.

Nebenbei hat der doppelt so viel RAM und einen 12-Bit-ADC (statt des 
10-Bit-ADC des 003).

Auch wenn die kleinere Nummer hier ein weniger leistungsfähiges 
"Sparmodell" suggeriert, ist das wohl eher das Gegenteil. Andererseits 
ist er wohl etwas langsamer, wenn ich den Thread, der seltsamerweise 
unter "Projekte&Code" eingestellt ist, richtig interpretiere.

Den größeren Bruder CH32V006 gibt es nicht mehr im SO-Gehäuse, da ist 
TSSOP/QSOP oder QFN die einige Wahl.

(Der Unterschied zwischen TTSOP und QSOP ist klein, QSOP ist knapp einen 
halben Millimeter schmaler und hat ein abweichendes Rastermaß von 
0.635mm statt 0.65mm)

von Vanye R. (vanye_rijan)


Lesenswert?

> Ein Grund, zum neueren CH32V002 zu wechseln, der hat im SO-16 SPI (steht
> jedenfalls so im Datenblatt V1.6 drin). Im SO-8 allerdings auch nicht.

Ich weiss, das neuere ist immer besser. Aber weil die so billig sind hab 
ich gleich mal 50Stk gekauft. Die muessen jetzt auch erst mal 
weggebastelt werden. .-)

Vanye

von Ralph S. (jjflash)


Lesenswert?

Vanye R. schrieb:
> Ich weiss, das neuere ist immer besser. Aber weil die so billig sind hab
> ich gleich mal 50Stk gekauft. Die muessen jetzt auch erst mal
> weggebastelt werden. .-)

schmunzeln muß: Das hat mich dennoch nicht davon abgehalten, den V002 zu 
ordern. Schlicht nur um zu sehen, um wievieles langsamer der dann im 
Vergleich zum v003 ist (ich werde dort dann das Apfelmännchen darauf 
laufen lassen).

Der 4 kB große RAM passt da dann super zu meinem PicoMon-Projekt.

Wenn es darum ginge, dass die Sachen die man hat, erst einmal 
weggebastelt werden müssen, herjeh, ich müßte min. 150 Jahre alt werden 
(oder so ähnlich): Ich habe noch über 150 Stck. PFS154 hier (wobei davon 
für ein Modeleisenbahnprojekt für einen ehemaligen Auszubildenden knapp 
über 50 Stück schon verplant sind - er wird viel zu löten haben - ).

Auch AVR hat sich einiges im Laufe der Zeit angesammelt welches ich wohl 
niemals verbasteln werde (vorzugsweise ATtiny2313 den ich einmal der 
Pinkompatibilität zu einem 89C2051 ganz toll fand): Daraus habe ich dann 
ein paar TinyUSB-Programmer gemacht, die ich dann auch nicht gebraucht 
habe und von daher verschenkt habe.

Ich glaube ich bin schon sehr "verpeilt" :-)

von Ralph S. (jjflash)


Lesenswert?

Vanye R. schrieb:
> Ich hab schonmal ueber legt ob man uber T1ETR eine Verbindung zu PC2
> schaffen kann. War aber erstmal nur eine schnelle Idee, der ich noch
> nicht gross nachgegangen bin.

So, einen Versuch habe ich jetzt gemacht und zwar:

- SPI Hardwareseitig initialisieren
- danach PC5 als Float-Input (funktioniert, da wohl im Die vorhanden) 
initialisieren
- Timerinterrupt mit 0,5µs Intervall
- im Interrupt PC5 abfragen und den Status auf einen beliebigen GPIO 
ausgeben

Das ganze funktioniert zwar, ist aber unterm Strich durch 0,5µs 
Intervall nicht wirklich schneller als ein Bitbanging-SPI (u.a. weil das 
Hardware-SPI eingebremst werden muß, damit der Interrupt das ganze auch 
mitbekommt)

Vielleicht funktioniert da mittels DMA etwas schneller, aber mit dem DMA 
des V003 stehe ich noch etwas auf "Kriegsfuß"

von Reinhard R. (reirawb)


Angehängte Dateien:

Lesenswert?

Vanye R. schrieb:
> Ich weiss, das neuere ist immer besser. Aber weil die so billig sind hab
> ich gleich mal 50Stk gekauft. Die muessen jetzt auch erst mal
> weggebastelt werden. .-)

Dann baust du damit Ansteuerungen/Treiber für WS2812 u.ä. per SPI, da 
brauchst du nur MOSI und kein SCK. Ich habe mal ein Beispiel angehangen, 
allerdings für den CH32X035. Sollte aber für die versammelten Experten 
kein Problem sein, das auf den CH32V003 anzupassen.
Und mich bitte nicht wegen dem Code verhauen, ich bin nicht so der 
C-Experte. Das Timing ist zwar etwas grenzwertig, aber es funktioniert 
mit 3 MHz SPI-Takt. Besser wären 4 MHz SPI-Takt, dazu müsste man aber 
IMO mit externem Takt arbeiten.

Reinhard

von Ralph S. (jjflash)


Lesenswert?

Grüß Dich Reinhard,

Reinhard R. schrieb:
> Ich habe mal ein Beispiel angehangen,
> allerdings für den CH32X035. Sollte aber für die versammelten Experten
> kein Problem sein, das auf den CH32V003 anzupassen.

Ich weiß, dass das nach Anpassen funktioniert, ich habe das angepasst 
und ausprobiert. Von dir habe ich ja den Code und die Idee.

und: stelle mal Dein Licht nicht unter den Scheffel, du bist selbst ein 
Experte.

von Reinhard R. (reirawb)


Lesenswert?

Halo Ralph,

danke für die Blumen, ich möchte in dem Zusammenhang mal den Wilhelm 
Busch zitieren:
https://www.wilhelm-busch.de/zitat/4389-2/
:-)))

Ich melde mich demnächst mal wieder.

Gruß Reinhard

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
Lade...