stekohl
19.10.2008, 14:21
Folgendes Phänomen:
Ich steueremit einem MEGA644 3 MCP23S17 (16Bit Porterweiterungen) per SPI an.
Nun liegt am SPI Bus auch noch eine SD-Karte, also dachte ich. Ports haste ja genug, steuer die MCP23S17 doch einfach per SOFT SPI an.
Routinen entsprechen umgeschrieben mit folgendem Ergebnis:
Schreibe auf die Porterweiterungen funktioniert bitgenau und ohne Probleme, jedoch beim Lesen von der Porterweiterung werden die Ergebnisse von beiden MCP Ports (a/b) um 1 Bit nach links verschoben? Aus 000000010 wird 00000001.
Arbeite ich mit dem HARD SPI habe ich keinerlei Probleme!!
Laut Scope ändert sich nix am Signaltiming. Ein Bild als Anhang: CH1 = Clock CH2 SPI Out (MISO). Für mich sieht das Bild ok aus.
Mir geht es hauptsächlich um eine Erklärung, ich werde wahrscheinlich in der endgültigen Schaltung für beide Bauteilarten (SD-Karte und Porterweiterung) je einen schaltbaren bipolaren Bustreiber nehmen.
Hat jemand für mich eine Erklärung dafür?
Gruß,
Stephan
Ich steueremit einem MEGA644 3 MCP23S17 (16Bit Porterweiterungen) per SPI an.
Nun liegt am SPI Bus auch noch eine SD-Karte, also dachte ich. Ports haste ja genug, steuer die MCP23S17 doch einfach per SOFT SPI an.
Routinen entsprechen umgeschrieben mit folgendem Ergebnis:
Schreibe auf die Porterweiterungen funktioniert bitgenau und ohne Probleme, jedoch beim Lesen von der Porterweiterung werden die Ergebnisse von beiden MCP Ports (a/b) um 1 Bit nach links verschoben? Aus 000000010 wird 00000001.
Arbeite ich mit dem HARD SPI habe ich keinerlei Probleme!!
Laut Scope ändert sich nix am Signaltiming. Ein Bild als Anhang: CH1 = Clock CH2 SPI Out (MISO). Für mich sieht das Bild ok aus.
Mir geht es hauptsächlich um eine Erklärung, ich werde wahrscheinlich in der endgültigen Schaltung für beide Bauteilarten (SD-Karte und Porterweiterung) je einen schaltbaren bipolaren Bustreiber nehmen.
Hat jemand für mich eine Erklärung dafür?
Gruß,
Stephan