Доброго времени суток,
Пытаюсь соединить 2 одинаковые устройства по IRDA, приёмники RPM872-H14,
передача работает, на стороне приёма вижу отрицательные импульсы идущие в порт,
однако байты не принимаются - прерываний нет, когда переключаю на AT91C_US_USMODE_NORMAL и подаю обычный сигнал 232, приём есть.
Вот код инициализации:
CODE
AT91S_USART * pUSART = AT91C_BASE_US0; // pointer to Com0
AT91F_US0_CfgPMC();
*AT91C_PIOA_PDR = AT91C_PA5_RXD0 | AT91C_PA6_TXD0;
*AT91C_PIOA_ASR = AT91C_PA5_RXD0 | AT91C_PA6_TXD0;
pUSART->US_CR = AT91C_US_RSTRX | /* Reset Receiver */
AT91C_US_RSTTX | /* Reset Transmitter */
AT91C_US_RXDIS | /* Receiver Disable */
AT91C_US_TXDIS; /* Transmitter Disable */
pUSART->US_MR = AT91C_US_USMODE_IRDA |
AT91C_US_CLKS_CLOCK | /* Clock = MCK */
AT91C_US_CHRL_8_BITS | /* 8-bit Data */
AT91C_US_PAR_NONE | /* No Parity */
AT91C_US_NBSTOP_1_BIT; /* 1 Stop Bit */
pUSART->US_FIDI = 2;
pUSART->US_IF = 5;
pUSART->US_BRGR = 312; // 9600 @ 48Mhz
// interrumps ...
pUSART->US_CR = AT91C_US_RXEN ;
AT91F_US_EnableIt( pUSART, AT91C_US_RXRDY );
/* Enable the interrupts in the AIC. */
AT91F_AIC_ConfigureIt( AT91C_BASE_AIC, AT91C_ID_US0, 3, 0, ( void (*)( void ) ) vSerialISREntry0 );
AT91F_AIC_EnableIt( AT91C_BASE_AIC, AT91C_ID_US0 );
Игра с установкой FILTER = 1, US_IF, никакого результата не дала.
Что делаю не так?
http://electronix.ru/forum/style_emoticons...t/smile3046.gifСапсибо за ответы.