Das Interfaceboard an sich ist relativ einfach, es gibt aber doch etwas zu beachten.

  • Audiosignale: Audiosignale werden über I²S (Inter IC Sound) Interface zum OS8104 geschickt. Hier ist es wichtig, dass OS8104 hier einen Clock-Master für I²S spielt, das heißt, er stellt den Takt zur Verfügung und streamt die Daten aus dem SBC raus. Nun ist es aber so, dass SBCs keine Möglichkeit bieten von "extern" getaktet zu werden, hier muss man ein ASRC (Asynchronous Sample Rate Converter) benutzen um diese Einschränkung zu umgehen. Ein ASRC besitzt zwei Ports, quasi ein Ein- und ein Ausgang. Beide Ports laufen im Slave Modus. MOST25 arbeitet mit einem BitClock von 44,1kHz einer einer Wortlänge von 16-bit. Ein BitClock von 44,1khz und Fs von 256 ergibt ein Master Clock von 11,2896MHz.
  • Spannungversorgung: SBC wird vom Interfaceboard mit Strom versorgt und gesteuert (startup und shutdown). Hierfür hat das Interfaceboard zwei Spannungswandler, ein mit 3A (LM2596) und einen mit 150mA (TLV704) für den FOT und Power management.
  • Power management: Die FOTs für MOST-Bus beinhalten ein rudimentäres Power management. Das heißt, wenn am Eingang des FOTs Licht erkannt wird, schaltet der Status-Pin von HIGH auf LOW und startet somit den Knoten. Die Schaltung könnte zum Beispiel so aussehen: Referenzschaltung von Microchip. Zum Status-Pin kommt noch ein Pin vom SBC, der die Hold-Funktion implementiert. Das heißt, selbst wenn der Status-Pin auf HIGH geht, läuft SBC weiter und erst wenn der Hold-Pin auf LOW geht (= SBC geht aus), wird auch der Spannungsregler ausgeschaltet. Die beiden Pins (Status und Hold) werden über ein SN74ACT00-Q1 zusammengeschaltet und die Schaltung dazu könnte so aussehen. Pin HOLD ist ein GPIO des SBC und Pin STATUS ist der Status Ausgang des FOTs. Ist einer der Pins LOW, so ist auch der Pin /ON/OFF LOW und der LM2596 ist eingeschaltet. 
  • Pegel: Das Interfaceboard arbeitet mit 5V Pegel, die SBCs laufen jedoch mit 1,8V.

Nach langem Überlegen habe ich mich dazu entschieden das Interfaceboard als eigenständige Platine zu machen, sprich nicht als "AddOn" oder "Cape" oder wie auch immer diese Dinger heißen. Das hat den Vorteil, dass man den SBC einfach austauschen kann, ohne was am Interfaceboard ändern zu müssen.

Auf dem Interfaceboard sind folgende Komponenten verbaut:

  • Microchip OS8104 NIC im I²C Modus
  • TI SRC4192 (Verbunden mit den Pins SR[3:0], SCK (bit clock), FSY (frame sync, L/R switch), RMCK (restored master clock))
  • 2+12 MOST FOT (Spannungsversorgung des Nodes, Debug UART, CVBS Ausgang)
  • LM2596 für die Versorgung des OS8104 und des SBCs und  TLV704 für die Versorgung des RX-FOT
  • GPIO (OS8104: /INT, /AINT, ERROR, /RS; FOP: +3dB, ) Anbindung über einen I²C GPIO-Expander
  • Pegelanpassung für I²S über zwei TXB0104
    • VCCA = 3.3V zum ASRC hin und VCCB = 5.0V zum NIC
    • VCCA = 1.8V zum SBC hin und VCCB = 3.3V zum ASRC
  • Pegelanpassung für I²C über ein TXS0104

Spannungen:

  • 5V-stb:
    • FOT-RX
  • 5V:
    • OS8104
    • FOT-TX
    • GPIO-Expander
  • 3,3V:
    • SRC4192