ATMEGA128: Resetsignal zwischen UART-Übertragung

Gast #219494
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?
Gast #219496
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
Gast #219497
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...
Gast #219498
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
Angehängte Dateien:

Antwort schreiben

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.

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.