- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 17

Thema: UART vs. I2C, Was ist schneller?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.707
    Zitat Zitat von SlyD Beitrag anzeigen
    ... M128 ein 14.7456 MHz Baudratenquarz ... 115k möglich, darüber ... Abweichung zu hoch...
    Ich habe mir mit nem FTDI einen Eigenbau USB-UART-Wandler (klick und Bild unten) gebaut - da fahre ich problemlos 256K vom Controller zum PC mit dem Terminal von br@y, vermutlich ist noch mehr möglich. Da vermute ich, dass auch eine evtl. Controller-Controller-Verbindung ähnlich schnell arbeiten könnte.

    ......Bild hier  


    Allerdings habe ich meine Sende-define-BAUD gelogen:

    Code:
    //      CPU definiert im AVRStudio
    // #define BAUD           57600    // 
       #define BAUD           230400   // Diese Einstellung bei USB-Adapter - 256000
    Die Fehlermöglichkeit des UARTS durch die ganzzahlige UBRR spielt da offensichtich keine Rolle, ich bin aber dem Grund dafür noch nicht nachgegangen. Allerdings hatte ich mir das bei Verwendung des max232 mal zu Gemüte geführt (klick)

    Geändert von oberallgeier (19.07.2012 um 22:45 Uhr)
    Ciao sagt der JoeamBerg

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Wenn auf die Beschränkung auf eine der üblichen Baudraten entfällt, sollte sich für die beiden Quarztakte vermutlich auch noch eine höhere gemeinsame Baudrate (z.B. 193 kBaud) finden lassen.

    Noch schneller wäre ein Verbindung per SPI.

    Die Übertragung als raw, und dann erst umrechnen ist nicht so abwegig. Es kommt halt darauf an welcher µC noch Rechenleistung über hat. Sonst ggf. die Daten erst am PC vom RAW Format umrechnen.

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    40
    Beiträge
    1.516
    @Oberallgeier:

    Klar geht das mit dem FTDI mit alle möglichen Baudraten - der RP6 nutzt ja auch 500k Baud für den Bootloader.
    (Und zum WLAN Modul auch weil es da vom Takt her genau passt)
    Der FTDI hat aber auch einen fraktionalen Baudraten Generator drin und kann so ziemlich alle denkbaren Baudraten passend erzeugen.
    Die ATMEGAs haben sowas nicht, daher ist der Quarztakt wichtig.

    Alles +-3% Abweichung ist übrigens OK.

    MfG,
    SlyD

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Filou89
    Registriert seit
    24.12.2010
    Ort
    Thun, Switzerland
    Alter
    36
    Beiträge
    116
    Hallo zusammen
    Das schnellste wäre wirklich die SPI Schnittstelle.
    Beim I2C Bus könnte es aber sein, dass nicht alle Sensoren mit 400kHz arbeiten können.
    Normalerweise hat man pro I2C Bus nur einen Master. Es ist aber auch ein Multi Master Mode möglich. Mit dem RP6 weiss ich zwar nicht, ob das gehen wird, aber du könntest dann die M128 und M256 als Master betreiben.

    Grüsse Filou

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773
    Jo klar!
    die M256 holt sich alle Sensordaten der anderen Module (Base, M32, M128 und seine eigenen) aus den Registern und gibt sie an den PC weiter.
    außerdem gibt sie via WLAN empfangene Befehle an die M128 über UART weiter, welche dann die Befehle als Master ausführt und weitergibt...
    kann das so laufen???

    Klingt jedenfalls spannend

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Filou89
    Registriert seit
    24.12.2010
    Ort
    Thun, Switzerland
    Alter
    36
    Beiträge
    116
    Jetzt habe ich eine ähnliche Frage:
    Ich habe eine kleine Beschleunigungs-sensor-platine. Sie lässt sich entweder über I2C oder SPI anschliessen. Was macht mehr Sinn? Soll ich den I2C Bus möglichst für die Kommunikation unter den Platinen freihalten?

    Grüsse

  7. #7
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    Ich denke, das ist eher eine persönliche Geschmacksfrage als von technischen Notwendigkeiten abhängig. Zumindest im Hobbybereich.
    Hat man eh schon I2C Bausteine, kann man bei I2C bleiben zumal sich Code wiederverwenden lässt und man so vielelicht ein paar Byte einspart.
    (Soft-Hardware)SPI hat aber auch Vorteile... z.B. das sich da Geräte eben nicht gegenseitig beeinträchtigen da SPI Slaves meist eigene Hardware-CS Signale haben (wie z.B. Speicherkarten).
    Ich seh kein Grund, um die eine oder andere Schnittstelle nen Bogen zu machen oder zu preferieren. RS232 & co ist meist langsamer aber erlaubt größere Leitungslängen... I2C ist ein Bus System.. und SPI irgendwas dazwischen.... und mit allen sind etwa gleiche Speeds möglich - je nach verwendeter Hardware. Man braucht nur eben für jedes Protokoll auch ein eigenen Protokollstack. Das ist aber immer so.. egal ob nu 1-Wire - bis hin zu Ip per Funk oder wlan. Und je aufwändiger die Hardware, um so umfangreicher der Stack. Man kann sogar die I2C oder die SPI mit RS485 Leitungstreibern versehen, Konverter für den CAN bus anbringen oder sonst was frickeln... es gibts so viele serielle Busse.. die eigentlich immer gleich funktionieren... USB und selbst SATA ist nichts anderes, nur sind die eben extrem auf Speed ausgelegt.
    Die einzige Überlegung, die für dich relevant ist, dürfte aber sein: Wo bekomme ich einen stabilen Stack her, wie komplex ist der... und passt er noch zusätzlich ins ROM der CPU.
    Letztlich läuft auch alles auf ein einheitliches Software Interface hinaus... getchar, putchar... (de)selektieren von Geräten per open und close, Fehlerbehandlung, Ringbuffer für send/receive, Softwarefehlerkorrektur usw... zumindest wenn man es anständig programmiert. Denn auch da lassen sich dann später Synergieen nutzen. Da auf dem RP6 aber eher Lowlevel-Bitgefrickel betrieben wird, dürften so Ansätze aber eher Theorie bleiben... was mich wieder zu meinem Eingangssatz bringt.
    Gruß Rolf
    Geändert von RolfD (07.09.2012 um 11:23 Uhr)
    Sind Sie auch ambivalent?

Ähnliche Themen

  1. Schneller als die FFT erlaubt
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 19.01.2012, 12:00
  2. Daten von Software UART nach Hardware UART weiterleiten
    Von kusli im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 06.10.2008, 21:24
  3. Schneller OP
    Von gamoz im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 26.05.2006, 16:48
  4. schneller Infrarotsensor
    Von klush im Forum Sensoren / Sensorik
    Antworten: 4
    Letzter Beitrag: 22.05.2005, 16:10
  5. Schneller 5V-Regler bis 1,5A
    Von Telefisch im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 18.05.2005, 15:32

Berechtigungen

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

LiFePO4 Speicher Test