Gast
#2385296
Hallo Zusammen, Ich suche schon seit Tagen nach einer Lösung meines Problems und bitte um Hilfe. Mein System: Ich betreibe das msp430f2274 RF Modul als SPI Master und lese damit von 16 Slaves Beschleunigungssensoren MMA7455LR X, Y und Z aus. Der SPI clock taktet bei 2 Mhz. Die ChipSelects der 16 Sensoren werden über zwei Multiplexer HCF4051B angesteuert. Die SPI Leitungen sind zwischen 10cm und 2m lang und "sternförmig" mit Flachbandkabel verdrahtet. Die Enden sind AC terminiert (100pF,100 Ohm), und den Clock habe ich mit einem Serienwiderstand (33Ohm) versehen um die steilen Flanken zu glätten. Der SDI vom msp430 ist über ein Serienwiderstand (1Kohm) an alle Slaves angeschlossen. Das SPI Signal SDO vom Sensor wird über ein BUS TRANSCEIVER (SN74LVC1T45) geführt, da meineswissens der Sensor MMA7455LR keinen High Z Ausgang hat (Auf jeden Fall hatte der Sensor Mühe den Bus ohne SN74LVC1T45 zu speisen), dabei habe ich den DIR PIN (Richtungs PIN) vom BUS TRANSCEIVER an den Chip select angeschlossen, damit der BUS TRANSCEIVER auf High Z umschaltet, wenn CS high ist. Alle Chip Selects besitzen einen 10K Pull up nach dem Multiplexer. Das funktioniert: Mit diesem System kann ich jeden einzelnen Sensor erfolgreich auslesen. Im Code ändere ich nur den Chip select. Problem: Sobald ich per Software zwei oder mehrere Sensoren mit dem CS versorge um den X,Y und Z Wert der Beschleunigung auszulesen ist das SDO Signal vom Sensor nicht mehr sauber. Dass heisst, irgenwie kommen sich diese zwei Sensoren in die quere. Gemessen mit Oszi: Die Chip Selects sind im richtigen Zeitfenster aktiv. Die SDI Leitung sieht immer korrekt aus. Der Clock sieht auch korrekt aus. Kommentar: Dieses Problem ist erst aufgetaucht, seit ich den BUS TRANSCEIVER einsetze. Ohne BUS TRANSCEIVER kann ich aber nur ca. 7 Slaves/Sensoren physisch anschliessen, da sonst das SDO Signal in die Knie geht. Habe leider keinen Schaltplan. Bin für jede Hilfe dankbar. Grüsse Euch.