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

Exibições: 647

Responder esta

Respostas a este tópico

Boa noite amigo, 

Essa mudança de Ports também ocorre no Arduino UNO. Talvez  para facilitar a compreensão. 

Veja os pinos D08 a D13 (PB0 a PB5) :

Para usar a USART2 do Arduino DUE eu seguiria as informações da IDE, pois nela estão as tabelas das portas. 

TXD2 = A11 

RXD2 = D52 (pino 52) 

Abraços, 

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 ??

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço