PIC16F1769로 전자 볼륨 LM1972M 울림
소개
PIC에서 SPI 모듈을 설정하는 것은 MPLAB IDE의 MCC 기능을 사용하는 방법이 있지만, 이번에는 이것을 사용하지 않고 레지스터 설정을 직접 main 파일에 기재하는 방법을 소개한다. (실제로는 초기 설정에 조금 MCU를 사용한다)
또한이 기사에서는 전자 볼륨 LM1972와의 통신을 목표로 한 설정 방법을 소개하기 때문에 PIC를 slave로 한 사용 방법 등 설명을 생략하는 부분도있다.
사용하는 마이크로 컴퓨터에는 PIC16F1769를 채용하고있다.
초기 설정
처음에는 MCC를 사용하지 않는다고 말했지만, 역시 클럭이나 핀의 초기 설정 등, 그다지 나중에 망설이지 않는 부분은 MCC를 사용하여 설정하는 것이 효율적이다. 이번에는 클럭에 내부 클럭 8MHz를 사용했습니다.
핀 설정이지만, 먼저 SPI로 송신을 위해서는 SDO, SCK, SS의 3 개의 핀이 필요하다. 대부분의 GPIO 핀은 핀 선택 기능으로 모듈의 기능을 할당 할 수 있으므로 빈 핀을 적절하게 3 개 선택하면 좋다.
이번에는 SDO에 RA2, SCK에 RC5, SS에 RC4를 선택했다. 세 개의 핀은 MCC를 사용하여 디지털 출력으로 설정된다.
1. RxyPPS 레지스터 설정
RxyPPS 레지스터에서 핀의 기능을 SCK 및 SDO로 설정한다. 레지스터 값은 SCK의 경우 0x12이고 SDO의 경우 0x14입니다.
이번에는 RC5에 SCK, RA2에 SDO의 기능을 할당하기 위해 다음과 같이된다.
RC5PPS = 0x12; // RC5:SCK
RA2PPS = 0x14; // RA2:SDO
2. xxxPPS 레지스터 설정
SSPCLKPPS와 SSPSSPPS는 각각 SCK와 SS를 어느 핀에 할당할지를 결정하는 레지스터이다. 이것이 이해하기 어려운 점에서 RxyPPS 레지스터 설정만으로는 SPI를 사용할 수 없습니다.
레지스터 값에 대한 자세한 내용은 마이크로 컴퓨터의 데이터 시트를 참조하십시오.
SSPCLKPPS = 0b00010101; // SCK:RC5
SSPSSPPS = 0b00010100; // SS:RC4
왜 RxyPPS와 달리 이진수로 쓰는가 하면, 이 레지스터는 사용하는 포트에 의해 값이 모두 다르기 때문에, 실수를 피하고 싶기 때문이다.
3. SSP1STAT 레지스터 설정
이 레지스터는 주로 bit6의 CKE 비트를 조작하여 클럭 위상 (에지)을 설정합니다.
1: active to idle
0:idle to active
LM1972의 데이터 시트를 참조하면 클록 위상이 idle to active이므로 CKE 비트는 클리어된다.
SSP1STATbits.CKE = 0; // idle to active
4. SSP1CON1 레지스터 설정
이 레지스터는 SSP1STAT과 마찬가지로 SPI 모드를 설정합니다.
먼저 SSPEN 비트를 설정하여 SPI 핀 설정을 활성화한다.
그런 다음 CKP 비트를 조작하여 클럭 (SCK)의 극성을 선택합니다.
1:idle High
0:idle Low
LM1972 데이터 시트를 참조하면 클록 위상이 idle Low이므로 CKP 비트는 클리어된다.
0 ~ 3 비트 SSPM은 마스터/슬레이브를 선택하고 클럭 주파수 (SCK)를 선택합니다.
LM1972의 데이터 시트를 참조하면 기본 클럭 주파수는 2MHz이므로 클럭은 FOSC/4입니다. 또한 PIC 마이크로 컴퓨터는 마스터 역할을 담당합니다.
SSPM 비트는 모드에 따라 다양한 값의 패턴이 있으므로 자세한 내용은 사용하는 마이크로 컴퓨터의 데이터 시트를 참조하십시오.
SSP1CON1 = 0b00100000; // Enable SerialPort / idle Low / CLK:FOSC/4
참고문헌
SPI 통신 사용법
h tp // w w. 피 C. 이 m/f1/f05. HTML
SPI의 기본 배우기 | 아날로그 디바이스
htps //w w. 아나 g. 이 m/jp/아나ぉg-ぢ아ぉ구에/아r치cぇs/인 t로즈c 치온--s피-이니 r 흠. HTML
키리이 연구실 LM1972를 사용한 전자 볼륨.
htp://목ry아부. bぉg. FC2. 소 m/bぉg-엔트리-81. html
SAKURA87.net Arduino Uno로 전자 볼륨 (LM1972M)을 이동
htps : // 사쿠라 87. 네 t/아 r ゔぇ s/4342
범람하라 LM1972 디지털 볼륨
htps : ///w wrea l. 네 t/2018/02/20/1
빙정 공방 전자 볼륨을 사용해 보았다
h tp // w w. 마로온. d. 네. jp / 자쿠 9 / 코네타 / 코네타 6 / 반죽. HTML
SPI 통신 사용법
h tp // w w. 피 c 훈. 이 m/f1/f05. HTML
MICROCHIP PIC16(L) F1764/5/8/9 일본어 PDF 데이터시트
htps : // 아키즈키 덴시. 이 m / 도 w 응 아 d / ds / 미 c로치 p / 피 C16F1764_피 C16LF1769_j. pdf
Reference
이 문제에 관하여(PIC16F1769로 전자 볼륨 LM1972M 울림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/karata-sc/items/cb9706f94d6ba1b9c637텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)