- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 9 von 9

Thema: I2C oder UART?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    32
    Beiträge
    1.578
    1.000.000 ist bei 16Mhz eine fehlerfreie Baudrate (http://halvar.at/elektronik/kleiner_..._zum_computer/). Die 115.200 sind auskommentiert, das war der alte Wert und die beiden Softuart-Pins sind nur für das BTM222, um welches es hier nicht geht.
    Hm, ich übertrage 5 Words (10Byte) und noch ein Byte. Das sind dann also 11Byte / 235µs (nicht ganz) = 46.808Byte / sek. Von 1Mbit war nie die Rede.
    Ich weiß, ein paar Kommentare würden nicht schaden, aber ich denke, man kann es schon größtenteils nachvollziehen, oder nicht?!

    Gruß
    Chris

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Trotzdem sind mir $baud = 1000000 irgendwie zu viel, ein Byte setzt sich ja aus 1 Start, 8 Daten,und 1 Stopp Bit zusammen. macht also 10 Bit pro Byte
    Bei einer Baudrate von 1.000000 sind das dann 10.000000 Bit/s. Selbst wenn der µC sonst nix macht ist das hart und über eine Leitung schicken wird auch Probleme bereiten. Außerdem kenne (ich) keine RS232 welche das schafft? Wo Du jetzt die 235µs her hast? Aber es ist auch schon spät ich bin nur wieder auf weil ich nicht Einschlafen kann.

    Gruß Richard

  3. #3
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die Baudrate gibt die rate der übertragenen Bits, incl. Start und Stop Bits an. Bei 1 MBaud kommt man so auf 100 kBytes /s.

    Das sollte kein prinzipielles Problem sein, wenn man die Hardware UART nutzt. Die Empfängerseite muss aber relativ schnell sein um die Daten auch zu verarbeiten - ob das in Bascom reicht ist mir nicht klar, denn man hat bei 16 MHz Takt nur 160 Zyklen um 1 Byte zu verarbeiten.



    Die UART ist einfacher in der Handhabung als I2C, es ist halt eine einfache unidirektionale Übertragung und keine Bus, wo der Master erstmal klären muss für wen die Daten sind.

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    32
    Beiträge
    1.578
    Hallo,

    mit der Einstellung (baud = 1.000.000) fliege ich seit ca. 2 Wochen, alles funktioniert bestens! Die 235µs habe ich gemessen, indem ich den Timer1 vor dem Senden auf 0 gesetzt habe und nach dem Senden dann ausgelesen habe; ich denke, das sollte stimmen
    Die Verbindung der beiden µC ist ca. 2-3cm lang, das stellt kein Problem dar. Wie gesagt, es funktioniert so, wie es jetzt ist, mit den obigen Codes. Ich wollte nur wissen, ob ihr denkt, es würde sich lohnen, auf I2C umzusteigen? Meine Argumente hatte ich ja schon im 1. Post erwähnt...
    Aber ich denke, ich werde bei UART bleiben, außer jemand bringt ein gutes Argument für I2C oder gegen UART

    Gruß
    Chris

  5. #5
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Es spricht fast nichts für I2C. Einen kleinen Vorteil hat I2C, wenn es darum geht den Slave in den Pausen in einen Stromsparmodus zu versetzen - das geht bei I2C gut, bei der UART geht nur Idel. Das wird hier eher nicht der Fall sein.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    32
    Beiträge
    1.578
    Naja, für I2C würde sprechen, dass ich jederzeit völlig problemlos abfragen kann, ob ein ACK und Syn ACK vorhanden war / ist! Das würde die Übertragungssicherheit (bzw. das erkennen von Fehlern) wesentlich vereinfachen.... Außerdem könnte ich dann das BTM222 an die Hardware-Uart anschließen, was auch wieder den erheblichen Vorteil des Interrupts mitsich bringen würde. Ich denke, ich werds einfach mal auf dem Steckbrett ausprobieren, dann kann ich alle Vor- und Nachteile gut abwägen.

    Stromsparmodus o.ä. brauche ich nicht, da der ATTINY2313 ständig die PWM für die BL-Regler generieren soll.

    Gruß
    Chris

  7. #7
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Gegenüber einer Software UART ist I2C wohl schon ein Fortschritt. Hinsichtlich der Fehlerabfrage könnte man bei der UART mit eher weniger Aufwand als für I2C auch die Daten oder ggf. eine Prüfsumme zurückschicken - wie sich der Aufwand in Bascom verhält kann ich aber nicht sagen, denn da sind einige Teile recht langsam und andere spezielle Hardwarenahe Funktionen relativ schnell.

    Als weitere Alternative gibt es auch noch das SPI Interface: das braucht zusätzliche Pins, ist aber sonst eines der schnellsten, zumindest von der Hardware. Es fehlt vermutlich die gute Unterstützung die Bascom für die UART bietet.

Ähnliche Themen

  1. UART, RS232, I2C oder SPI?
    Von fabqu im Forum Robby RP6
    Antworten: 17
    Letzter Beitrag: 08.01.2011, 14:12
  2. BASCOM 2te UART oder software UART
    Von Snecx im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 18.02.2009, 23:25
  3. UART mit Qbasic auslesen oder senden !?!?!?
    Von Sven1277 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 17.06.2008, 17:02
  4. Interrupt (Oder Trick)beim Software Uart
    Von frank-wob im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 09.08.2006, 10:43
  5. UART-Verbindung -- TXC oder UDRE -Atmel 8535
    Von nabla im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 10.03.2006, 00:31

Berechtigungen

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

Labornetzteil AliExpress