- fchao-Sinus-Wechselrichter AliExpress         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 33

Thema: Mehrere AVRs an einen Bus

  1. #11
    Gast
    Anzeige

    Powerstation Test
    Ja aber sicher! Ist doch absolut identisch mit I2C. Das geht über die TWI-Register.

  2. #12
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    35
    Beiträge
    2.624
    Cool!
    Warum versuche ich eigentlich schon seit Monaten ein I2C-Protokoll zu programmieren? ;o)
    Danke für diesen Hinweis! :o)

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Moment, was ist jetzt hier was?
    SPI, TWI, I2c?
    Wie spricht man die Busse denn an?
    Print?

    MFG Moritz

  4. #14
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.01.2004
    Alter
    40
    Beiträge
    255
    SPI verwendet die selbe Schnittstelle wie ISP. Braucht 4 Leitungen (MOSI, MISO, SCK, SS). Ist auch hardwaremäßig in den AVRs vorhanden - kann also ohne gropße Performanceverluste verwendet werden.

    I2C und TWI ist DAS SELBE Bussystem. Phillips hat I2C entwickelt - Atmel darf aus Lizenzrechtlichen Gründen I2C (Inter IC Connection) nicht verwenden. Also nennen sie es einfach TWI (Two Wire Interface). TWI/I2C benötigt nur zwei Leitungen.

    Im Prinzip ist es egal, welche man verwendet. SPI sollte etwas höhere Datenraten erlauben und außerdem dürfen hier die Längen der Verbindungen etwas größer sein. I2C ist eigentlich nur für die Verbindung von Chips auf der selben Platine gedacht - die Leitungslängen sollten recht kurz sein (einige 10 cm) - je nach Busgeschwindigkeit.

    Für beide Bussysteme gibt es Chips, die sich darüber ansteuern lassen. SPI hat den Nachteil, dass jedes Gerät über eine extra Leitung angeschlossen werden muss, d.h., 4 Leitungen bruachst du für einen Slave - für jeden weiteren Slave brauchst du eine weitere Leitung (Enableleitung). Dahingegen wird über I2C ein Slave nur über seine Adresse angesprochen. Dh. der Bus kommt mit nur 2 Leitungen aus, egal wieviele Slaves.

    Viele Grüße
    Flite

  5. #15
    Gast
    I2C ist eigentlich nur für die Verbindung von Chips auf der selben Platine gedacht - die Leitungslängen sollten recht kurz sein (einige 10 cm) - je nach Busgeschwindigkeit.
    Ich denke das ist ein weit verbreitetes Gerücht. Ich habe nun schon mehrfach gelesen das offiziell 3m zugelassen sind.

  6. #16
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.01.2004
    Alter
    40
    Beiträge
    255
    Offiziell ist die Länge des I2C Bus bestimmt nicht in einer Meterangabe bestimmt. Laut Spezifikationen darf das SCL und das SDA System maximal eine Kapazität von 400pF haben. Zu dieser Kapazität zählen die Kapazitäten der Anschlusspins, sowie die Leitungskapazität. D.h. die zulässige Länge ist abhängig von der Anzahl der Busteilnehmer, von deren Pinkapazität (also auch vom Package) und vom verwendeten Kabel/Leitungsführung auf der Platine. Das das ganze mit 3 Meter Länge noch funktioniert ist durchaus möglich. Darunter leidet dann aber evtl die 'Datensicherheit'. Es kommt auch immer darauf an, in was für einer Umgebung man das Gerät betrieben möchte. In Industriehallen mit großen Maschinen fängt man sich über ein langes Kabel viel mehr Störungen ein, als über ein kurzes. Tatsache ist, dass es dafür gedacht war, um mehrere Chips in einem System zu verbinden (z.B. Videorecorder, ...). Es sollte nicht dazu dienen, Daten über größere Entferungen zu übertragen. Dafür gibt es andere Bussysteme vie RS485, CAN, LIN, ...

    Ach ja: noch ein Vorteil von I2C: Im Gegensatz zu SPI kann man mit I2C einen Multimaster Bus realisieren.

    Viele Grüße
    Flite

  7. #17
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1
    Hi Flite,

    du hast sicher Recht das der I2C-Bus eigentlich zur Kommunikation innerhalb eines Gerätes entworfen wurde und die Kabellänge nicht so sehr lang werden sollte.
    Aber ich denke man sollte die User nicht mit der Angabe "20 cm" verschrecken. Diese Angabe wird nirgends offiziell so genannt, zumindest hab ich das nirgends in den Datenblättern gefunden.
    Ich habe auch schon mehrfach von 3m gelesen, sogar schon von 20 Metern (was mir dann doch etwas viel erscheint).
    Nach meinen Erfahrungen sind kurze Kabellängen von unter 1m selbst bei höheren Datenraten völlig problemlos, sogar ein Handy in der Nähe sollte da kaum ein problem darstellen. Ich habe auch schon ein ganzes Zimmer per I2C-verkabelt, waren sicher zwei mal 7m Kabel. Auch da gab es nicht die geringsten Probleme.
    Aber wie du schon sagst, es kommt auch auf die Geschwindigkeit der Datenübertragung und die Störquellen an. Natürlich auch auf das Kabel, bei meiner Zimmerverdrahtung war es normales Telefonkabel.

    Mit SPI hab ich nicht so viel Erfahrung. Etwas unverständlich ist mir, warum SPI bei der Programmübertragung (per ISP) oft so störanfällig ist. Kannst du dir das erklären?

  8. #18
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.01.2004
    Alter
    40
    Beiträge
    255
    Hallo Frank,

    du hast schon recht. Wie gesagt. Philips spezifiziert weder 20cm noch 3m. Es kommt eben auf die oben genannten Parameter an. Ich selbst habe auch einige Schaltungen bei mir laufen, die über normale Flachbandkabel auch mit I2C über mehrere Meter funktionieren.

    Ich wollte nur 'Gast' erklären, dass es sich bei den wenigen 10cm. nicht um ein Gerücht handelt, sondern dass es von einigen Faktoren abhängig ist. Funktionieren tut es meistens schon und wenn dann doch mal wegen einer Störung das Teil ausfällt, dürfte es bei einem Roboter ja keine so schlimmen Folgen haben. Bei kommerziellen Geräten oder sogar medizinischen Geräten muss man hierauf schon etwas mehr achten, aber das hat hier ja wohl keiner vor

    Die Fehleranfälligkeit von ISP kann ich mir auch nicht wirklich erklären. Ich hatte das selbe Problem mit dem STK500. Alle 10 Programmierversuche ist einer fehlgeschlagen. Anscheinend kann man die Geschwindigkeit der Programmierung über das neue AVR Studio einstellen. Wenn man hier eine langsamere wählt funktioniert es anscheindend einwandfrei.

    Ich selbst programmiere meine AVRs mit einem Parallel ISP mit HCT. Das ging bei mir bisher einwandfrei. Da hatte ich noch keine Probleme.

    Viele Grüße
    Flite

  9. #19
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.05.2004
    Ort
    Untersöchering(Bayern,Alpenvorland)
    Alter
    37
    Beiträge
    215
    Also um mehrere Avr´s zu verbinden, mit einem Master, ist denke ich SPI das beste/einfachste. Braucht zwar mehr Pins wie I2C, es ist aber um einiges einfacher einen AVR als SPI slave zu programmieren als mit I2C. Sprech da aus erfahrung denn ich hab bis jetzt nichts Vernünftiges im Netz über Microcontroller als I2C Slave gefunden, geschweige denn Codebeispiele für Basic oder C.
    Erklärung zu SPI und bisschen Code für avr-gcc gibts bei
    www.mc-project.de .
    Gruß Muraad

  10. #20
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.03.2004
    Ort
    Paderborn
    Alter
    40
    Beiträge
    614
    Zum Hardware-I2C: Gibts da fertige(und dokumentierte) Routinen für AVR-GCC, die man irgendwo 'runterladen kann?
    it works best if you plug it (aus leidvoller Erfahrung)

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen