Guten Abend,
ich habe mir den DMX (RS-485, 250kBaud) Analyzer von Henne nachgebaut.
http://hoelscher-hi.de/hendrik/light/dmxanalyzer.htm
Funktioniert soweit auch aber:
Wenn ich das Teil einschalte und bereits ein DMX Sender angeschlossen
und aktiv ist, startet der µC nicht. Schalte ich den Sender erst an,
nachdem der µC läuft, funktioniert es.
Der DMX Sender ist das USB Interface von Digital Enlightenment.
Wenn ich ein anderen Sender (Zero88 Sirius) anschliesse startet der µC
auch mit anliegendem Signal. Info: Dat Zero88 sendet weniger Kanäle
etwas längere Breaks und IBGs.
So als nächstes habe ich die Schaltung ein wenig geändert.
Resetbeschaltung 10k gegen VCC und 100n gegen GND, 2x 100n direkt am
7805, einen weiteren 100n am SN75176. Das half aber auch nichts.
Dann habe ich mir die Firmware vorgenommen und am Schluss ist das noch
übrig geblieben.
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 |
|
4 | int main ( void )
|
5 | {
|
6 | cli();
|
7 |
|
8 | DDRB |= (1<<PB0);
|
9 | PORTB |= (1<<PB0);
|
10 |
|
11 | DDRD |= (1<<PD1) | (1<<PD2); // PD0 RX
|
12 | // PD1 TX
|
13 | // PD2 Driver Enable
|
14 |
|
15 | uint32_t SysCnt = 0;
|
16 |
|
17 | while ( 1 )
|
18 | {
|
19 | if ( ++SysCnt >= 480000 )
|
20 | {
|
21 | SysCnt = 0;
|
22 | PORTB ^= (1<<PB0);
|
23 | }
|
24 | }
|
25 |
|
26 | return 0;
|
27 | }
|
Der Pin PB0 wird geschaltet wenn der µC läuft und ich dann das USB
Interface aktiviere. Er wird nicht geschaltet, wenn das Interface
bereits sendet und ich die Schaltung erst dann mit Strom versorge.
Ist soetwas normal? Fehler in der Hardware? Fehler in der Software?
Viele Grüße
Marc L.