Fleury I2C mit 400kHz

Gast #364213
Lesenswert?
• ▲
▼
Hallo,

ich bin etwas überfordert. Ich möchte Fleurys I2C Lib mit 400kHz
nutzen. Wie muß ich denn die Delays anpassen für einen MEGA128 mit 2
MHz?

;*********************************************************************** 
**
; delay half period
; For I2C in normal mode (100kHz), use T/2 > 5us
; For I2C in fast mode (400kHz),   use T/2 > 1.3us
;*********************************************************************** 
**
  .stabs  "",100,0,0,i2c_delay_T2
  .stabs  "i2cmaster.S",100,0,0,i2c_delay_T2
  .func i2c_delay_T2  ; delay 5.0 microsec with 4 Mhz crystal
i2c_delay_T2:        ; 4 cycles
  rjmp 1f      ; 2   "
1:  rjmp 2f      ; 2   "
2:  rjmp 3f      ; 2   "
3:  rjmp 4f      ; 2   "
4:  rjmp 5f      ; 2   "
5:   rjmp 6f      ; 2   "
6:  nop          ; 1   "
  ret          ; 3   "
  .endfunc     ; total 20 cyles = 5.0 microsec with 4 Mhz crystal


Grüße
Günni
Moderator Persönliche Seite #364215
Lesenswert?
• ▲
▼
Nö, man muss die Verzögerung ja vierteln (100 kHz -> 400 kHz),
also 15 der 20 Zyklen weglassen.  Das geht mit dem call/ret
Konzept schon nicht mehr, da bereits ohne allen ,,Füllstoffs''
7 Zyklen für call und ret draufgehen.  Man müsste dann entweder
auf ein inline-delay ausweichen (z. B. 5 NOPs) oder einfach
damit leben, dass die 7 Zyklen eben nur ca. 300 kHz Takt
ergeben.
Gast #364218
Lesenswert?
• ▲
▼
@Michael
Wieso Halbierung, dann würde es ja noch langsamer werden.

Wie müsste es denn mit "Inline-NOPs" aussehen? Ich habe das gleiche
Problem und würde gerne bei 2 MHz Takt bleiben. Da ich keine Ahnung von
Assembler habe wäre ich für einen Codeschnipsel sehr dankbar...


Dirk

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.