HT16K33A mit CH32V003

#7876830
Lesenswert?

Nachdem mir ein (sehr nettes) Forummitglied den LED-Anzeigentreiber HT16K33A hat zukommen lassen habe ich nun mit diesem gespielt um zu sehen wie dieser funktioniert.

Zu allererst, das eingestellte Archiv hier:

  • funktioniert unter Linux
  • beinhaltet ein sehr abgespecktes CH32FUN Framework, weil das hier nur für einen CH32V003 gedacht ist (und die anderen Controller der CH32-Serie für mich untergeordnete Bedeutung haben, hier verwende ich dann lieber STM32)
  • benötigt einen systemweiten Compiler: riscv-none-elf-gcc
  • das Flashuploadprogramm minichlink (welches im originalen CH32FUN zu finden ist)
  • schöpft nicht alle Möglichkeiten des HT16K63 aus (weil ich keine 16-Segment LED-Anzeigen besitze und ich es irgendwie nicht mag, dass dieser Chip zum Einlesen von Tasten noch zusätzliche Widerstände benötigt), Ergo: Anzeigen sind machbar bis 8-stellige 7-Segmentanzeige
  • verwendet Bitbanging I2C-Routinen, damit das ganze leicht auf andere Mikrocontroller portierbar ist (natürlich auf STM32 und auch auf einem ATmega schon getestet).

Sollte wirklich Interesse von jemandem bestehen, der mit dem CH32V003 noch nichts gemacht hat und für diesen keinen Programmer besitzt (das war für mich anfangs ein Problem), kann ich eventuell einen Selbstbauprogrammer hier als "Projekt" einstellen, bei dem selbst ein CH32V003 zum Programmer wird und dieser Chip einmalig von einem Arduino Uno/nano oder einem ATmega mit USB2UART Bridge geflasht werden muß. Prinzipiell kann auch ein Arduino alleine als Programmer dienen, ist aber nicht empfehlenswert, da dieser für die max. 16 kByte Flash die der CH32V003 besitzt fast 2 Minuten benötigt bis diese geflasht sind.


Zu dem Projekt hier gibt es relativ wenig zu sagen, es ist ein *.h / *.c Dateipaar, das grundsätzliche Funktionen für den Betrieb des HT16K33A als 7-Segmentanzeigentreiber zur Verfügung stellt.

Wie das so oft der Fall ist, habe ich für die Dokumentation wieder einmal mehr Zeit benötigt, als für das Evaluieren und Codieren des Chips.

Die Dokumentation könnt ihr den Anhängen entnehmen.

Wer es brauchen kann: Viel Spaß damit.

Angehängte Dateien:
#7877030
Lesenswert?

Vanye R. schrieb:

Der LinkE kostet keine 5Euro. Wie kann es da ein Problem geben?

Vanye

Erstens Zuverlässigkeit AliExpress. Insgesamt 3 mal (in Worten DREI) bestellt, 3 mal kam ein WCH-Link (ohne "E") obwohl als solcher bestellt. Der letzte war nach 7 Wochen nicht da (immerhin Geld zurück).

Erst ein freundliches Forenmitglied hat mir einen verkauft. So... und bis ich diesen hatte, hatte ich mir einen Link selbst zusammengebastelt (der wohl auch keine 5 Euro gekostet hat... abgesehen davon dass das bis auf den 20 Cent Controller sowieso alles Hühnefutter war).

Deswegen... nicht um jetzt wieder mal Geld zu sparen, sondern schlichtweg um an ein so ein Ding ranzukommen. Außerdem (und das gefällt mir dann gut) geht dann auch gleich das virtuelle USB (unter Linux kein Problem) und von daher geht dann dort auch sofort ein USB-Bootloader, so dass es - wenn es nur ums flashen geht - gar keinen Programmer...

#7877161
Lesenswert?

Ralph S. schrieb:

Erstens Zuverlässigkeit AliExpress. Insgesamt 3 mal (in Worten DREI) bestellt, 3 mal kam ein WCH-Link (ohne "E") obwohl als solcher bestellt. Der letzte war nach 7 Wochen nicht da (immerhin Geld zurück).

Nicht beim erstbesten Aliexpress-Händler bestellen, sondern bei WCH höchstselbst.

https://wchofficialstore.aliexpress.com/store/1100367542

Die allerdings sind immer mal wieder zum Wochenende hin komplett ausverkauft und listen dann nur noch wenige Produkte (wie heute beispielsweise).

Montag oder Dienstag nachsehen.

#7877343
Lesenswert?

Harald K. schrieb:

Ralph S. schrieb:

Erstens Zuverlässigkeit AliExpress. Insgesamt 3 mal (in Worten DREI) bestellt, 3 mal kam ein WCH-Link (ohne "E") obwohl als solcher bestellt. Der letzte war nach 7 Wochen nicht da (immerhin Geld zurück).

Nicht beim erstbesten Aliexpress-Händler bestellen, sondern bei WCH höchstselbst.

https://wchofficialstore.aliexpress.com/store/1100367542

Die allerdings sind immer mal wieder zum Wochenende hin komplett ausverkauft und listen dann nur noch wenige Produkte (wie heute beispielsweise).

Montag oder Dienstag nachsehen.

Ist zumindest für mich Makulator, weil ich

  • zum einen jetzt einen WCH-LinkE habe und keinen weiteren brauche
  • ich zudem den Selbstbauflasher habe (und den benutze und nicht den originalen)
  • das ganze auf Konsolenebene außerhalb von MounRiver und einem modifizierten CH32FUN basiert
  • und ich hier ja eigentlich "nur" rudimentäre Funktionen für den HT16K33A hier vorstellen wollte

Aber wenn wir schon dabei sind: bisher hatte ich meine Sachen bei LCSC bestellt (und immer bekommen). Dort ist übrigens der "E" auch ausverkauft. Die Chips sind dort auch nicht teurer als bei AliExpress, aber der Versand bei Ali ist günstiger. In Ermangelung einer Kreditkarte (welche ich, so ich eine hätte, aber bei AliExpress nicht verwenden würde) kann ich immer nur mit PayPal bezahlen und sehe nicht, ob WCH PayPal akzeptiert, weiß das jemand, der her Kirnbichler vielleicht?

#7877421
Lesenswert?

Ralph S. schrieb:

kann ich immer nur mit PayPal bezahlen und sehe nicht, ob WCH PayPal akzeptiert, weiß das jemand, der her Kirnbichler vielleicht?

Da die Abwicklung über aliexpress erfolgt und die Paypal akzeptieren, und ich meinen diversen Krempel im "WCH Official Store" via aliexpress bestellt und via Paypal bezahlt habe, würde ich das mit einem klaren "doch" beantworten.

Ich wüsste nicht, daß einzelne aliexpress-Händler überhaupt einen Einfluss auf die Zahlungsabwicklung haben, das läuft afaik über aliexpress als Plattformbetreiber.

#7877500
Lesenswert?

Dort ist übrigens der "E" auch ausverkauft.

Warum ist das Teil eigentlich immer ausverkauft? Nutzt jetzt die ganze Welt die Chips von WCH?

Die Chips sind dort auch nicht teurer als bei AliExpress, aber der Versand bei Ali ist günstiger. In Ermangelung einer Kreditkarte (welche ich, so ich eine hätte, aber bei AliExpress nicht verwenden würde)

Warum willst du ausgerechnet das sicherste Zahlungsmittel wo du problemlos geklaute Kohle zurueckbuchen kannst ausgerechnet da nicht nutzen wo deine Paranoia am groessten ist?

Vanye

#7877506
Lesenswert?

Harald K. schrieb:

Da die Abwicklung über aliexpress erfolgt und die Paypal akzeptieren, und ich meinen diversen Krempel im "WCH Official Store" via aliexpress bestellt und via Paypal bezahlt habe, würde ich das mit einem klaren "doch" beantworten.

:-) danke für die Info, das werde ich doch glatt gleich ausprobieren.

Vanye R. schrieb:

Warum willst du ausgerechnet das sicherste Zahlungsmittel wo du problemlos geklaute Kohle zurueckbuchen kannst ausgerechnet da nicht nutzen wo deine Paranoia am groessten ist?

Das hat mit Paranoia überhaupt gar nichts zu tun, sondern damit, dass ich grundsätzlich Kreditkarten ablehne (egal wie sicher die sind): Bei jeder Bezahlung, bei jedem Kauf, egal was es ist, verdient eine Bank ohne irgendeinen Aufwand (außer einer der Pflege von Computerprogrammen) Unsummen an Geld mit, ohne auch nur einen Finger gerührt zu haben und schmälert bspw. in Gaststätten schlicht den Ertrag des Leistenden. Ich weiß: man kann mich auch ewig gestriger nennen, aber ich finde ein Bankenverhalten bisweilen schlicht unverschämt, aber am schlimmsten finde ich, dass sich keiner mehr darüber aufregt (ist alles OffTopic). Und ich weiß, dass es (leider) ohne Banken nicht mehr geht, aber alles muß man denen nicht wirklich in den Rachen werfen.

#7877557
Lesenswert?

Ralph S. schrieb:

Bei jeder Bezahlung, bei jedem Kauf, egal was es ist, verdient eine Bank ohne irgendeinen Aufwand (außer einer der Pflege von Computerprogrammen) Unsummen an Geld mit, ohne auch nur einen Finger gerührt zu haben

Das ist bei jedem anderen Zahlungsmittel außer Bargeld aber genauso.

Wer die "Girocard" (früher auch "EC-Karte" genannt) als Zahlungsmittel akzeptiert, wer Paypal als Zahlungsmittel akzeptiert, "Klarna", "ApplePay" und wie sie alle heißen - der zahlt dafür.

Du wirst aber keinen Briefumschlag mit Bargeld nach China schicken wollen, um damit zu bezahlen, und da ist eine Kreditkarte schon ganz praktisch. Anders als bei einer (im übrigen abartig teuren) Auslandsüberweisung hat man bei einer Kreditkartenzahlung auch noch die Chance, fehlgeleitetes Geld wiederzubekommen.

Das ist übrigens auch bei einer stinknormalen SEPA-Überweisung nicht besser, kaum hast Du die angestoßen, ist das Geld weg.

Du solltest also Deine (im Kern nicht unberechtigten) Bedenken, was Kreditkarten angeht, nochmal überdenken.

Kreditkarte bedeutet übrigens nicht, daß man damit "auf Pump" bezahlen und dann Kreditzinsen abdrücken muss; man kann Kreditkarten so konfigurieren, daß alles, was bis zur Abrechung aufgelaufen ist, auf einem Schlag vom Referenzkonto abgebucht wird. Das kostet dann keine Gebühren. Und das geht auch mit für den Nutzer komplett kostenlosen Kreditkarten (wie z.B. Barclaycard), die bekommen nur Transaktionsgebühren (die der Händler zahlt), aber die sind auch nicht höher als die anderer Zahlungsmittel.

Gut, wenn man meint, Amex oder "Diner's Club" nutzen zu müssen, dann ...

#7878196
Lesenswert?

Harald K. schrieb:

Das ist bei jedem anderen Zahlungsmittel außer Bargeld aber genauso.

Harald K. schrieb:

Anders als bei einer (im übrigen abartig teuren) Auslandsüberweisung hat man bei einer Kreditkartenzahlung auch noch die Chance, fehlgeleitetes Geld wiederzubekommen.

Das ist übrigens auch bei einer stinknormalen SEPA-Überweisung nicht besser, kaum hast Du die angestoßen, ist das Geld weg.

Du solltest also Deine (im Kern nicht unberechtigten) Bedenken, was Kreditkarten angeht, nochmal überdenken.

Alles Argumente die von einem Werbevertreter für Banken kommen könnten und ist fast schon eine wirtschaftspolitische Diskussion / Aussage, die es wert wäre in einem eigenen nichttechnischen Thread diskutiert zu werden. Alle reden von mehr Digitalisierung und noch smarter (gerade kam im MoMa ein Beitrag zur "Smartesten Stadt der Welt - Etteln in Deutschland) und ich bin der Meinung "weniger ist mehr". Ein führender Politiker (nicht mehr am Leben) sagte einmal: "Es ist unanständig, mit Geld mehr Geld als mit der Hände Arbeit zu verdienen". Nein, er war kein Kommunist, er war von der CDU.

Aber die Frage besteht dennoch: gehört eine solche Debatte in ein Thread über einen LED-Anzeigetreiber?

Harald K. schrieb:

Jetzt wird im "WCH Official Store" übrigens wieder der WCHLinkE gelistet, aber in begrenzter Stückzahl.

https://www.aliexpress.com/item/1005004881582037.html

:-) du scheinst ein richtiger Fan von WCH und CH32 zu sein ?!?

#7878202
Lesenswert?

:-) du scheinst ein richtiger Fan von WCH und CH32 zu sein ?!?

Davon wird man im Rahmen dieses Threads wohl ausgehen koennen. Du dagegen scheinst etwas merkwuerdig zu sein? Oder was soll uns die Satzendezeichenanhaeufung sagen?

BTW: Ich finden den CH32V003 immer besser je mehr man sich damit beschaeftigt!

  1. Preiswert. :)

  2. Debugger kostet nichts. (siehe oben)

  3. Die Geheimnisse der MCU sind mir eigentlich schietegal weil ich ja eh mit abstrahiertem C arbeite.

  4. Je laenger ich mit der Peripherie im 003 arbeite um so ausgereifter kommt sie mir vor. Die ist irgendwie fluffig und gut durchdacht. Erst recht in der Preisklasse.

  5. Es gibt einen speziellen Modie fuer die Verwendung einer Registerumschaltung fuer Interruptaufrufe damit keine Zeit fuer Push/Pulls verloren geht. Sowas kannte ich bisher nur von Renesas (SuperH) oder dem Z80.

  6. 1-Pin Debuganschluss, womit dann SOT8 sehr sinnvoll wird.

BTW: Eigentlich ist es vollkommener Quatsch ein 4LED Dingsbums über den HT16K33 anzusteuern. Man koennte auch vier doofe 7-Segs nehmen und jeder einen eigenen CH32V003 verpassen bei dem Kaufpreis und die tuscheln dann alle ueber I2C mit dir. :-D

Vanye

#7878492
Lesenswert?

Harald K. schrieb:

Ralph S. schrieb:

:-) du scheinst ein richtiger Fan von WCH und CH32 zu sein ?!?

Wer hat diesen Thread hier zu welchem Thema eröffnet? Das warst Du.

Das war doch überhaupt nicht negativ gemeint !!! Herjeh, dieses Forum und die Annahme und Vermutungen die man anstellt !

Ich finde es sehr gut (herrlich, schön etc. pp.) wenn man sich für etwas begeistern kann und darin Energie rein steckt.

Ich bin nur davon "überrascht" (ohne Wertung) dass sich hier wohl viele mit dem Thema CH32V003 auseinandersetzen, das ist bisher komplett an mir vorbei gegangen (vor lauter AVR und STM32).

Aus irgendwelchen Gründen fasziniert mich das Dingelchen auch sehr, so arg, dass ich die Projekte die ich machen möchte (und das werden immer mehr angefangene) derzeit zugunsten des V003 liegen lasse.

Sogar die Faszination für einen PFS154 ist deutlich zugunsten des V003 gesunken. Deshalb die Frage: warum muß alles negativ ausgelegt werden? Ist man in diesem Forum hier schon so weit, dass man hinter jedem Text einen "Angriff" versteht?

Vanye R. schrieb:

Du dagegen scheinst etwas merkwuerdig zu sein?

Ich bn ganz sicher "merkwürdig", aber sicherlich nicht in dem Sinne in dem du das verstehst.

Du brauchst auch nicht die Vorzüge des Chipfs aufzählen, die bekomme ich selbst mit und aus dem Grunde bin ich auch "fasziniert" davon, so sehr, dass ich mehr Zeit damit verbringe als ich eigentlich damit verbringen wollte. Nicht, weil ich nicht verstehe wie etwas funktioniert (obwohl ich wahrscheinlich einiges noch nicht verstehe) sondern davon, was man mit dem Dingelchen so alles anstellen kann.

In diesem Sinne: seht alles ein bisschen lockerer, vermutet nicht hinter jedem Busch eine Atombombe und habt eine schöne Zeit (auch hier im Forum)

By the way, je nachdem was man unter einem Fan verstehen mag hinsichtlich eines elektronischen Chips bin ich Fan von:

  • STM32F030
  • STM32F072
  • STM32F401
  • STM8S103
  • PFS154 und jetzt kommt es, denn jetzt eben auch:
  • CH32V003

... und noch einer ganzen Menge anderer, Nichtmikrocontrollerchips. Und nein, man sollte nicht versuchen, seine eigenen Spielzeuge als das Nonplusultra anzusehen und andere, die andere Spielzeuge haben, in irgendeiner Form angehen. Letztendlich ... sind es Spielzeuge und in diesem Sinne lasst uns zusammen spielen.

#7878519
Lesenswert?

Ist zwar off-topic, aber da anscheinend hier CH32-Interessierte beisammen sind: hat schon mal jemand ein Errata von irgendeinem CH32-Chip zu gesicht bekommen? Angefangen hatte ich mit dem CH32V003 und z.Zt. durchwühle ich die Beispiele des CH32x035; bin erstaunt, wie problemlos das Ganze vonstatten geht. Das einzige was mich stört ist die Tatsache, dass ich trotz intensiver Suche nirgends ein Errata von irgendeinem CH32-Chip finden konnte.

#7878648
Lesenswert?

Mehmet K. schrieb:

Das einzige was mich stört ist die Tatsache, dass ich trotz intensiver Suche nirgends ein Errata von irgendeinem CH32-Chip finden konnte.

Ich habe auch noch keines gesehen, wobei ich nur nach V003 und V006 gesehen habe, aber stört mich relativ wenig bis gar nicht, so lande das Teil das macht, was im Datenblatt steht. Bis jetzt, auch wenn das bisher nur ca. 2 Monate sind, hat unterm Strich das Ding immer das so gemacht wie es im Datenblatt gestanden hat. Wenn es etwas nicht getan hatte was es sollte, lag es an mir und nicht am Chip.

Irgendwo verstecken sich sicherlich Fehler im Datenblatt, aber für mich habe ich noch keine offensichtlichen gesehen. Wenn Du welche kennst, kannst Du die sicherlich hier im Forum posten und die Mitglieder die es betrifft werden Dir dankbar sein.

#7878654
Lesenswert?

Ralph S. schrieb:

Das war doch überhaupt nicht negativ gemeint !!! Herjeh, dieses Forum und die Annahme und Vermutungen die man anstellt !

OK, das war ein Missverständnis, möglicherweise durch Deine Satzzeichenhäufung bestärkt.

Mehmet K. schrieb:

hat schon mal jemand ein Errata von irgendeinem CH32-Chip zu gesicht bekommen?

Vom CH32V003 gibt es unterschiedliche Datenblattversionen. Aktuell herunterladbar ist V1.7, ich habe hier (zufälligerweise) eine V1.4.

Da hat sich nicht nur die Seitenzahl geändert.

Errata (der Singular davon übrigens heißt /Erratum/) aber werden im Datenblatt selbst nicht aufgeführt, da muss dann ein Diff-Tool herhalten.

Vielleicht funktioniert dieser Link hier ja:

https://draftable.com/compare/cbGOwsEpzojP

Der Anhang ist ein damit erzeugtes PDF

Angehängte Dateien:
#7878656
Lesenswert?

Vanye R. schrieb:

BTW: Eigentlich ist es vollkommener Quatsch ein 4LED Dingsbums über den HT16K33 anzusteuern. Man koennte auch vier doofe 7-Segs nehmen und jeder einen eigenen CH32V003 verpassen bei dem Kaufpreis und die tuscheln dann alle ueber I2C mit dir. :-D

Na ja, da bin ich nicht ganz bei Dir, denn: ein "4LED Dingsbums" kostet zum einen mehr als 4 einzelne. Es erfordert mehr Layoutaufwand als für einen LED-Treiber, außerdem benötigt es für jedes Digit dann weitere 8 zusätzliche Widerstände und 4 CH32V003 kosten auch mehr als ein LED-Treiber. Außerdem ist ein I2C-Slave aufzusetzen dann nicht mehr ganz so einfach (steht allerdings noch auf meiner ToDo-Liste für den CH32V003). Selbst in Hardware ist ein Master I2C beim V003 auch nicht so wirklich schön (weil er nicht meinen Gewohnheiten entspricht): Ähnlich einem STM32F0 will der V003 beim Versenden eines I2C-Telegrams vorher wissen, wieviele Bytes verschickt werden. Das ist natürlich kein Hexenwerk, passt aber leider nicht zu meinem allerersten vorgehen für I2C seit den MCS-51 Zeiten. Außerdem habe ich auch für mich so etwas wie einen "I2C-Explorer" bei dem ich jedes Kommando auf dem Bus einzeln erzeugen kann, angefangen von nur den Start- und Stopkonditionen über ein Senden mit oder ohne einlesen eines ACK, dasselbe für read.

Zudem habe ich das "4LED Dingsbums" für jemanden gemacht um aufzuzeigen, wie der HT16K33A anzufahren ist. Das hätte ich aufgrund des Bitbanging I2C auch mit jedem anderen Controller machen können. Wenn ich tatsächlich 7-Segmentanzeigen benutze, verwende ich hierfür allerdings entweder TM1650 oder TM1637 (die sind sogar noch billiger als ein V003).

Vanye R. schrieb:

  1. Je laenger ich mit der Peripherie im 003 arbeite um so ausgereifter kommt sie mir vor. Die ist irgendwie fluffig und gut durchdacht. Erst recht in der Preisklasse.

Mir gefällt vor allem der Prescaler des Timer2 exorbitant gut: Hier kann man wirklich jeden X-beliebigen Teiler einsetzen und ist nicht an eine 2er Potenz gebunden. Exotische Teilerverhältnisse, wie bspw. Takt geteilt durch 54528 werden klaglos akzeptiert (diesen Teiler habe ich verwendet um bspw. Kammerton A von 440 HZ zu erzeugen und im zugehörigen Interrupt muß dann nur noch ein Pin getoggelt werden um genau diesen Ton zu erzeugen). So einfach war das mit bisher noch keinem anderen mir bekannten Controller.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren