mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega8L und Atmel ATZB-24-A2


Autor: Luc Knaepkens (studioluc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Ich versuche mich gerade an Atmels's ATZB-24-A2 zigbee... Eigentlich 
funktioniert alles wunderbar, die modulen sind echt klasse.

Fuer meine applikation habe ich mich entschlossen in mein design ein 
Atmega8L als steuerung zu verwenden, und die firmware serialnet. Das hat 
auch soweit alles geklappt, aber jetzt moechte ich die geraetschaften 
synchron bekommen. Der Atmega ist nach reset sofort verfuegbar, das 
zigbee modul braucht seine weile bis es "ready" ist. Jetzt habe ich mir 
gedacht, nutze vom Zigbee modul das DTR um den uC zu ermitteln das das 
modul fertig ist. ALso DTR an ein eingangspin und ab dafuer.

Jetzt kommt mein problem. Wenn ich mein oscilloscoop an den DTR vom 
modul haenge (der an pin PD3 vom atmega haengt), laeuft alles wunderbar. 
Die software aufm atmega wartet brauf bis DTR hoch geht. Dauert irgendwo 
zwischen 3 und 5 secunden. Alles paletti. Wenn ich mein osci von den pin 
entferne, verhaelt sich die software vom atmega anders. Nach ungef. 250 
millisecs ermittelt er bereits ein high an DTR und sagt ich bin soweit. 
Kan es sein das durch unterschiedliche belastung das DTR signal an der 
zigbee seite sich von alleine nach oben schwingt? Ich meine, dummes 
problem, weil wenn ich es versuche zu messen, funktioniert ja alles 
wunderbar :-))) Hilfe benoetigt hier grins...

Achso, der pullup wiederstand von PD3 ist aus, und ja, der port ist als 
eingang konfiguriert seitens den Atmega...

Autor: Mike J. (emjey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Füge einen Widerstand zwischen Masse und DTR hinzu, das sollte dein 
Signal unten halten.

Autor: Peter Roth (gelb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mike J. schrieb:
> Füge einen Widerstand zwischen Masse und DTR hinzu, das sollte dein
> Signal unten halten.

... weil die Signale nach dem Einschalten hochohmig sind (tri-state).

Grüße, Peter

Autor: Luc Knaepkens (studioluc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mmm... das war mein erster versuch bevor ich gepostet habe. das hatte 
ich auch vermutet.... sorry das ich das nicht erwaehnt habe. Aber: wenn 
ich das mache bleibt DTR leider 0... sprich, er zieht nie hoch...

Autor: ??? (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wofür brauchst du jetzt den Atmega8L??
Du kannst doch den ATMega1281 des Moduls für die Steuerung verwenden!
Dann gehts natürlich nicht mehr mit serialnet Firmware...

Autor: Luc Knaepkens (studioluc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich moechte die serialnet firmware nutzen. ich habe mir das ueberlegt 
mit der 1281 weil das schon eine tolle sache ist mit dem integrierten 
kontroler. aber ich mache erst mal gehversuche mit dem modul, bevor ich 
an ein marathon anfange :-) das mit dem DTR hat sich auch lustig 
weiterentwickelt. Mit scoop nochmals ueberprueft: pin bleibt nach 
anschliessen von wiederstand zu masse 5 secunden unten. Laut software 
atmega aber kommt sie nicht hoch. wenn ich es nachmesse stimmt es aber.

mein code in C:

DDRD = 0x00;
PORTD = 0x00;

Ich nutze sonst keine pins auf D, daher einfach alles 0.
dan pruefe ich PD3 in eine loop:

while( 1 )
  {
    length = sprintf( txt, "%x", PIND );
    send_text( txt, length );

    _delay_ms( 250 );
  }

send_text schickt text an mein pc ueber UART / FT232 USB als virtueller 
PORT. Die werte die ich reinbekomme:

nach reset   : 0x01
nach 100msecs: 0x03

die werte bleiben jetzt gleich mit oder ohne scoop nach anloeten von 
R=10K um das tristate problem zu loesen. Aber PIND bekommt nummer 3 
(PD3) nie als hoch...

Autor: Peter Roth (gelb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Laut Datenblatt ist DTR ein Eingang des Moduls...

Dort ein Signal zu erwarten ist sehr gewagt. Dort gibt es ja nur den 
"Unterschied" zwischen tri-state und echtem Eingang.

Grüße, Peter

Autor: Luc Knaepkens (studioluc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wer lesen kan ist klar im vorteil. oh boy.das erklaert ne menge :-)
ich habe inzwischen eine andere loesung fuer mein problem. Das zigbee 
modul quittiert ueber sein uart mit "OK" wenn es soweit ist. Da ich 
inzwischen meine RX interrupts auf mein Atmega8 fertif habe, warte ich 
softwaremaessig auf ein "OK" und dan kanns los gehen :-)

Trotzdem vielen dank fuer alle eure tips und hilfe. Wenn man zulange an 
ein problem werkelt sieht man durch den walt die baeume manchmal nicht 
mehr!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.