ich habe die DMX512-RGBWLED Schaltung+Code als Vorlage verwendet um einen Einkanal DMX-Switch zu bauen.
Leider will mein AVR partout das DMX nicht korrekt empfangen. Eine "Debugausgabe" in Form von Togglen einer LED in der DMX Empfang Routine zeigt mir, dass anscheinend nach dem Frame Error kein Null empfangen wird:
Code: Alles auswählen
ISR (USART_RX_vect) {
....
if (USARTstate &(1<<FE)) { //check for break
OKAY HIER geht er rein
}
else if (DmxState == BREAK) {
hier auch noch....
if (DmxByte == 0) {
aber hier nicht mehr...
....
}
else gDmxState= IDLE;
}
....
}
Ich setze (entgegen dem Schaltplan) einen 16Mhz Quarz ein, im Makefile und auch in der main.h habe ich F_CPU sowie F_OSC angepasst.
Laut AVR Handbuch sind 16Mhz auch 0% Error Rate bei 250kbaud...
Ich bin ratlos.
Lasse ich den AVR den Clock auf PORTD2 ausgeben, sehe ich auf dem Oszi 16Mhz...
Fuses: LFUSE=0xFF HFUSE=0xDF EFUSE=0xFF
Hat irgendwer noch eine Idee, wo es hängt?
DMX Senden tue ich mit dem DE-USB Interface. Meine sonstige DMX Hardware funktioniert einwandfrei, auch eine Änderung der Timing-Optionen bringt keine Hilfe.
DMX Polung habe ich schon getausch, und am MAX481 Pin 1 habe ich auch das DMX Signal (respektive an PORTD0).
*ratlos* und vielleicht schon Blind...
Zu Hilfe!
Grüße
Lucas