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


von Bernd (Gast)


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?

von Togger (Gast)


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

von gregor (Gast)


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

von Bernd (Gast)


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...

von gregor (Gast)


Angehängte Dateien:

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.