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?
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.
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.
> 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
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)
> 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
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" :-)
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ß"
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.