ftRoboExt: Software

Nach einiger Pause gibt es mal wieder etwas neues zu meinem selbstgebauten Erweiterungsmodul „ftRoboExt“. Hardware und Gehäuse waren ja schon fertig, nun fehlte eine finale Version der Software. Inzwischen ist das ganze Projekt übrigens auf GitHub zu finden.

Das Protokoll für die Kommunikation zwischen Interface und Extension ist recht einfach, es ist im Prinzip ein SPI-Bus mit einem zusätzlichen Bestätigungssignal und einer Adresse. Über drei Adressleitungen wählt das Interface aus, mit welcher Extension es sprechen möchte. Die originalen Extensions lassen sich verketten, dabei wird das Signal aber nicht ganz unverändert durchgeschleift, sondern die Adresse wird von jedem Modul um ein verringert. Auf diese Weise ist jedes Modul adressiert, wenn es Adresse 0 sieht (das erste direkt, das zweite weil es 1-1=0 sieht). Eine sehr intelligente Lösung, denn dadurch wird die Adresse des Moduls einfach durch die Verkabelung bestimmt.

Wenn das Modul die Adresse 0 sieht, zieht es EM-ACK (die Bestätigungsleitung) auf Low. Nun beginnt das Interface 6 Bytes zu senden, die Extension gibt nach jedem Byte einen kurzen High-Puls auf der EM-ACK Leitung aus. Die originale Extension scheint recht langsam zu sein, so braucht sie etwa 700µs um die Adressierung zu bestätigen. Das Interface hat aber scheinbar auch kein Problem damit, wenn man schneller ist. Die 6 Bytes übertragenen Bytes enthalten die Nutzdaten, genaueres bei thkais.

Weiterlesen