Ich bin gerade von mein I2C Sklave versuch entseucht davon gekommen. Hat es jemand schon probiert?
Nach ich das Assembler geschrieben hab (und unerfolgreich getestet hab) stellte ich etwas fest. Der Mc05 ist nicht schnell genug ein 100KHz I2C Sklave zu sein.
Kann jemand das bestätigen?
Hier sind meine Berechnungen.
4MHz clock / 100KHz standard bit rate = 40 cycles per pulse. (Falling Edge to Falling Edge)
=>20 cycles SCL low.
Relevantes Assembler:
Code:
READ_ADDRESS
ldx #8 ; a bits to read
lda #0 ; set read byte to 0
L1 brset scl,bport,L1 ; wati for SCL to drop
L2 brclr scl,bport,L2 ; wati for SCL to raise again
brclr sda,bport,LOW1; dont update acc if data is zero
ora mask,x ; add relevant bitmask to acc
LOW1 decx
bne L1
“Worst Case” kommt day auf wesendlich mehr als 20 cylces? Oder hat jemand es besser lösen können.
Leider wird ich jetzt probieren den MC05 als Master einzusetzen, so das er den clock beherrschen kann, aber das ist mir nicht ganz recht.
Lesezeichen