mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMEGA128: Resetsignal zwischen UART-Übertragung


Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich muss bei einem ATMEGA128 für ein an der USART1-Schnittstelle
angeschlossenes Gerät nach jedem Senden von mehreren Bytes ein
RESET-Signal senden.
Dieses Reset-Signal besteht aus einer NULL für ca. 100us.
Ich hab schon probiert einfach mal den entsprechendne I/O-Pin einfach
mal für die Zeit auf NULL zu setzen, aber dann funktioniert
anschließend meine Schnittstelle nicht mehr.
Was hab ich falsch gemacht?
Gibt es auch noch eine andere Möglichkeit das Reset-Signal zwischen den
Übertragungen zu senden?

Autor: Togger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Bernd,
hast das mal über nen pullup probiert?
d.h. den pullup vor den Pegelwandler gesetzt, den dann mittels AVR Pin
für 100us auf 0 ziehst.
Nur mal sone Idee....

lg Ralf

Autor: gregor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

um ein RESET zu erzeugen ist es am einfachsten den USART abzuschalten
und nach 100µs USART wieder einschalten.

z.B.:
>>  Übertragung beendet  <<
  cbi UCR, TXEN    ; TXEN=0
  cbi PORTD, TXD    ; TXD=0

>>   hier z.B. Schleife mit 100µs einsetzen  <<

  sbi PORTD, TXD    ; TXD=1
  sbi UCR, TXEN    ; TXEN=1

>>  Übertragung wieder Beginnen  <<

So wirds zu Beispiel für ein DMX Signal (RS-485 unidirektional) meist
gemacht.

mfg

gregor

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das Programm is ja auch als DMX-Sender gedacht.
Funktioniert jetzt auch ohne Probleme. DANKE!!!

Weist du zufällig auch wie man DMX-Signale empfängt? Ich hab nämlich
keine Ahnung, wie ich das RESET-Signal wieder abfragen soll...

Autor: gregor (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bernd,

der RESET wird über FrameError und dem darauffolgenden Kanal 0 mit den
Daten 0 erkant.
Anbei ein Code für einen DMX Tester (Emfangen) mit dem 8515.
Habe ihn irgendwo mal im Netz gefunden.
DMX wurde hier im Forum auch schon oft besprochen:

___________________________________________________________________
Re: DMX mit AVR empfangen - wer hats schon gemacht?   Beitrag melden
Autor: Stefan Kleinwort - microcontrollerelectronic-solutions.de
Datum: 07.03.2004 15:36
Ich würde alles in der IR-Routine machen, inkl. FE-Erkennung.

Wenn FE, dann Kanal-Nr NULL setzen.

Wenn Kanal-Nr = NULL, dann muss empfangenes Byte auch NULL sein,
ansonsten sind die Daten ungültig -> verwerfen bis zum nächsten FE.

Wenn Kanal-Nr >= Empfangs-Kanal, dann Empfangsdaten in einem
Empfangs-Array speichern. Auf diese Daten kann dann das HP zugreifen.

Sinnvoll ist es, bei gültigen Daten eine LED und dazu einen Timer zu
setzen. Die LED zeigt den DMX-Empfang an, wenn der Timer abgelaufen
ist
oder ungültige Daten empfangen werden, wird die LED wieder gelöscht.
Sehr hilfreich bereits während der Entwicklung und auch später beim
Betrieb!

Stefan
__________________________________________________________________
http://www.mikrocontroller.net/forum/read-1-71031.html#71031
------
http://www.mikrocontroller.net/forum/read-1-51427.html#51427

usw.

mfg

gregor

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.