Bom dia pessoal.
Estou pesquisando o uso das USARTs do arduino Due, e me deparei com uma situação
que ainda não encontrei respostas.
O arduino Due usa o chip ATSAM3X8E.
Olhando no data sheet dele consigo identificar que ele tem uma UART e 4 USARTs.
http://www.atmel.com/Images/Atmel-11057-32-bit-Cortex-M3-Microcontr...
Apesar da informação na pag 3 dizer que são 3 USARTs, na Figura 2-3 Pag 6 podemos
encontrar 1 UART e 4 USARTs com as seguintes saídas.
UART Saidas URXD e UTXD
USART0 Saidas RXD0 e TXD0
USART1 Saidas RXD1 e TXD1
USART2 Saidas RXD2 e TXD2
USART3 Saidas RXD3 e TXD3
Na Table 35.3 também mostra os pinos de saída do CI com as 4 USARTs listadas. (Pag.773).
Neste diagrama na pagina oficial do arduino Due, também mostra as 4 saidas, mas
com nomes trocados.
https://www.arduino.cc/en/uploads/Main/arduino-Due-schematic.pdf
Pinos PA8 e PA9 identificados no esquema como RX e TX esto identificados na placa
como RX0 e TX0. (Port 0 e 1). (No datasheet URXD e UTXD UART).
Pinos PD5 e PD4 identificados no esquema como RXD0 e TXD0 estão identificados na placa
como RX3 e TX3. (Port 15 e 14). (No datasheet RXD3 e TXD3 USART3).
Pinos PA13 e PA12 identificados no esquema como RXD1 e TXD1 estão identificados na placa
como RX2 e TX2. (Port 17 e 16). (No datasheet RXD1 e TXD1 USART1).
Pinos PB21 e PB20 identificados no esquema como AD14RXD3 e AD11TXD3 estão
identificados na placa como 52 e A11. (No datasheet RXD2 e TXD2 USART2).
Pinos PA10 e PA11 identificados no esquema como RXD2 e TXD2 estão identificados na placa
como RX1 e TX1. (Port 19 e 18 ). (No datasheet RXD0 e TXD0 USART0).
A UART é usada pelo serial do arduino. e usa os ports RX0 e TX0.
As USART são numeradas como Serial1, Serial2 e Serial3.
e usam os ports:
Serial1 RX1 e TX1 Ports 19 e 18;
Serial2 RX2 e TX2 Ports 17 e 16;
Serial3 RX3 e TX3 Ports 15 e 14;
Bom depois deste nó com tudo trocado, ficam as perguntas:
Como usar a USART2 no arduino Due, e porque esta confusão todo de troca de nomes?
RV
Tags:
Bom dia José Gustavo Abreu Murta.
Obrigado pela sua sugestão.
Mas a questão principal é: Não encontrei ainda com usar as 4 USARTs do Due.
Só consigo usar 3.
As marcadas na placa como:
TX/RX1(USART0),
TXRX2(USART1) e
TXRX3(USART3), e uma
UART, a TX/RX0.
Não encontrei ainda como usar a USART2.
Veja o que preciso, consigo fazer e funciona:
DmxDue DmxDue0(USART0, USART0_IRQn, ID_USART0, dmx_rx_buffer0, dmx_tx_buffer0);
DmxDue DmxDue1(USART1, USART1_IRQn, ID_USART1, dmx_rx_buffer1, dmx_tx_buffer1);
DmxDue DmxDue3(USART3, USART3_IRQn, ID_USART3, dmx_rx_buffer3, dmx_tx_buffer3);
Mas não consigo definir
DmxDue DmxDue2(USART2, USART2_IRQn, ID_USART2, dmx_rx_buffer2, dmx_tx_buffer2);
RV
Boa tarde Grande Rui,
recomendo que pesquise no GitHub Arduino Core-SAM ( DUE) :
https://github.com/arduino/ArduinoCore-sam
https://github.com/arduino/ArduinoCore-sam/blob/f5cbedd4e845b0fbb81...
Veja se entende essa confusão :
// 14/15 - USART3 (Serial3)
{ PIOD, PIO_PD4B_TXD3, ID_PIOD, PIO_PERIPH_B, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // TXD3
{ PIOD, PIO_PD5B_RXD3, ID_PIOD, PIO_PERIPH_B, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // RXD3
// 16/17 - USART1 (Serial2)
{ PIOA, PIO_PA13A_TXD1, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // TXD1
{ PIOA, PIO_PA12A_RXD1, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // RXD1
// 18/19 - USART0 (Serial1)
{ PIOA, PIO_PA11A_TXD0, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // TXD0
{ PIOA, PIO_PA10A_RXD0, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // RXD0
Oi José Gustavo Abreu Murta.
Percebeu q não tem a USART2. Porque será?
Qdo vc instala os drivers do Arduino DUE na IDE do arduino, estas bibliotecas que você mostrou o link,
são instaladas no diretório:
\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.11\cores\arduino.....
do windows.
RV
Rui, o site GitHub é onde esta armazenado o CORE da IDE do Arduino.
É onde ficam os fontes (sources) dos programas.
É exatamente uma cópia do que fica no diretório que especificou (pode haver diferenças, dependendo das versões).
Você sabe que o Processador ARM Cortex tem GPIOs , isto é General purpose I/Os.
Isso implica que um port pode ter mais de uma função. Não pesquisei a fundo, mas acho que a USART2 não foi designada na IDE, talvez por uma limitação do projeto ou por alteração de função de algumas portas.
Você vai precisar das 4 portas USARTs ??
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por