INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Zu wenige SPI-Anschlüsse - was jetzt?
04.09.2019, 13:11 (Dieser Beitrag wurde zuletzt bearbeitet: 04.09.2019 13:12 von Backtobasics.)
Beitrag #1
Zu wenige SPI-Anschlüsse - was jetzt?
Moin,

zunächst einmal: Hier geht es ehrlich gesagt um keinen Arduino, sondern um einen NanoPi M4.

Mit dem würde ich gerne zwei AD-Wandler (MCP3008) und zwei DA-Wandler (MCP4921) betreiben. Nun habe ich das Ganze leider nicht ganz zu Ende gedacht und gemerkt, dass der NanoPi ja nur eine SPI-Schnittstelle hat (http://wiki.friendlyarm.com/wiki/index.p...imension).
Die DA's sollen beide durchgängig betrieben werden, deswegen wäre Chip Select nicht möglich, wenn ich das richtig verstanden habe, denn dann würde ja immer nur einer von beiden laufen können. Jetzt habe ich überlegt, zwei I2C-DA's zu holen. Die habe ich aber bisher nur in 8-Bit gefunden - 10 oder 12 wäre schon besser.
Und dann bleibt immer noch ein AD-Wandler übrig, der bisher nicht angesteuert wird. Eventuell könnte da einfach einer mit mehr Kanälen helfen? Die Werte der AD's sollen nur ab und zu abgefragt werden.

Ich habe allerdings mit der Materie noch nicht so sehr viel Erfahrung, deswegen dachte ich, ich frage hier erst mal nach. Wie würdet ihr das handhaben (abgesehen davon, das erst ganz zu durchdenken)? Gibt es vielleicht eine einfachere Lösung? Confused
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2019, 13:25
Beitrag #2
RE: Zu wenige SPI-Anschlüsse - was jetzt?
Da hast Du etwas falsch verstanden. Egal ob I2C oder SPI - es kann gleichzeitig immer nur ein IC angesprochen werden.
Ob Du Deinen 2-Kern-Prozessor so programmieren könntest, dass jeder Kern eine Schnittstelle gleichzeitig bedienen kann, weiß ich nicht, bezweifle es aber.

Was ist denn so zeitkritisch, dass 2 AD-Wandler ständig gleichzeitig abgefragt werden müssen? Die AD-Wandlung braucht je nach Verfahren auch ihre Zeit.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2019, 13:29 (Dieser Beitrag wurde zuletzt bearbeitet: 04.09.2019 13:47 von Bitklopfer.)
Beitrag #3
RE: Zu wenige SPI-Anschlüsse - was jetzt?
(04.09.2019 13:11)Backtobasics schrieb:  Moin,

zunächst einmal: Hier geht es ehrlich gesagt um keinen Arduino, sondern um einen NanoPi M4.

Mit dem würde ich gerne zwei AD-Wandler (MCP3008) und zwei DA-Wandler (MCP4921) betreiben. Nun habe ich das Ganze leider nicht ganz zu Ende gedacht und gemerkt, dass der NanoPi ja nur eine SPI-Schnittstelle hat (http://wiki.friendlyarm.com/wiki/index.p...imension).
Die DA's sollen beide durchgängig betrieben werden, deswegen wäre Chip Select nicht möglich, wenn ich das richtig verstanden habe, denn dann würde ja immer nur einer von beiden laufen können. Jetzt habe ich überlegt, zwei I2C-DA's zu holen. Die habe ich aber bisher nur in 8-Bit gefunden - 10 oder 12 wäre schon besser.
Und dann bleibt immer noch ein AD-Wandler übrig, der bisher nicht angesteuert wird. Eventuell könnte da einfach einer mit mehr Kanälen helfen? Die Werte der AD's sollen nur ab und zu abgefragt werden.

Ich habe allerdings mit der Materie noch nicht so sehr viel Erfahrung, deswegen dachte ich, ich frage hier erst mal nach. Wie würdet ihr das handhaben (abgesehen davon, das erst ganz zu durchdenken)? Gibt es vielleicht eine einfachere Lösung? Confused

Tagchen,
also erstes bist du mit dem Nano-Pi hier im falschen Forum, hier ist das Arduino Forum.

Aber zu deiner Frage, solange dir die Paralellports für den Chip-Select nicht ausgehen kannst du SPI Teilnehmer anschließen soviel du willst, denn auch wenn du mehrere SPI Interfaces auf der CPU hast kannst zeitgleich immer nur einen Busteilnehmer bedienen egal auf welcher Schnittstelle. Wenn du allerdings Zwei Analogwerte genau zur selben Zeit erfassen willst hilft dir nur ein Sample & Hold Baustein pro Analogsignal um den Wert zu speichern und dann kannst den Wert in aller Seelenruhe einlesen u.U. auch mit einem einzigen mehrkanaligen ADC. Diese S&H Bausteine müßen dann allerdings von einem Port aus gesteuert werden.
Und um Parallelports zu sparen kann man hier noch einen Adressdecoder z.B. 74LS138 (gibt es auch in CMOS) einsetzen der dann aus 3 Ports 8 CS Signale erzeugt was sich zur Not auch noch erweitern läßt.

Denke mal das damit das Thema hier erledigt ist.
lgbk Moderator

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2019, 13:52
Beitrag #4
RE: Zu wenige SPI-Anschlüsse - was jetzt?
(04.09.2019 13:25)Tommy56 schrieb:  Da hast Du etwas falsch verstanden. Egal ob I2C oder SPI - es kann gleichzeitig immer nur ein IC angesprochen werden.
Ob Du Deinen 2-Kern-Prozessor so programmieren könntest, dass jeder Kern eine Schnittstelle gleichzeitig bedienen kann, weiß ich nicht, bezweifle es aber.

Was ist denn so zeitkritisch, dass 2 AD-Wandler ständig gleichzeitig abgefragt werden müssen? Die AD-Wandlung braucht je nach Verfahren auch ihre Zeit.

Gruß Tommy
Das habe ich tatsächlich nicht gewusst, vielen Dank für die Info! Über die DA's werden Treiber gesteuert (0...1 V analoge Modulation), die wiederum Laserfrequenzen modulieren. Vielleicht liegt aber auch hier ein falsches Verständnis meinerseits vor: Wenn ich jetzt am ersten DA z.B. 0,5 V einstelle und dann z.B. über Chip Select zu Nr. 2 wechsle, hält mein erster DA dann den Wert oder fällt der wieder auf 0 V? Sorry, vielleicht eine blöde Frage. Angel

(04.09.2019 13:29)Bitklopfer schrieb:  also erstes bist du mit dem Nano-Pi hier im falschen Forum, hier ist das Arduino Forum.
Ja, das weiß ich, deswegen habe ich das ehrlicherweise schon gleich am Anfang erwähnt. Ich bin allerdings hier schon öfter sehr gut beraten worden und SPI/I2C ist ja auf allen Plattformen gleich. Deswegen habe ich hier geschrieben.
Danke für die Erklärung mit den Parallelports und dem Adressdecoder, schaue ich mir mal an!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2019, 14:16
Beitrag #5
RE: Zu wenige SPI-Anschlüsse - was jetzt?
(04.09.2019 13:52)Backtobasics schrieb:  Wenn ich jetzt am ersten DA z.B. 0,5 V einstelle und dann z.B. über Chip Select zu Nr. 2 wechsle, hält mein erster DA dann den Wert oder fällt der wieder auf 0 V?
Das sagt Dir das Datenblatt Deines Systems, das wissen wir hier nicht.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2019, 16:07
Beitrag #6
RE: Zu wenige SPI-Anschlüsse - was jetzt?
(04.09.2019 13:29)Bitklopfer schrieb:  denn auch wenn du mehrere SPI Interfaces auf der CPU hast kannst zeitgleich immer nur einen Busteilnehmer bedienen egal auf welcher Schnittstelle.
Das ist so nicht unbedingt richtig, und hängt von der Software ab.
Bei 2 HW-SPI ( oder I2C ) Schnittstellen können die schon beide gleichzeitig arbeiten. Die meiste Zeit benötigt ja das Ein/Ausschieben der Daten, und das macht die SPI-HW selbständig. Wenn die SW komplett interruptgesteuert arbeitet, läuft die Verarbeitung parallel zu den Schiebevorgängen ( immer entsprechend leicht zeitlich versetzt ). Das läuft dann praktisch schon parallel. Wenn es ein Arm-Kern ist, wird da wohl auch DMA unterstützt, da brauchts dann die CPU dazu noch nichtmal - nur hinterher zur Verarbeitung.
Aber alles davon abhängig, ob die SW die Möglichkeiten der HW auch wirklich nutzt.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2019, 17:05
Beitrag #7
RE: Zu wenige SPI-Anschlüsse - was jetzt?
Es hat eine Weile gedauert, aber dann habe ich es im Datenblatt tatsächlich gefunden, vielen Dank! Dann nutze ich einfach ein paar GPIOs als CS-Pins und es sollte klappen.

Vielen, vielen Dank für die Hilfe! Shy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste