반응형
반응형
PIC16F1497을 이용해서 MPU6050 자이로센서를 드라이빙하려고 했었다.
MSSP2를 이용해서 해 보려고 했으나 자꾸 ACK를 체크할 때 에러가 났었다.
일단은 프로젝트가 급해서 Port I/O를 이용해서 I2C를 구현했고, 데이터를 읽고 있다.
읽는 것은 정상적으로 되지만 약간 느리긴 하다.
프로젝트를 종료 시키고 난 뒤에 다시 도전해 봐야겠다.
Transmit는
- SDA를 출력으로 설정
- Clear SDA
- Clear SCL
- for(cnt = 0x80;cnt != 0;cnt>>=1){
if(TxData & cnt) Set SDA;
else Clear SDA;
Set SCL;
Clear SCL;
}
SDA를 입력으로 설정
Set SCL
ACK 체크
Clear SCL
Receive는
- SDA를 입력으로 설정
- Clear SDA
- Clear SCL
- 수신 버퍼 클리어
- for(cnt = 0x80;cnt != 0;cnt>>=1){
수신버퍼 <<= 1;
Set SCL; <<==== 데이터 라인을 확인하기 전에 SCL을 셋 시켜야한다.
if(SDA High?) 수신버퍼 |= 0x01;
Clear SCL;
}
SDA를 출력으로 설정
SDA를 NACK으로 설정
set SCL
Clear SCL
뭐..이렇게 I/O를 이용해서 정리해 봤다.
일단 결과는 나오니까 테스트를 더 해봐야지.
반응형
'PIC' 카테고리의 다른 글
PIC16F1947 - I2C(Master Mode) (0) | 2025.04.16 |
---|---|
PIC16F1947 - I2C (0) | 2025.01.20 |
PIC16F1947 - PWM(Enhanced Mode) (1) | 2025.01.16 |
PIC16F1947 - HFINTOSC (0) | 2025.01.16 |
PIC IO PORT Test (0) | 2022.12.23 |