用户工具

站点工具


ocrobot:alpha:d21g18a:tutorial02

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

ocrobot:alpha:d21g18a:tutorial02 [2019/07/16 06:22] – 创建 弘毅ocrobot:alpha:d21g18a:tutorial02 [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 +======如何调用更多的串口=====
  
 +一般来说,我们手中的d21g18a拥有两个串口, SerialUSB,与Serial1(0,1)
 +
 +当然我们可能会需要Serial2什么的时候,可以参考下面的范例
 +
 +
 +<code cpp>
 +#include <Arduino.h>   // required before wiring_private.h
 +#include "wiring_private.h" // pinPeripheral() function
 +
 +Uart Serial2 (&sercom1, 11, 10, SERCOM_RX_PAD_0, UART_TX_PAD_2);
 +void SERCOM1_Handler()
 +{
 +  Serial2.IrqHandler();
 +}
 +
 +void setup() {
 +
 +  Serial2.begin(115200);
 +  
 +  // Assign pins 10 & 11 SERCOM functionality
 +  pinPeripheral(10, PIO_SERCOM);
 +  pinPeripheral(11, PIO_SERCOM);
 +}
 +void loop() {
 +  Serial2.print("d");
 +  delay(10);
 +}
 +
 +</code>
 +
 +
 +=====原理=====
 +
 +|  Pin  |   Arduino 'Pin'     SERCOM     SERCOM alt   |
 +|   PA11     D0           SERCOM0.3     SERCOM2.3   |
 +|   PA10     D1           SERCOM0.2     SERCOM2.2   |
 +|   PA14     D2           SERCOM2.2     SERCOM4.2   |
 +|   PA09     D3           SERCOM0.1     SERCOM2.1   |
 +|   PA08     D4           SERCOM0.0     SERCOM2.0   |
 +|   PA15     D5           SERCOM2.3     SERCOM4.3   |
 +|   PA20     D6           SERCOM5.2     SERCOM3.2   |
 +|   PA21     D7           SERCOM5.3     SERCOM3.3   |
 +|   PA06     D8             SERCOM0.2   |
 +|   PA07     D9             SERCOM0.3   |
 +|   PA18     D10           SERCOM1.2     SERCOM3.2   |
 +|   PA16     D11           SERCOM1.0     SERCOM3.0   |
 +|   PA19     D12           SERCOM1.3     SERCOM3.3   |
 +|   PA17     D13           SERCOM1.1     SERCOM3.1   |
 +|   PB08     A1                    |   SERCOM4.0   |
 +|   PB09     A2                    |   SERCOM4.1   |
 +|   PA04     A3                    |   SERCOM0.0   |
 +|   PA05     A4                     SERCOM0.1   |
 +|   PB02     A5                     SERCOM5.0   |
 +|   PA22     D20 / SDA      |   SERCOM3.0     SERCOM5.0   |
 +|   PA23     D21 / SCL      |   SERCOM3.1     SERCOM5.1   |
 +|   PA12     D22 / MISO        SERCOM2.0     SERCOM4.0   |
 +|   PB10     D23 / MOSI      |     SERCOM4.2   |
 +|   PB11     D24 / SCK      |     SERCOM4.3   |
 +
 +
 +上表是d21g18a控制板的所有内部开关组的情况
 +
 +然后我已经预定了如下设备:
 +
 +====预定义====
 +===调试串口:===   
 +PB22 D30 / EDBG TX SERCOM5.2  
 +
 +PB23 D31 / EDBG RX SERCOM5.3  
 +
 +===I2C(SCL,SDA):===
 +使用了SERCOM3(0,1)
 +
 +PA22 D20 / SDA SERCOM3.0 SERCOM5.0
 +
 +PA23 D21 / SCL SERCOM3.1 SERCOM5.1
 +
 +===SPI===
 +使用了SERCOM4(0,2,3)
 +
 +PA12 D22 / MISO SERCOM2.0 SERCOM4.0
 +
 +PB10 D23 / MOSI SERCOM4.2
 +
 +PB11 D24 / SCK SERCOM4.3
 +
 +=== 硬件串口(Serial1)===
 +SERCOM 0
 +
 +PA11 D0 SERCOM0.3 SERCOM2.3
 +
 +PA10 D1 SERCOM0.2 SERCOM2.2
 +
 +
 +====可用的SERCOM开关与====
 +
 +
 +===SERCOM1===
 +
 +|  PA18     D10    |   SERCOM1.2     SERCOM3.2   |
 +|  PA16     D11    |   SERCOM1.0     SERCOM3.0   |
 +|  PA19     D12    |   SERCOM1.3     SERCOM3.3   |
 +|  PA17     D13    |   SERCOM1.1     SERCOM3.1   |
 +
 +===SERCOM2===
 +
 +|   PA11     D0/RX     SERCOM0.3      SERCOM2.3   |
 +|   PA10     D1/TX     SERCOM0.2      SERCOM2.2   |
 +|   PA14     D2     SERCOM2.2      SERCOM4.2   |
 +|   PA09     D3     SERCOM0.1      SERCOM2.1   |
 +|   PA08     D4     SERCOM0.0      SERCOM2.0   |
 +|   PA15     D5     SERCOM2.3      SERCOM4.3   |
 +|   PA12     D22/MISO     SERCOM2.0      SERCOM4.0   |
 +
 +
 +===SERCOM5===
 +
 +|   PA20     D6     SERCOM5.2      SERCOM3.2   |
 +|   PA21     D7     SERCOM5.3      SERCOM3.3   |
 +|   PB02     A5     SERCOM5.0     |
 +|   PA22     D20/SDA     SERCOM3.0      SERCOM5.0   |
 +|   PA23     D21/SCL     SERCOM3.1      SERCOM5.1   |
ocrobot/alpha/d21g18a/tutorial02.txt · 最后更改: 2023/06/07 04:23 由 127.0.0.1