Nach dem STM8S105 Prototype Board (siehe hier) folgt nun das STM8S003-Board.
Auch hier wollte ich die Pins nach Möglichkeit nach Funktion herausziehen. Außerdem hatte ich noch einige RGB-LED im PLCC-Design herumzuliegen. Auch hier wird ein Resettaster vorgesehen, Quarz-Bestückung möglich, ein Encoder-Anschluss, I2C, Analog-Eingänge, eine serielle Schnittstelle und natürlich SWIM/NRES zum Programmieren.
Das Layout wurde diesmal zu oshpark geschickt, da kleine Layouts dort signifikant billiger sind.
Leider wurden bei der Produktion die Bezeichnungen für die Stiftleisten (value) nicht mitgedruckt. Das war mein Fehler, aus Faulheit habe ich die BRD-Datei geschickt, statt die Gerber-Dateien zu erstellen.
Ich hatte schon lange vor, mir ein Prototype-Board auf Basis eines STM8S zu schaffen. Da ich mit dem STM8S105 schon Übung hatte, (siehe Weihnachtsbaum) war dies der erste Kandidat dafür.
Die Anschlüsse sollten nach Funktion geordnet auf Stiftleisten herausgeführt werden. Eine Resettaste sollte vorhanden sein, es sollte die Möglichkeit bestehen, eine separate analoge Speisespannung zuzuführen und ein externer Quarz sollte bestückbar sein, I2C mit Pullups und mehreren Anschlüssen, eine serielle Schnittstelle, eine Display-Schnittstelle, SPI-, PWM-, und Analog-Ports sowie SWIM/NRES als Programmierschnittstelle.
Die Leiterplatten wurden bei Elecrow gefertigt, siehe Fotos.
Die Platinen von Oshpark (18.08.2016) und Elecrow (16.08.2016) sind da, es kann losgehen mit dem Displaymodul.
Der silkscreen ist leider verpfuscht. Ich habe aus Bequemlichkeit die Eagle-Dateien geschickt, so dass der Hersteller auch die tnames (Kurznamen z. B. JP1 o.ä.) mitgedruckt hat, eigentlich sollten es nur die tvalues (Bauteilewerte) und die tplaces (Umrisse der Bauteile) sein.
Es folgt die teilbestückte Platine, am schwierigsten ist die Bestückung des HT1621B, wobei nicht das Löten (mit breiter meißelförmiger Spitze, viel Flußmittel und zügigem Überstreichen) schwierig ist, sondern die richtige Platzierung und Fixierung des Chips:
Leider habe ich erst jetzt gesehen, dass schon jemand vor mir praktisch genau diese Platine gebaut hat:
Der HT1621B reicht gerade noch aus, um dieses Glas mit 4 Commons und 32 Segmenten anzusteuern.
Besonders erklärungsbedürftig ist die hierfür konstruierte Hardware nicht, man schließt alle COM-Anschlüsse des HT1621B an die passenden Pins des Displays. Die Segmente 1 .. 16 werden an die Segmentanschlüsse 0 bis 15 des HT1621B angeschlossen, die Segment 32 bis 17 an die Segmentanschlüsse 16-31.
Letzteres ist bewußt in umgekehrter Reihenfolge angeordnet, um die Programmierung zu vereinfachen. Durch die gespiegelte Reihenfolge werden nämlich die Segmente im Speicher des HT1621B in derselben Reihenfolge angeordnet wie die Segmente 1 bis 16. Näheres verrät das Datenblatt des VIM 878 bei analytischer Betrachtung. 😉 (siehe auch meinen Beitrag vom 25.06.2016)
Dieses Mal habe ich auch noch den Buzzer-Anschluß (JP2) mit vorgesehen, für alle Fälle.
Schaltplan:
Layout:
(bestellt am 31.07.2016 bei oshpark -3 Stück- und am 02.08.2016 bei elecrow -10 Stück-)
Gestern habe ich die neuen Platinen für den STM32F030-breakout erhalten. An der Schaltung wurde nichts geändert, lediglich das Layout wurde verbessert.
Einen kleinen Schönheitsfehler im Bestückungsdruck gibt es aber auch hier: C3 muss ein 100nF Kondensator sein, C1 ein 4,7µ Kondensator, denn der Stützkondensator sollte näher am Pin sein. Im Schaltplan ist es genau umgekehrt gezeichnet.
Die Adapterplatine kam schließlich Mitte August an, wurde bestückt und kurz getestet. Leider geriet das Projekt etwas in Vergessenheit. Hier jetzt das erste Bild von der „Hochzeit“ mit einem WD-T1703L. Zum allerersten Testen wurden lediglich die Commons und drei Segmentpins angeschlossen. Infos zum Display WD-T1703L finden sich hier: WD-T1703L-7ELNa
Weitere Bilder und Testergebnisse folgen später.
Ergänzung:
Der Aufbau wurde noch etwas geändert:
Lochrasterplatte fiel weg
aus R=10 kOhm (103) wurde R=1 kOhm (102) für besseren Kontrast
Die Verkabelung der Beleuchtung mit zwei weißen China-3mm-„strawhat“-LED ist auf den Bildern noch sehr provisorisch, auch das habe ich später geändert:
Gesteuert wird mit einem chinesischen Arduino-Nano-Clone (im Hintergrund zu sehen) und einem Arduino-Sketch.
Heute ist der Auftrag zur Fertigung der Leiterplatten an ITEAD herausgegangen.
Das Projekt ist eine statische LED-Ansteuerung für 6* 8 LED für einen ca. 37 cm großen Weihnachtsbaum aus Holz. Die neue Platine selbst ist 9 cm x 2,5 cm groß und verschwindet komplett hintern Weihnachtsbaum. Es gibt sieben weiße „Kerzen“, die heftig flackern sollen und bunte Lichterketten mit insgesamt 37 LED, die durch gelegentliches, zufälliges An- und Ausgehen die Bewegungen von Ästen simulieren sollen.
Der HT1621B ist derzeit günstig (0,68 €/Stk. bei meiner Bestellung im Juni) bei Ebay zu bekommen. Hierbei handelt es sich um einen seriell ansteuerbaren LCD-Controller mit max. 4 Commons und max. 32 Segmenten.
Damit ist er ideal brauchbar für die LCD-Gläser aus dem LCD/LED-Sortiment von Pollin. Das Gehäuse ist etwas gewöhnungsbedürftig für einen Bastler, denn es ist ein SSOP48 mit 0,64 mm Pinabstand.
Leider gibt es bei Ebay dafür keine fertigen Adapter. Deshalb habe ich mir heute bei ITEAD eine selbstentworfene, universelle, auf der Applikationsschaltung aus dem Datenblatt
basierende Adapterplatine bestellt. Sämtliche Common-Anschlüsse und sämtliche Segmentanschlüsse wurden im DIL-Raster herausgeführt. Die serielle Schnittstelle zum Mikrocontroller wurde Arduino-like quer zur DIL-Reihe angeordnet. Damit ist die Platine auch Steckbrett-tauglich. Die Leitungsführung ist nahezu vollständig einseitig. Damit ist sie prinzipiell auch im Heimlabor herstellbar, wenn man die Chemie gut beherrscht. (Also nicht von mir. 😉 ) Um die Preisstufen von ITEAD auszulasten, wurden die Produktionsdaten als zweifacher Nutzen erstellt.
Heute ist die Bestellung an ITEAD herausgegangen bezüglich des selbstentwickelten Boards.
Technisch ist es nicht optimal und nicht sehr gut, aber zumindest eine funktionierende Variante. Ich hatte keine Lust mehr, das noch zu verbessern. 😉 Wenn sich im Umgang damit weitere Anforderungen ergeben, werde ich das Design ohnehin noch mal ändern. Außerdem wollte ich unbedingt das mit dem „Nutzen-erstellen“ mal ausprobieren, es ist also ein 5 cm x 10 cm Board mit 6 Einzelstücken drauf. Jetzt bin ich gespannt auf das Ergebnis.
Meine Prämissen:
Die Platine sollte nicht größer als ein 20 poliger TSSOP-DIL-Adapter sein. (Ist sie jetzt doch aufgrund des für die Auftrennung notwendigen Platzes zwischen den einzelnen Platinen und der Umgehung der Pinreihe auf beiden Seiten mit je einem Signal sowie der links und rechts zu weit hinausgeschobenen Bauteile, siehe Layout – sicher noch optimierungsbedürftig)
VDDA sollte wahlweise vom DIL-Pin oder aus VDD kommen. Deshalb ist hierfür eine Lötbrücke vorgesehen. Die Gewinnung aus VDD ist nicht datenblattkonform, denn dieses fordert, dass VDDA vorher da ist und stets höher oder gleich VDD sein soll.
Eine weitere Lötbrücke ist gedacht für die Auswahl des Bootmodus. (boot0 high or low) Über den notwendigen Wert der Widerstände bin ich mir noch unsicher. Reicht ein „weak Pullup/Pulldown“ oder müssen sie „strong“ (= mehr Stromverbrauch) sein?
Einen separaten SWD-Stecker habe ich aus Platzgründen bewusst nicht vorgesehen, da diese Signale problemlos über die DIL-Reihe abgreifbar sind.
Auf einen RESET-Taster habe ich aus Platzgründen verzichtet. Mal sehen, ob ich das bereue. 🙂
Auf groundplanes (Eagle: Polygon) habe ich bewusst verzichtet, weil mit maximal 8 MHz keine wirklich problematischen Signale auf der Platine laufen. (obwohl ich mir gerade nicht mehr so sicher bin, ob das Weglassen klug ist)
Ich habe 1mm Platinendicke gewählt, weil so der Nutzen besser trennbar ist. (Hoffe ich zumindest)
Auf das Onlinestellen der Eagle-Dateien verzichte ich mal, da das Design noch lange nicht ausgereift ist.