-
-
Erfahrener Benutzer
Roboter Experte
Schnellste serielle Schnittstelle
Hallo Leute,
Für mein Projekt brauche ich einen sehr schnellen Bus. Ein paralleler Bus schließt sich fast aus, da ich kaum mehr freie Pins am ATmega16 frei habe.
Der Takt ist 16MHz.
I²C (TWI) ist superlangsam, hat einen maximalen Takt von 100kHz (dazu kommen noch Adressbits)
Der USART ist da etwas schneller, hat sowei ich weiß bei 16MHz einen max Takt von 1Mhz (oder 0,5MHz??).
Das SPI scheint am schnellsten zu sein, mit einem maximalen Takt von 4MHz (1/4 des Systemtakts)
Stimmt das alles, oder habe ich irgeneinen Fehler reingebastelt?
Was ich so komisch finde ist, das I²C so furchtbar langsam ist. Wie kommt das?
Gruß, Yaro
Edit: meine Infos habe ich aus dem Buch "mikrocomputertechnick mit Controllern der Atmel AVR-RISC-Familie 4. Auflage"
Ich habe gerade bei Wiki gelesen, dass I²C bis zu 3,4MHz Takt hat. Stimmt das?
-
Erfahrener Benutzer
Robotik Visionär
Der I2C geht soweit ich weiß bis 400kHz
-
Erfahrener Benutzer
Roboter Experte
Jetzt habe ich noch was neues herausgefunden:
"Der Bus hat in der aktuellen I2C-Spezikation 2.1 von 2001 eine maximale
Datenübertragungsrate von 3,4 Mbit/s (High-Speed Modus), jedoch ist der
ATmega 16 ein Fast-Mode Gerät, daher können nur Übertragungsraten von
maximal 400 kbit/s verwendet werden."
-
Erfahrener Benutzer
Robotik Visionär
Sher interresant, das habe ich nicht gewusst
-
Erfahrener Benutzer
Roboter Experte
Noch was neues:
TWI stands for Two Wire Interface and for most marts this bus is identical to I²C. The name TWI was introduced by Atmel and other companies to avoid conflicts with trademark issues related to I²C. A description of the capabilities of TWI interfaces can be found in the data sheets of corresponding devices. Expect TWI devices to be compatible to I²C devices except for some particularities like general broadcast or 10 bit addressing.
For the time being there is also no TWI high speed mode.
If you have an I²C analyser it will work with a TWI set-up as well without modifications.
-
Erfahrener Benutzer
Roboter Genie
SPI geht bis hahlbe Takfrequeunz: 8MHz
Gruß
-
Erfahrener Benutzer
Robotik Einstein
uart kann man im synchron modus glaube auch bis 8Mhz fahren bei 16Mhz clock! oder ich hab die formel im datenblatt falsch interpretiert (iss ja quasi nix anderes als SPI nur verschwendet der noch 2-3 bits für start und stop, was allerdings der fehlererkennung dienlich ist!)
-
Erfahrener Benutzer
Roboter Genie
Wir haben I2C bei unsrem Bot im Einsatz, und haben mit einigen Experimenten die maximal stabile Frequenz auf 340-360 kHz eingestellt. Darüber funktionierte die Übertragung nicht mehr.
-
Erfahrener Benutzer
Robotik Visionär
Das Senden (bzw. als Master) geht der 8 MHz takt bei SPI, als Slave geht es soweit ich weiss nicht so schnell. Da sollten wenigstens 4 Takte je Bit vorgesehn sein. Damit man noch etwa Reserve hat, weil die Quarze ja nicht 100% gleich sind, wird man eventuell sogar 6 Takte nehmen müssen. Und weil das vermutlich nicht einzustellen ist, könnte es sein das 8 Takte je Bit wohl das minimum sein wird.
-
Erfahrener Benutzer
Roboter Experte
Als Slave braucht man für SPI tatsächlich 4 Takte, als Master gehen auch 2 (wieso eigentlich nicht auch 1???)
Ich hatte SPI mal mit 8MHz laufen, mit 1/4 Takt (master und salve), und es lief ohne Fehler. Habe sogar interne Oszilatoren verwendet, die ja nicht so genau sind....
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen