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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Marcel (Gast)


Bewertung
0 lesenswert
nicht 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 Arduino Fanboy D. (ufuf)


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

Leitungslänge?

: Bearbeitet durch User
von Analog OPA (Gast)


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

von Marcel (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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. (lkmiller) (Moderator) Benutzerseite


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

von Marcel (Gast)


Bewertung
0 lesenswert
nicht 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)


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

von Arduino Fanboy D. (ufuf)


Bewertung
0 lesenswert
nicht 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.......

: Bearbeitet durch User
von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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 ;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.