Hey Leute,
ich hab mal wieder ein Problem
Ich habe mittels den Untils von Socke : viewtopic.php?f=29&t=7700 mit ein Programm geschrieben mit dem ich den SPI Bus ansprechen kann, dies funktioniert bis jetzt auch super solange ich nur einen MCP 23s08 auf der Bus Leitung habe. Ich hätte gerne 3- 4 Bus Bausteine die ich auf der selben SPI- Linie angesprochen werden, also diese Kaskadierend verdrahten. Wenn ich sie Parallel verdrahte, dann müsste ich den Chip Select auf weitere GPIO's legen, dies könnte ich mir andernfalls sparen.
Bei dem Verwendetet I/O Expander MCP 23S08 muss man zu beginn die Adresspins aktivieren, dass diese berücksichtigt werden. Zusätzlich gibt es bei dem MCP auch noch ein Bit das man auf "1" setzen muss, dass die Adresse nicht automatische Inkrementiert wird. Beides hat leider nicht zu meinem gewünschten Ergebnis geführt. Dies Funktioniert auch, wie schon gesagt aber nur wenn ein Baustein auf der Leitung vorhanden ist.
Hat jemand Erfahrung damit, was ich anders machen muss oder geht es mit Linux nicht eine Bus nachricht an mehrere teilnehmen zu versenden.
Danke schon mal im voraus!
SPI Kaskadierung
-
- Beiträge: 1100
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: SPI Kaskadierung
Ich benutze mcp23S17, und das funktioniert ja. Also nur eine chip select I/O für mehrere solche Komponenten auf einen Bus, und die Adresse Pins sind unterschiedlich geerdet, und mit die Bits im SPI Header kann man der Selekt machen.
Der Vorteil ist zweifältig. Weniger I/O pins, und man kann die Daten für mehrere Chips dicht aufeinander packen und in einen einzige DMA burst rauswerfen.
Ich benutze aber eigene (microchip dspic33e) Elektrotechnik, keinen Pi oder so, also von die Software Seite weiß ich nicht.
Der Vorteil ist zweifältig. Weniger I/O pins, und man kann die Daten für mehrere Chips dicht aufeinander packen und in einen einzige DMA burst rauswerfen.
Ich benutze aber eigene (microchip dspic33e) Elektrotechnik, keinen Pi oder so, also von die Software Seite weiß ich nicht.
Re: SPI Kaskadierung
marcov hat geschrieben:
Ich benutze aber eigene (microchip dspic33e) Elektrotechnik, keinen Pi oder so, also von die Software Seite weiß ich nicht.
versteh ich dich richtig du verwendest einen "kleineren" Kontroller ohne Linux Betriebssystem und verwendest so mit nicht diese von mir oben genannten Utils.
Ich denke das es entweder seitens Linux nicht zu gelassen wird oder ich mein SPI Struct falsch fülle!
-
- Beiträge: 1100
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: SPI Kaskadierung
ArmFPC1 hat geschrieben:marcov hat geschrieben:
Ich benutze aber eigene (microchip dspic33e) Elektrotechnik, keinen Pi oder so, also von die Software Seite weiß ich nicht.
versteh ich dich richtig du verwendest einen "kleineren" Kontroller ohne Linux Betriebssystem und verwendest so mit nicht diese von mir oben genannten Utils.
Korrekt.
Ich denke das es entweder seitens Linux nicht zu gelassen wird oder ich mein SPI Struct falsch fülle!
Las den SPI struct mal sehen. Vielleicht sind die adres pinnen gespiegeld oder so? 010 statt 101 usw.
Re: SPI Kaskadierung
was mir gerade noch einfällt kann es an dem Mode liegen den man beim Konfigurieren des SPI Treibers angeben muss. Ich über gebe da den SPI_MODE_0.
Im Anhang hab ich die Definition von dem Struct / Record als Datei
Im Anhang hab ich die Definition von dem Struct / Record als Datei
- Dateianhänge
-
- fpspidev.pas
- (8.91 KiB) 226-mal heruntergeladen
-
- Beiträge: 1100
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: SPI Kaskadierung
Ich meinte die Struktur von die Daten die auf dem Draht gehen