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?
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
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
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.