DMX receive: kein framing-error

OP #1386733
Hi,

ich hab ein paar Schwierigkeiten mit dem USART vom AT91SAM9263 
Controller. Die DMX-Daten kommen zwar an, aber ich kann nicht auf den 
Break-Impulse synchronisieren (es findet kein Frame-Error etc. statt).

Die übertragenen DMX-Werte werden jedoch richtig erkannt und dargestellt 
- nur auf der falschen Position.

1
void USART_Configure(AT91S_USART *usart,
2
       unsigned int mode,
3
       unsigned int baudrate,
4
                     unsigned int masterClock)
5
{
6

7
// Reset and disable receiver & transmitter
8
usart->US_CR = AT91C_US_RSTRX | AT91C_US_RSTTX | AT91C_US_RXDIS | AT91C_US_TXDIS;
9

10
// Configure mode
11
usart->US_MR = mode;
12

13
// Configure baudrate
14
// Asynchronous, no oversampling -> dmx is asynchron 
15
if(((mode & AT91C_US_SYNC) == 0)
16
    && ((mode & AT91C_US_OVER) == 0)) {
17
    
18
     usart->US_BRGR = (masterClock / baudrate) / 16;
19
}
20

21

22
}
23

24

25
void Usart_Init(void)
26
{
27
  unsigned int mode = AT91C_US_USMODE_NORMAL
28
    | AT91C_US_CLKS_CLOCK
29
                  | AT91C_US_PAR_NONE
30
    | AT91C_US_CHRL_8_BITS
31
                  | AT91C_US_NBSTOP_2_BIT
32
    | AT91C_US_CHMODE_NORMAL;
33

34
  AT91F_US0_CfgPMC(); 
35
  AT91F_US0_CfgPIO();
36
  USART_Configure(AT91C_BASE_US0, mode, 250000, CLOCK_FREQ2);
37
  AT91C_BASE_US0->US_IER = AT91C_US_RXRDY | AT91C_US_FRAME;
38
  AT91F_AIC_ConfigureIt();
39
  AT91F_AIC_EnableIt();
40
  AT91C_BASE_US0->US_CR = AT91C_US_RXEN;
41
}

Vielleicht hat jmd von euch eine Idee, an was das liegen könnte. Wenn 
ich die Baudrate ändere, dann bekomm ich Framing-Error angezeigt, jedoch 
sind natürlich dann auch die DMX-Werte falsch.

Gruß
Bernd
Gast
250kBaud, 8n2 ist auf jeden Fall richtig.

Bei AVRs hakelt es dann meistens am Takt oder an einem verpolten 
DMX-Signal, wenn es nicht klappt.

Was ist denn Deine DMX-Quelle? Hast Du mal den Rx-Pin mit GND verbunden 
- das müsste auch als Break erkannt werden.

Schade, dass ich bislang nicht mit ARMs gewerkelt habe...


VG,
Hendrik

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.