Der Gehäuseeinbau ist immer noch nicht abgeschlossen. Grund dafür ist, dass ich, wie im letzten Post kurz angesprochen, Probleme mit dem Display hatte. Da ich hierfür ständig am Messen war war ein Gehäuse nur hinderlich.
Das Fehlerbild war Folgendes: Wurde der TFT-Maximite mit einer normgerechten Versorgungssapnnung von 5V betrieben fing das Bild an zu springen oder zu zittern. Die Sprünge traten unregelmäßig ca. 2-20 mal in 10 Sekunden auf, aber immer exakt um eine Zeile nach unten. Bei 4,5V oder weniger war das Bild dagegen einwandfrei.
Das Problem war seit der ersten Inbetriebnahme vorhanden. Da ich anfangs aber eine geringere Versorgungsspannung auf der Platine hatte (siehe 2. Überraschung: USB-Verbindung funktioniert nicht) trat das Problem nicht in Erscheinung. Seit Verwendung der neuen Stromversorgung störte es aber massiv.
Durch Zufall bin ich bei segor auf die Beschreibung eines Bugfixes zum Thema Bildzittern gestoßen (http://www.segor.de/#/bauteilesaetze-a-module/bauteilesaetze/269-tft-maximite-bugfix). Das Phänomen wird dort nur diffus als „Bildzittern bei verschiedenen Stellungen des Abgleichreglers“ beschrieben. Meine Frage ob mit „Bildzittern“ „Bildsprünge um eine Zeile nach unten“ gemeint ist und ob das durch den Bugfix behoben werden würde wurde ich von segor an Carsten Meyer verwiesen. Dessen Antwort war kurz und knapp „Ja.“ kam allerdings erst auf ausdrückliches Nachhaken.
Der Bugfix ist ähnlich delikat in der Umsetzung wie die Reparatur von Pin 20 (siehe 3. Überraschung: Pin 20 funktioniert nicht). Wirken tut er auch. Das Bild springt nicht mehr ständig um eine Zeile nach unten, es ist dauerhaft um eine Zeile nach unten verschoben. So war das nicht geplant!!!
Da Nachfragen bei Carsten Meyer bis heute unbeantwortet blieben und in den einschlägigen Foren auch nichts Brauchbares zu finden war musst ich selbst kreativ werden. Anscheinend werden durch die Entlastung des Vsync-Pins die Flanken der Signale so weit verschliffen, so dass die Synchronisation nicht mehr sauber funktioniert.
Ein der möglichen Gegenmaßnahmen ist den neu eingefügten 1k Widerstand durch ein Poti zu ersetzen. Alternativ könnte man auch versuchen C6 zu verkleinern. Da ich kein Sortiment an SMD-Kondensatoren habe, habe ich erst einmal die erste Möglichkeit gewählt. Durch den zusätzlichen Freiheitsgrad wird die Justage nicht einfacher, letztendlich war sie aber von Erfolg gekrönt: Ein dauerhaft einwandfreies Bild, ohne temporär oder dauerhaft fehlende Bereiche, und das unabhängig von der Versorgungsspannung.
Bilder von der Lötaktion gibt es demnächst.
Leider konnte ich nicht klären, ob das Problem durch fehlerhafte Ansteuerung des Displays oder durch mangelhafte Auswertung der Signal vom Display verursacht wird.
Sonntag, 22. Juni 2014
Donnerstag, 12. Juni 2014
Kleiner Einschub: Spannungsversorgung
Ursprünglich wollte ich in dem Gehäuse noch 4 Mignon-Akkus unterbringen, um auch mal einen Betrieb abseits der Steckdose zu ermöglichen. Allerdings hat sich schon recht bald gezeigt, dass das wegen des beschränkten Platzes wohl nichts wird. Eine Alternative wäre ein LiPo-Akku gewesen, allerdings hätte der eine Reihe von Nachteilen mit sich gebracht (sehr empfindlich gegenüber Tiefentladung, aufwändige Überwachungs-Elektronik, ...). Außerdem wollte ich nicht ständig auf das Labornetzteil bzw. auf meine einzige Wandwarze mit 5V-Ausgang angewiesen sein. Also musste ein Spannungsregler her.
Da die Schaltung einen möglichst hohen Wirkungsgrad haben sollte (Akku-Betrieb!) wäre eigentlich ein Schaltregler das Mittel der Wahl gewesen. Allerdings sind die nicht unkompliziert aufzubauen. Und ein Fertigmodul hatte ich nicht zur Hand.
Normale Linearregler (78xx) benötigen nur sehr wenige Bauteile, verursachen aber von sich aus schon einen relativ hohen Spannungsabfall (2-3V) und verheizen dementsprechend unnötig viel Leistung. Und je höher die Eingangsspannung, desto schlechter der Wirkungsgrad.
Einen Kompromiss bieten die sogenannten lowdrop-Regler. Als Linearregler benötigen sie nur sehr wenige weitere Bauteile (meistens nur 2 Kondensatoren). Darüber hinaus liegt der von ihnen verursachte Spannungsabfall deutlich unter 1V, d.h. man erhält schon mit weniger als 8V saubere 5V. Aber die Spannungsdifferenz wird natürlich trotzdem vollständig in Wärme umgesetzt.
Meine Wahl fiel auf den L4940V5. Er verträgt bis zu 2A und bei 500mA reichen 5,2V um stabile 5V zu erhalten. Bei 300mA sind es sogar nur 0,14V Spannungsabfall. D.h. wenn man 5,0V als Eingangsspannung anlegt liegen am Ausgang immer noch 4,86V an. Das reicht für den TFT-Maximite noch aus um fehlerfrei zu arbeiten.
Mit nur zwei zusätzlichen Bauteilen hält sich der nötige Aufwand sehr in Grenzen. Dadurch kann die Schaltung auch schnell auf einem Stück Lochrasterplatine aufgebaut werden.
Da die Schaltung einen möglichst hohen Wirkungsgrad haben sollte (Akku-Betrieb!) wäre eigentlich ein Schaltregler das Mittel der Wahl gewesen. Allerdings sind die nicht unkompliziert aufzubauen. Und ein Fertigmodul hatte ich nicht zur Hand.
Normale Linearregler (78xx) benötigen nur sehr wenige Bauteile, verursachen aber von sich aus schon einen relativ hohen Spannungsabfall (2-3V) und verheizen dementsprechend unnötig viel Leistung. Und je höher die Eingangsspannung, desto schlechter der Wirkungsgrad.
Einen Kompromiss bieten die sogenannten lowdrop-Regler. Als Linearregler benötigen sie nur sehr wenige weitere Bauteile (meistens nur 2 Kondensatoren). Darüber hinaus liegt der von ihnen verursachte Spannungsabfall deutlich unter 1V, d.h. man erhält schon mit weniger als 8V saubere 5V. Aber die Spannungsdifferenz wird natürlich trotzdem vollständig in Wärme umgesetzt.
Meine Wahl fiel auf den L4940V5. Er verträgt bis zu 2A und bei 500mA reichen 5,2V um stabile 5V zu erhalten. Bei 300mA sind es sogar nur 0,14V Spannungsabfall. D.h. wenn man 5,0V als Eingangsspannung anlegt liegen am Ausgang immer noch 4,86V an. Das reicht für den TFT-Maximite noch aus um fehlerfrei zu arbeiten.
![]() |
Beschaltung des L4940V5 |
Mit nur zwei zusätzlichen Bauteilen hält sich der nötige Aufwand sehr in Grenzen. Dadurch kann die Schaltung auch schnell auf einem Stück Lochrasterplatine aufgebaut werden.
![]() |
Beschaltung des L4940V5 |
Sonntag, 1. Juni 2014
Firmware Update - V4.5
Vor drei Tagen hat Geoff Graham eine neue Version von MMBasic veröffentlicht. Die Version 4.5 bringt einige Neuerung und Bugfixes mit sich. Das zugehörige Changelog ist volle 1,5 Din A4 Seiten lang. Die meisten Neuerungen sind dem Micromite geschuldet.
Hier die wichtigsten Neuerungen in Kürze:
Der wichtigste Punkt ist wahrscheinlich die Syntax-Änderung bei den I2C- und 1wire-Befehlen. Die Änderungen sind so umfangreich, dass alte Programme, die I2C oder 1wire verwenden nicht mehr funktionieren. Geoff schreibt hierzu im Changelog ausdrücklich:
Das hört sich jetzt schlimm an, ist aber in der Realität nicht ganz so wild. Es haben sich größtenteils nur die Namen der Kommandos geändert, die Struktur ist gleich geblieben. Z.B heißt das Kommando um I2C zu aktivieren jetzt „I2C OPEN “ statt „I2CEN“ und „I2C WRITE“ ersetzt „I2CSEND“, d.h. größtenteils lässt sich das durch suchen-und-ersetzen anpassen.
Allerdings gibt es Ausnahmen:
Das update für den TFT-Maximite kann man übrigens hier herunterladen:
http://geoffg.net/tft-maximite.html
Gebraucht wird die Version ohne Bootloader, die im oberen Teil der Seite verlinkt ist.
Hier die wichtigsten Neuerungen in Kürze:
- Unterstützung für neue Hardware (z.B. Sony-kompatible IR-Signale decodieren und codieren, Ultraschall-Entfernungssensors HC-SR04, LC-Displays, einfache Matrix-Tastaturen, Drehencoder, ..)
- Syntax-Änderung der I2C- und 1wire-Befehle
- zahlreiche Bugfixe für den TFT-Maximite, darunter die Aktivierung der Pins jenseits der 20
Der wichtigste Punkt ist wahrscheinlich die Syntax-Änderung bei den I2C- und 1wire-Befehlen. Die Änderungen sind so umfangreich, dass alte Programme, die I2C oder 1wire verwenden nicht mehr funktionieren. Geoff schreibt hierzu im Changelog ausdrücklich:
"If you have an existing program that makes heavy use of the I2C protocol it might be worth not upgrading if you do not need any of the other features that this version offers."
„Wenn man Programme hat, die oft das I2C-Protokoll verwenden, kann es sich lohnen auf das Update zu verzichten wenn man nicht die eine oder andere neue Funktion braucht, die diese Version bietet.“
Das hört sich jetzt schlimm an, ist aber in der Realität nicht ganz so wild. Es haben sich größtenteils nur die Namen der Kommandos geändert, die Struktur ist gleich geblieben. Z.B heißt das Kommando um I2C zu aktivieren jetzt „I2C OPEN “ statt „I2CEN“ und „I2C WRITE“ ersetzt „I2CSEND“, d.h. größtenteils lässt sich das durch suchen-und-ersetzen anpassen.
Allerdings gibt es Ausnahmen:
- Im Master-Mode kann man keine Interrupts mehr definieren
- Das Empfangs-Kommando im Master-Mode erlaubt es nicht mehr vorher mit dem gleichen Kommando Daten zu senden. Dafür ist jetzt ein extra Sende-Kommando erforderlich.
Das update für den TFT-Maximite kann man übrigens hier herunterladen:
http://geoffg.net/tft-maximite.html
Gebraucht wird die Version ohne Bootloader, die im oberen Teil der Seite verlinkt ist.
Abonnieren
Posts (Atom)