Forum: Mikrocontroller und Digitale Elektronik Empfindlichkeit I2C 2-Wire, SPI,.


von Marcel (Gast)


Lesenswert?

Guten Tag,

ich bin aktuell in einer Entscheidungsphase für ein größeres 
Gesamtprojekt, wo mehrere (teils wiederverwertbare) Schaltungsanteile 
mit teureren Komponenten, wie PLL's, Mischern, ADC, DAC, etc. dranhängen 
sollen. Eine erste Implementierung stelle ich mir so vor, dass 
insbesonders von den teureren Schaltungsanteilen einzelne Blöcke 
aufgebaut werden, so dass diese separat getestet werden können und nicht 
im Fehlerfall einer "Baugruppe" alles nichtig ist. Die große Nebenfrage, 
die sich mir hier stellt ist: Wie empfindlich sind die gängigen Busse- / 
Interfaces? Die mechanisch einfachste Art und Weise in meinem Kopf ist 
mit Stiftleisten und Flachbandkabeln zu arbeiten, so dass die Steuerung 
(aktuell vorerst als Mikrocontroller geplant, wird in weiterer Iteration 
auf FPGA hinauslaufen) mit dein einzelnen Baugruppen verbunden werden 
kann.

Gibt es hierzu Erfahrungswerte? Einkopplungen in sensible 
Schaltungsteile kann ich weitestgehend ausschließen durch geplante 
Schirmungen, jedoch kenne ich mich nicht so wirklich auf der digitalen 
Schiene aus und bin mir unschlüssig, wie robust die Kommunikation ist.

Besten Dank ;)

von Einer K. (Gast)


Lesenswert?

Welcher Datendurchsatz wird benötigt?
Je höher, desto eher SPI.(bei deiner Vorgabe)

Leitungslänge?

von Analog OPA (Gast)


Lesenswert?

In welcher Weise erwartest Du denn solche gigantischen Schäden infolge 
von einfachen Bus-Tests???

von Marcel (Gast)


Lesenswert?

Ich erwarte keine großen Schäden durch Bus-Tests, sondern eher, dass es 
Probleme mit dem Bus geben könnte. Der jeweilige Bus hängt dann von der 
Baugruppe ab, da die Steuerung zentral erfolgen soll.

Leitungslängen sind unter 20cm, Flachbandleitung ist angedacht. Aufgrund 
von Schirmung der analogen Schaltungsteile und HF erwarte ich dadurch 
kaum Rückwirkungen darauf..

von Alex G. (dragongamer)


Lesenswert?

Also für die Anforderungen taugen all diese Buse würde ich sagen. Das 
ist noch keine Herausforderung.
Bedenke aber dass die alle nach einem Master/Slave konzept arbeiten und 
darum für modulare Gesichten, nicht optimal flexibel.

Wenn du kannst, nimm CAN. Dann brauchst du dir auch nicht mehr im 
Entferntesten gedanken über Robustheit machen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Nimm SPI. Dort sind alle Pegel aktiv getrieben und nicht von 
irgendwelchen Pullups definiert.

von Marcel (Gast)


Lesenswert?

Also, wie bereits beschrieben die "Zentrale" versorgt die Baugruppen in 
unmittelbarer Nähe mit Steuerung / liest Daten aus, CAN wäre nice to 
have, ist aber bei der Baugruppenplanung nicht direkt möglich. Ich denke 
ich versuche es einfach mal, wenn die einzelnen Platinen da sind und 
bestückt sind werde ich es sehen ;)

von Wolfgang (Gast)


Lesenswert?

Was meinst du eigentlich mit 2-Wire?
Es gibt TWI, aber das ist IMHO bis auf die Bezeichnung dasselbe wie I²C.

von Einer K. (Gast)


Lesenswert?

Wolfgang schrieb:
> Es gibt TWI, aber das ist IMHO bis auf die Bezeichnung dasselbe wie I²C.
Ach, ich glaube, da muss man sich noch keine Sorgen drum machen...
Unser TE hats halt wohl noch nicht so mit Bus Systemen.
Aber das wird noch kommen!

Ich finde eher solche Sätze befremdlich:
> Ich denke
> ich versuche es einfach mal, wenn die einzelnen Platinen da sind und
> bestückt sind werde ich es sehen ;)
Eigentlich kenne ich es nur anders rum.
Erst Bus fest legen, dann Platinen machen.

Aber bis jetzt ist ja noch die Frage ungeklärt:
> Welcher Datendurchsatz wird benötigt?
Das treibt mich zu der Annahme, dass der Punkt deutlich unterschätzt 
wird.

Marcel schrieb:
> PLL's, Mischern, ADC, DAC, etc. dranhängen
Denn das lässt böses ahnen.......

von Stefan F. (Gast)


Lesenswert?

Bei SPI werden die Slaves in der Regel durch separate Steuerleitungen 
selektiert.

Bei I²C dienen dazu Adressen, die auf den beiden Signal-Leitungen 
seriell übertragen werden.

Bei 20cm Flachkabel zuzüglich den Leitungen auf den Platinen kommt man 
schon in den Bereich, wo man über Signal-Flanken, Echos und 
Wellenwiderstände nachdenken muss. Bei I²C haben die Chip Hersteller das 
schon durch analoge und/oder digitale Filter in den IC's erledigt. Bei 
SPI muss man selber was machen.

I²C ist auf jeden Fall einfacher zu handhaben. Aber vielleicht zu 
langsam.

von Marcel (Gast)


Lesenswert?

Arduino F. schrieb:
> Eigentlich kenne ich es nur anders rum.
> Erst Bus fest legen, dann Platinen machen.

Ja, da hast du recht, ich habe den Bus bereits festgelegt, teils I2C, 
teils SPI, jeweils bedingt durch die Peripherie der Baugruppe, da dort 
keine separate Schnittstelle liegt, sondern die Ansteuerung unmittelbar 
von der Zentrale, meist direkt auf IC's gehen soll.

Der Datendurchsatz ist nur an einer Stelle kritisch und das aber auch 
erst, wenn gezeigt ist, dass der Analogteil so funktionieren kann. Wenn 
das der Fall ist, dann ist lediglich die Analog-Digital-Wandlung im 
worst-case suboptimal und zu überarbeiten. Die meisten "Baugruppen" sind 
anderweitig kritisch (und teuer).

Wenn es um eine spätere Miniaturisierung der Sache gehen soll, dann ist 
natürlich eine gründlichere Überlegung zu Schnittstellen, ggf. einer 
hierarchischen Peripherie, optimales Routing zu denken, zum jetzigen 
Zeitpunkt muss es nicht zwangsweise schnell arbeiten und auch keine 
Algorithmen durchführen. Aktuell ist nur Kommunikation mit einem 
Computer, der die Algorithmen dann ausführt, sowie Steuerung 
verschiedener Komponenten hierfür relevant. Später soll ggf. die 
Berechnung in einem FPGA Platz finden. Ich habe angefangen mich mit VHDL 
zu beschäftigen, habe aber was VHDL angeht die ein oder andere 
kompetente Person in meinem Netzwerk ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.