개념 : USART,SPI,I2C등의 기능을 통합(추상화)한것.
예전 CPU들은 UART,SPI,I2C등의 개수가 고정되어 있어서, 일반적인 개수가 아닌경우에는 더 큰 CPU를 찾아봐야했다.
그러나 SERCOM은 UART,SPI,I2C로 맞추어서 사용할 수 있어 편리하다.
그러나, 설정이 좀 복잡하다.(USART,SPI는 RX,TX핀도 설정해줘야한다)
설정방법을 공부해야한다 ㅡ,.ㅡ
SERCOM은 최대 6개까지 지원됨.
48핀 패키지에서도 2~3개정도 사용가능
SERCOM은 PAD[0...3]핀이 있음.
RX,TX등의 기능을 설정할 수 있어 이름이 PAD[0...3]으로 되어 있음(설정을 변경해야하는 붚련함)
USART,SPI는 RX,TX,CLK등의 핀번호를 설정해주어야함
모드설정
USART,SPI,I2C중에 어떤것으로 사용할지 설정
"SERCOM – Serial Communication Interface"
"SERCOM USART"
"SERCOM SPI"
"SERCOM I2C"
Table 25-1. SERCOM Modes
CTRLA.MODE Description
0x0 USART with external clock
0x1 USART with internal clock
0x2 SPI in slave operation
0x3 SPI in master operation
0x4 I 2C slave operation
0x5 I 2C master operation
0x6-0x7 Reserved
각 모드별로 레지스터 설정
"SERCOM USART"
"SERCOM SPI"
"SERCOM I2C"
i2c핀은 PAD0,PAD1로 고정되어 있다.
28.4 Signal Description Signal
Name Type Description
PAD[0] Digital I/O SDA
PAD[1] Digital I/O SCL
PAD[2] Digital I/O SDA_OUT (4-wire operation)
PAD[3] Digital I/O SCL_OUT (4-wire operation)
i2c는 마스터, 슬래이브용 레지스터가 별도로 있다.
Write protection
11.6.2.3.1 Write-Protect Clear
Name: WPCLR
Offset: 0x00
Reset: 0x00800000
Bits 7:2 – SERCOM[5:0]
Writing a zero to these bits has no effect.
Writing a one to these bits will clear the Write-Protect bit for the corresponding peripherals.
Value Description
0 Write protection is disabled
1 Write protection is enabled
질문]PAD0~3중에 2,3개핀만 사용할 수 있는 경우에도 SERCOM으로 사용가능한가?
예) I2C는 2핀만 사용하면 된다.
=>YES. i2c는 2핀만 사용(PAD0,PAD1로 고정되어 있다)
ATSAMD21E15L-QFN32,TQFP32의 경우, USART는 TX,RX만 사용할 경우, i2s를 제외하고도 4개를 사용할 수 있음(XIN/XOUT사용안할 경우)
http://ww1.microchip.com/downloads/en/DeviceDoc/SAMD21-Family-DataSheet-DS40001882D.pdf