-
-
I2C Geschwindigkeit in Laufzeit variieren
Hallo zusammen,
stehe momentan vor dem Problem, dass ich an meinem ATMEGA16 drei I2C chips mit unterschiedlichen Geschindigkeiten habe. Der EEPROM arbeitet mit 400 kHz, der 16-bit-port-expander mit 800 kHz und die neue Echtzeit-Funkuhr mit 100 kHz... bisher habe ich den Hardware-TWI-Bus einfach auf 400000 laufen lassen und hingenommen, dass eben der Portexpander etwas langweiliger läuft... mit der Uhr müsste ich aber dann auf 100 khZ runter, was mir für den EEPROM dann schon etwas zu langsam wird... Daher die Frage:
kann ich den Befehl
Code:
Config Twi = 800000
auch einfach vor jeder Übertragung ausführen und somit jedes mal eine andere Taktrate bestimmen oder wie umgehe ich das problem mit der Echtzeituhr?
danke schonmal
msfuture
-
Erfahrener Benutzer
Robotik Einstein
Ausprobieren, ob Bascom das zulässt. Von der Hardware her ist es eigentlich kein Problem, wenn sichergestellt ist, dass dabei Ruhe auf dem Bus herrscht.
-
Also Bascom lässt das zu, ich werds mal versuchen sobald die Uhr da ist ob die dann antwortet (also ob Bascom das letztendlich auch wirklich übersetzt oder einfach ignoriert)...
Ruhe sollte auf jeden Fall herrschen, der ATMEGA ist der einzige Master auf dem Bus.
-
Erfahrener Benutzer
Robotik Einstein
Hallo,
in der Bascomhilfe steht bei Config TWI: "Reuseable: Yes", also spricht nix dagegen.
Evtl. etwas Pause einplanen nach dem Geschwindigkeitswechsel, damit die langsamen Slaves eine Ruhephase haben vor dem nächsten Start. Musst Du aber ausprobieren.
-
Erfahrener Benutzer
Robotik Einstein
Könnt mich zwar jetzt täuschen, aber gibts da nicht eh was wie "clock stretching", bei dem die langsameren Slaves den Bus einfach auf ihre Geschwindigkeit bremsen?
-
Erfahrener Benutzer
Robotik Einstein
Das clock stretching, bezieht sich aber nur auf die Zeit zwischen den einzelnen Bytes. Wenn ein Slave allg. zu langsam ist, bekommt der die Startsequenz schon garnicht mit !
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen