hallo zusammen,
hab gerade das Problem, dass ich einen I2C Bus Baustein habe, der max. 100kHz verkraftet. Die I2C Bus Clock Frequenz ist fest auf 400kHz eingestellt. Hat jemand die Möglichkeit, einen neuen Befehl einzubauen (z.B. ICF=... [kHz]), mit dem man die Bus Frequenz ändern kann?
LG
Siegi
I2C Clock variabel
- siegiathome
- kann c't-Lab-Module umbauen
- Beiträge: 62
- Registriert: 30.11.2007, 11:43
Re: I2C Clock variabel
Hallo Siegi,
wenn Du es "nur mal schnell" ausprobieren willst, könntest Du die Quarzfrequenz auf 4 MHz reduzieren. Dadurch verringert sich zwar auch die UART-Baudrate, aber Du solltest mit 9600 Baud mit dem Controller kommunizieren können.
Viele Grüße
Thoralt
wenn Du es "nur mal schnell" ausprobieren willst, könntest Du die Quarzfrequenz auf 4 MHz reduzieren. Dadurch verringert sich zwar auch die UART-Baudrate, aber Du solltest mit 9600 Baud mit dem Controller kommunizieren können.
Viele Grüße
Thoralt
There are 10 kinds of people in this world: Those who understand binary and those who don't.
- siegiathome
- kann c't-Lab-Module umbauen
- Beiträge: 62
- Registriert: 30.11.2007, 11:43
Re: I2C Clock variabel
Hallo Thoralt,
da hab ich auch schon dran gedacht, wollte aber die restlichen Baugruppen nicht vom Bus abhängen bzw. auf eine andere Resonatorfrequenz umprogrammieren, da sonst die Antworten nicht durchkommen...
Trotzdem danke.
LG
Siegi.
PS:
hatte übrigens in der letzten Zeit öfter Probleme mit den ATMegas, bei denen der interne Resonator benutzt wird. Das Problem bestand darin, dass diese zu weit daneben lag, um eine Kommunikation per RS232 zu ermöglichen. Betraf mal eine komplette Charge mit 300 Stück...
da hab ich auch schon dran gedacht, wollte aber die restlichen Baugruppen nicht vom Bus abhängen bzw. auf eine andere Resonatorfrequenz umprogrammieren, da sonst die Antworten nicht durchkommen...
Trotzdem danke.
LG
Siegi.
PS:
hatte übrigens in der letzten Zeit öfter Probleme mit den ATMegas, bei denen der interne Resonator benutzt wird. Das Problem bestand darin, dass diese zu weit daneben lag, um eine Kommunikation per RS232 zu ermöglichen. Betraf mal eine komplette Charge mit 300 Stück...

- ompf
- kann c't-Lab-Module konstruieren
- Beiträge: 168
- Registriert: 19.01.2008, 13:03
- Wohnort: Dortmund
Re: I2C Clock variabel
Die initiale Kalibrierung ist spezifiziert mit 3% bei 25°C und 5,0V. Das ist für RS-232 schon grenzlagig. Über Temperatur und Alterung landest Du eher bei 10%.siegiathome hat geschrieben:hatte übrigens in der letzten Zeit öfter Probleme mit den ATMegas, bei denen der interne Resonator benutzt wird. Das Problem bestand darin, dass diese zu weit daneben lag, um eine Kommunikation per RS232 zu ermöglichen. Betraf mal eine komplette Charge mit 300 Stück...
Eigentlich müßtest Du bei einem empfangenen Datenwort die Breite des Startbits ausmessen (beim verwandten LIN-Bus wird extra hierzu 10101010 gesendet) und darauf Deine Oszillatorfrequenz nachstimmen. Klappt natürlich nur, wenn der andere Teilnehmer etwas genauer ist.
Gruß
Patrick
- ompf
- kann c't-Lab-Module konstruieren
- Beiträge: 168
- Registriert: 19.01.2008, 13:03
- Wohnort: Dortmund
Re: I2C Clock variabel
Das kannst Du notfalls sogar binär patchen. Im Code die Sequenzsiegiathome hat geschrieben:hab gerade das Problem, dass ich einen I2C Bus Baustein habe, der max. 100kHz verkraftet.
Code: Alles auswählen
; >> TWIPORT Init <<
LDI _ACCA, 00Ch
OUT TWBR, _ACCA
LDI _ACCA, 0FFh
STS TWI_DevLock, _ACCA
Gruß
Patrick