Ich habe in der Vergangenheit einige Sachen mit USB-Schnittstelle gebastelt, und es werden bestimmt noch mehr. Zwischendurch habe ich mir gewünscht, einen direkten Blick auf die Kommunikation werfen zu können. Jetzt erfahre ich zufällig dass Wireshark das kann. Sehr hilfreich.
Schlagwort: Mikrocontroller
Ich bin ätzend!
Tja, die Überschrift klingt komisch, hat mir aber besser gefallen als ‚Mein Solarium und ich‘. Obwohl letzteres auch gepasst hätte. 
Nachdem ich mich jetzt mehrere Jahre davor gedrückt und lieber mit Lochrastermaterial gebastelt habe, habe ich mich seit anderthalb Wochen intensiv mit dem Ätzen von Platinen beschäftigt. Erst so versucht, dann eine Ätzanlage gebaut. Gestern habe ich das erste Ergebnis zusammengelötet, und es hat auf Anhieb funktioniert.
Meine Erfahrungen damit habe ich auf der Schatenseite verewigt. Was die gezeigte Platine tut wird später in einem separaten Eintrag beschrieben, damit ist die dann auch als ‚Metaprojekt‘ fertig.
Armbanduhr zum selber löten
Ich trage keine Armbanduhr, und die uWatch trägt auch ziemlich auf. Trotzdem wird die an Coolness höchstens noch von Woz‘ Nixie-Armbanduhr übertroffen. 
Parallax Propeller
Wenn ich irgendwann mal was basteln möchte was mehr Rechenleistung braucht als ein ATmega bietet denke ich mal über eine ARM-CPU nach. Dachte ich. Gerade habe ich einiges über den Propeller von Parallax gelesen. Darauf gekommen bin ich über die YBox2 von Lady Ada.
Der Parallax ist ein Controller mit acht unabhängigen RISC-CPU-Kernen in 32 Bit. Klingt wie geschaffen für komplexe Projekte bei denen mehrere Sachen gleichzeitig stattfinden sollen. Im genannten Projekt wird der mit 80MHz getaktet, hat also auch genug Schwung um komplexere Sachen zu machen. Und teuer scheint der auch nicht zu sein: als Einzelstück 12,50 Euro klingt fair bei den Daten. Oh, und im Gegensatz zu ARMen gibt es den auch im ‚Lötbaren‘ Gehäuse, also in nicht-SMD-Form.
Doof ist nur, dass ein C-Compiler nur gegen Geld zu kriegen ist, während es eine Entwicklungsumgebung für eine proprietäre Sprache (Spin) kostenlos gibt.
Festplatte am AVR
Wow, ich hätte nicht gedacht dass es mit derart wenig Aufwand möglich ist, eine IDE-Platte an einen Mikrocontroller zu hängen. FAT ist da noch nicht mit drin, aber vielleicht könnte man das aus der Procyon-Bibliothek nehmen… wenn man es denn mal braucht.
Neues Hackmaterial
In den letzten Wochen habe ich mich wieder verstärkt um mein Projekt Dulcimer gekümmert. Seit Gestern habe ich ein neues benutzbares Hackbrett. Diesmal keine Model M, aber nichtsdestotrotz ein erlesenes Gerät. Ausführliches schreibe ich dann die Tage mal, wenn ich ein neues Paket online stelle. Wer sich für die Fortschritte interessiert kann auch einen Blick auf die Entwicklung werfen — das dürfte allerdings wohl eher was für den Connoisseur sein. 
Und ich habe Heute neue Rohlinge für solche Basteleien bekommen. Zwei Model M, eine von 1991 und eine von 1995. Ob ich letztere wirklich zerlegen sollte muss ich mir noch überlegen. Das scheint irgendwie ein Sondermodell zu sein. Das Kabel ist — untypisch für die Serie — fest angebaut, und was das eigentlich merkwürdige ist: die hat keine LEDs. Sieht man auch auf dem Foto. Eigentlich ideal für meine Bastelidee. Kann mir jemand sachdienliche Hinweise zu dem Ding geben?
AVR SuperMario
Wow, ich hätte nicht gedacht dass ein einfacher ATmega168 mit 19,6608MHz dazu in der Lage ist. Ich bin beeindruckt!
Mein Fazit aus dem Wochenende…
… man kann noch so lange an einem Problem rum programmieren, einen kaputten Stecker kann man nicht wieder heil programmieren. Auch nicht wenn man da einen kompletten Samstag reinsteckt. 
Aber der One-Wire-Bus ist an der Stelle auch echt ein Arsch. Wer ihn nicht kennt: der Name ist etwas verwirrend. Zwei Drähte braucht man mindestens: einen für die Masse, einen für Daten. Eine Versorgungsspannung kann man wenn man möchte zusätzlich anlegen. Wenn man das nicht machen will kann man die Bausteine auf dem Bus — Temperaturfühler in meinem Fall — auch über die Datenleitung mit Saft versorgen. Eigentlich muss man dazu dann noch einen zusätzlichen FET benutzen.
Der Samstag hat mir aber gezeigt, dass es auch ohne den FET geht, wenn zum Beispiel der Pin für die Versorgungsspannung im Stecker kaputt ist. Und wenn man mehrere Sensoren auf dem Bus hat gibt es sehr merkwürdige Ergebnisse, empfehlenswert ist das also nicht. Das doofe ist: es gibt Ergebnisse. Wenn gar nichts geht kommt man schnell auf die Idee zu messen. Wenn aber der Bus die Geräte sieht, diesen aber keine Ergebnisse entlocken kann, ist das… irreführend. 
Naja: Gefahr erkannt, Gefahr gebannt. Heute habe ich mein aktuelles Mikrocontroller-Projekt in Betrieb genommen. Ein Gehäuse fehlt noch, dann mache ich ein paar Fotos und veröffentliche es. Vielleicht auch ohne Gehäuse, dann wird das diese Woche noch was.
Neues Projekt online: I2C LED Matrix
Schlag auf Schlag: Ich habe nicht vor, jetzt jede Woche ein neues Projekt auf die Seite zu stellen. Ideen hätte ich genug, aber nicht ansatzweise die Zeit um alles umzusetzen. Im Moment drängt es mich aber etwas, mein nächstes größeres Projekt fertig zu kriegen, unter anderem habe ich deshalb auch letzte Woche schnell die Tastatur fertig gemacht. Hier geht es um einen Teil des nächsten Projektes.
Vor einer ganzen Weile habe ich mal billig einen Posten Siebensegmentanzeigen gekauft. Die sollen jetzt mal zum Einsatz kommen. Grün, vierstellig, gemeinsame Anode (letzteres ist der Grund warum ich doch nicht auf Charlieplexing zurückgreifen kann). Die haben also 12 Pins an der Unterseite: acht Segmente und jeweils eine Anode pro Ziffer. Ich werde zwei davon brauchen. Die Segmentanschlüsse kann ich jeweils verbinden, die Anoden muss ich vom Controller aus einzeln ansteuern. Also acht Segmente plus acht Anoden, macht 16 Pins. So viel habe ich nicht frei.
Sicher könnte man da was mit anderen Bausteinen machen, ich habe mir meinen eigenen gebaut. Einen ATmega8 der per I2C zu steuern ist, und der diese Aufgabe spielend übernehmen kann. So brauche ich an meinem ‚Hauptprozessor‘ nur noch die zwei Pins für den I2C-Bus. Außerdem verlagert sich der Job, die LEDs zu Multiplexen in den anderen Controller. So muss ich beim Programmieren auch nicht auf das Timing achten damit die LEDs nicht flimmern.
Das ganze habe ich schön dokumentiert und freigegeben, unter dem nicht sehr originellen Namen I2C LED Matrix.
‚Matrix‘ deshalb weil man an den Baustein einfach eine Matrix aus 8×8 LEDs anschließen kann. Das müssen nicht unbedingt Siebensegmentanzeigen sein. Der Vorteil ist, dass man so beliebige Zeichen darstellen kann, Nachteil dieser Flexibilität ist allerdings auch dass man sich die Zeichen auf dem steuernden Controller erstmal definieren muss. Naja, schwer ist das aber auch nicht, ein Beispiel habe ich auf der Seite.
Vielleicht kann das ja jemand gebrauchen. Und bevor die Befürchtung aufkommt dass es hier jetzt nur noch uC-Basteleien gibt: ich fürchte bis das angekündigte größere Projekt fertig wird, wird einige Zeit ins Land gehen… hoffentlich nur ein paar Wochen, aber… wer weiß?
LEDs Charlieplexen
Wenn ich mal wieder ein Projekt habe in dem ich viele LEDs ansteuern möchte werde ich der Technik namens Charlieplexing ein paar Gedanken widmen. Nur beschaltet mit ein paar Widerständen kann ein Controller mit n Pins (n*(n-1)) LEDs schalten. Das wären (wenn man einen Quarz und Reset nicht belegen möchte) 210 mit einem ATtiny2313, 380 mit dem ATmega8 oder sogar 992 mit einem ATmega32 oder ATmega644…