해보기는 했어?

오늘 안됐다고 포기하지 말고 용기내서 내일 다시 해 보자.

반응형

I2C 5

PIC16F1497 + I2C

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 SCLACK 체크Clear SCL Receive는- S..

PIC 2025.04.25

PIC16F1947 - I2C

24.3 I2C MODE OVERVIEW The Inter-Integrated Circuit Bus (I²C) is a multi-master serial data communication bus.상호집적회로버스( I²C, 번역보다는 그냥 I²C로 부르는 것이 더 나을 듯)는 다중 마스터 시리얼 통신 버스이다. (마스터를 여러개 만들 수 있다는 얘기)Devices communicate in a master/slave environment where the master devices initiate the communication.장치는 마스터 장치가 통신을 시작하는 마스터/슬레이브환경에서의 통신을 한다.(이건 뭐 말을 이렇게 해 뒀어?)A Slave device is controlled through a..

PIC 2025.01.20

24C02 clock Timing 맞추기

마이크로칩스 사의 24C02의 타이밍도가 위와 같이 되어 있다. 그리고 타이밍도 설명에서 SCL(Serial clock)에 대한 관련 시간은 와 같이 설명되어 있다. 메가윈 IC 중 M3 코어를 이용해서 I2C를 설정할 때 해당 부분의 값을 계산하면 96MHz 클럭일 때 1 클럭 주기는 0.0104167us임. I2C2->SS_SCL_HCNT = 373; /* tHIGH = (373 + FS_SPKLEN + 7) / 96MHz = 4us */ // 4 = 0.0104167 * (373+4+7) I2C2->SS_SCL_LCNT = 451; /* tLOW = (451 + 1) / 96MHz = 4.708us */ // 4.708 = 0.0104167 * (451+1) I2C2->FS_SPKLEN = 4; /..

임베디드 2023.04.26

MG82F6D Series I2C Slave Int

1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. MG82F6D 보드는 Slave로 셋팅하고, MG32F02A072AD4 IC를 이용한 보드를 Master로 설정한다. Master에서 Slave로 데이터 어드레스, 16바이트의 데이터를 지속적으로 전송하고, Slave에서는 I2C를 이용해서 수신된 데이터를 UART0으로 전송한다. 2. 회로도 3. Code ⑴ main routine void main() { u8 i; InitSystem(); // 시스템 초기화 SendStr("\nStart"); // UART0으로 프로그램의 시작을 알림 LED_G_0=0;LED_G_1=0;LED_R=0; // LED ALL ON DelayXms..

MEGAWIN 2022.12.09

MG82F6D Series I2C Master

1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. 4096바이트 용량의 EEPROM(24C32)을 읽고/쓰는 테스트를 진행한다. 2. 회로도 3. Code ⑴ main routine void main() { InitSystem(); // 시스템 초기화 SendStr("\nStart"); // 시리얼로 “Start” 문자 송신 LED_G_0=0;LED_G_1=0;LED_R=0; // LED ALL ON DelayXms(1000); // 1초 딜레이 LED_G_0=1;LED_G_1=1;LED_R=1; // LED ALL OFF rand = 0x80; // 랜덤 변수 초기화 0x80 TWI0TestAddr.W=0x0000; // TWI..

MEGAWIN 2022.12.06
반응형