mega8 und TWI = Problem

  • 1
  • 2
  • Page 1 of 2
AVR-Bastler
 
Avatar
 
Subject:

mega8 und TWI = Problem

 · 
Posted: 26.01.2011 - 16:57  ·  #1
Hallo zusammen,
im Moment bastel ich gerade an einer Master-Slave Kommunikation zweier ATmega über TWI.
Dazu habe ich zwei mega8 im Einsatz und entsprechend jeweils SCL bzw. SDA verbunden.
Es sollen ausschließlich Daten vom Master an den Slave gesendet werden.

Bei einem Versuch den Slave anzusprechen, meldet dieser entsprechend Ack zurück.
Allerdings ändert der Slave weder den Zustand seiner Schnittstelle (meldet also immer bei der Abfrage von TWIgetRDY ein true), noch kann ich auf gültige Daten im RxBuffer zugreifen (TWIgetRxStat immer false).
Ob ich den handshake oder transparent Modus wähle, ist egal.

Hat da jemand ne Idee zu?
Ich benutze die kostenlose Mega8 Version 4.99.00. Das ist die zur Zeit downloadbare Version.
In den Release-News habe ich gelesen, dass seit der Vollversion mit dieser Versionsnummer und der aktuellen Version, der TWI Treiber für den Slave mehrfach überarbeitet wurde. Unter anderem wurde auch ein bug beseitigt.
Könnte das die merkwürdige Verhaltensweise erklären, oder was kann da los sein?

Grüße vom AVR-Bastler
Gunter
Administrator
Avatar
Gender:
Location: Frankfurt Main / Germany
Posts: 1697
Registered: 02 / 2003
Subject:

Re: mega8 und TWI = Problem

 · 
Posted: 26.01.2011 - 18:56  ·  #2
Hallo,

für alle Voll-Installationen werden immer nur die Major Releases veröffentlicht (x.xx.00).
Erst durch Menu "Info" - "Internet Upadte" kommt man dann zur aktuellen Version.
Dies gilt auch für die Demo-/Mega8-Version.

Gunter
AVR-Bastler
 
Avatar
 
Subject:

Re: mega8 und TWI = Problem

 · 
Posted: 27.01.2011 - 16:31  ·  #3
Hallo Gunter,

danke für den Tipp. Da mein "Bastel-Rechner" keinen Internet-Zugang besitzt,
habe ich diese Vorgehensweise nie probiert.
Nun habe ich das Programm auf meinen Internet-Rechner installiert und mir darüber das Update gezogen. :D

Nur leider hatt das Update nicht den erhofften Erfolg gebracht.
Das Problem mit dem nicht reagierenden Slave besteht weiterhin.
Noch ne Idee?
Ist mir ein Rätsel.

Grüße vom AVR-Bastler
Gunter
Administrator
Avatar
Gender:
Location: Frankfurt Main / Germany
Posts: 1697
Registered: 02 / 2003
Subject:

Re: mega8 und TWI = Problem

 · 
Posted: 27.01.2011 - 18:09  ·  #4
Hallo,

hört sich nach einem Hardware Problem an!
Sind die Pullup Widerstände sauber dran (1k sollte OK sein)?
Ist das Bezugspotential (GND) ordentlich verbunden?

Wenn das nicht hilft, mal zwei möglichst kurze Demos (Master+Slave)
schreiben und hier im Forum einstellen.
Es findet sich sicher ein User, der sich das mal anschaut -
ich selber habe TWI Kommunikation noch nicht real ausprobiert.

Gruß
Gunter
AVR-Bastler
 
Avatar
 
Subject:

Re: mega8 und TWI = Problem

 · 
Posted: 28.01.2011 - 18:07  ·  #5
Juhu,
habe es endlich hin bekommen. :D :D

Das Ganze hatte anscheinend mit der Funktion TWIstat zu tun. Mit dieser hatte ich beim Master im "Loop" abgefragt, ob der Slave da ist. Danach wurden die Daten mit TWIout geschickt. Selbst mit einem mDelay dazwischen, hat es nicht gefuntzt. Jetzt ist die Abfrage raus und es geht.
Hier mal ein kurzes Demo vom Master, das nicht funktioniert:
Code

loop
  if TWIstat(TWIaddr) = true then               //erzeugt das Fehlverhalten
    mDelay(10);
    if TWIout(TWIaddr, $01, data) = true then
      PortB := %00000001;
    else PortB := %00000000;
    endif;
  endif;
endloop;


Direkt vor vor dem "Loop" kann ich ruhig abfragen, dann klappt es auch.
Kann sich da jemand einen Reim draus machen?

Grüße vom AVR-Bastler
ThomasW69
 
Avatar
 
Subject:

Re: mega8 und TWI = Problem

 · 
Posted: 28.01.2011 - 20:27  ·  #6
Hängt das vielleicht mit der Xmega Implementierung von TWIStat zusammen. Die funktioniert ja aus unerklärlichen Gründen noch nicht.
Ich bin deshalb auf den Softwaretreiber ausgewichen. Könnte sich da eventuell ein Bug in die Implementierung bei den normalen Megas eingeschlichen haben?
Merlin
Administrator
Avatar
Gender:
Age: 24
Posts: 1373
Registered: 03 / 2005
Subject:

Re: mega8 und TWI = Problem

 · 
Posted: 30.01.2011 - 15:20  ·  #7
Hi AVR-Bastler.

Perhaps I miss the point here, but TWIStat is only true if a slave sends data. Is that valid here?

Regards

Merlin
AVR-Bastler
 
Avatar
 
Subject:

Re: mega8 und TWI = Problem

 · 
Posted: 31.01.2011 - 16:50  ·  #8
Hi Merlin,

the TWIStat is to check, if the slave is connected to the master.
In that case, the function returns a "true".

I have problems by using this function in the "loop".
When i send TWIout from the master to the slave (after the TWIStat),
the slave answers with ack, but the data witch was send is not available in the rxBuffer.
I dont have the problem, when i use the TWIstat before the "loop".

Regards
AVM-Bastler
  • 1
  • 2
  • Page 1 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   127   141 · Page-Gen-Time: 0.025019s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI