I2C Slave antwortet nicht richtig

Gast #934748
Hallo Forum,
ich habe ein kleines  Problem, ich habe einen DSP der über I2C mit einem 
Atmega8 kommunizieren soll, wobei der DSP der Master ist, der Atmega8 
soll nur im Slave Transmit Modus betrieben werden.
Er reagiert auch mit dem Interrupt auf die Anfrage des DSP aber 
antwortet nicht richtig. Anstatt der Daten die der Atmega8 senden soll, 
sendet er seine eigene Adresse.
Hier der Quellcode der Interruptroutine und die Initialisierung

1
TWI_INI:
2
  ldi        temp, ADRESS
3
  out        TWAR,temp          ; Adresse für das I2C Interface
4
  ldi       temp,(1<<TWEA)|(1<<TWEN)|(1<<TWIE)  ; TWI-Modul als Slave initialisieren
5
  out        TWCR,temp
6
  ldi        temp,0xFC
7
  out        TWSR,temp          ; Prescaler für TWI auf 1
8

9
;interrupt
10
I2CInt:
11

12
  in      Bufferi,SREG
13
  ldi     tempi, (1<<TWINT)|(1<<TWEA)|(1<<TWEN)|(1<<TWIE)    ; Interrupt Flag löschen
14
  out     TWCR,tempi  
15
  in       Tempi, TWSR    ; Status-Register abfragen            
16
  andi     Tempi, 0xF8    ; Bit0...2 ausblenden (Prescaler und Reserve-Bit)
17

18
  cpi     Tempi, TW_ST_SLA_ACK          ; 0xA8   SLA+R
19
  breq     TWSI_TW_ST_SLA_ACK  
20
TWSI_TW_ST_SLA_ACK:            ; xA8   10101000 (SLA+R wurde empfangen; ACK wurde zurückgesendet)    
21
  sbi    PortD,1    
22
  out    TWDR,temp2
23
  cbi    PortD,1
24
  ldi    Tempi, (1<<TWINT|1<<TWEA|1<<TWEN|1<<TWIE)
25
  out    TWCR,Tempi
26
  out      SREG,Bufferi
27

28
reti

über den Trigger an PD1 sehe ich, das er auch jedes mal da lang kommt?

Sieht hier jemand einen Fehler?

Gruß
Mathias

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.