C언어,ARM

SERCOM

안녕1999 2019. 11. 17. 19:18

개념 : 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