본문 바로가기

I2C

(18)
#ESP8266 I2C SSD1306 OLED 테스트 ESP ArduinoEXP 보드에는 I2C 인터페이스의 SSD1306 OLED 모듈을 연결하여 디스플레이 할 수 있다. SSD1306 OLED를 제어 하기위한 라이브러리로 Adafruit_SSD1306, Adafruit_GFX 를 많이 사용한다. 용량은 좀 크지만 간한히 사용할 수 있으니 일단 설치 해 보자 설치 후 예제를 적당히 수정하면 간단히 OLED에 텍스트를 표시 할 수 있다. #include #include #include #include #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for an SSD130..
ESP8266 I2C 테스트 - PCF8574 제어 ESP8266 데이터 시트를 보면 IO14(SCL), IO2(SDA) 로 설정되어 있다. SPI 와 겹치기 때문에 다른 핀으로 할당 할 필요가 있다. ESP8266 Arduino 핀 설정(pins_arduino.h)을 보면 디폴트로 IO5(SCL), IO4(SDA) 로 할당 되어 있다. 물론 소프트웨어 I2C라 변경 하능은 한데 디폴트를 사용하면 초기화 시 별도로 지정해 주지 않아도 된다. #define PIN_WIRE_SDA (4) #define PIN_WIRE_SCL (5) static const uint8_t SDA = PIN_WIRE_SDA; static const uint8_t SCL = PIN_WIRE_SCL; ESP8266 I2C 초기화 #include void setup() { Wire.b..
[STM32F373 EVM] I2C 테스트 - 9축 IMU 센서 테스트 [STM32F373 EVM] I2C 테스트 - 9축 IMU 센서 테스트 [STM32F373 EVM]에는 I2C가 PB8(SCL), PB9(SDA)에 할당되어 있다. I2C테스트를 위해 9축 IMU센서(BNO055 EVM)의 롤,피치 값을 TFT LCD에 표시하는 예제를 작성해 보았다. PB8 -> SPI2_SCK/I2S2_CK,I2C1_SCL, USART3_TX,CAN_RX, CEC, TIM16_CH1,TIM4_CH3, TIM19_CH3,COMP1_OUT, TSC_SYNC PB9 -> SPI2_NSS/I2S2_WS,I2C1_SDA, USART3_RX,CAN_TX, IR_OUT,TIM17_CH1, TIM4_CH4,TIM19_CH4, COMP2_OUT STM32F373 EVM 회로도 핀맵 STM32F373의..
dsPIC33 EVM - I2C 테스트 dsPIC33 EVM - I2C 테스트 dsPIC33 EVM 보드의 I2C는 RG2(SCL), RG3(SDA)에 연결되어 있다. dsPIC33 I2C 초기화 코드void i2c_init(unsigned int Speed){OpenI2C1( I2C_ON, I2C_BRG );} dsPIC33 I2C Read/Write 소스 코드unsigned char i2c_read_byte(unsigned char Addr, unsigned char reg){unsigned char data = 0;unsigned char SlaveAddress = Addr;char i2cData[10];int DataSz;int Index = 0;i2cData[0] = (SlaveAddress
[STM32F4] I2C 테스트 - 3축 가속도 센서 TFT LCD 출력 [STM32F4] I2C 테스트 - 3축 가속도 센서 TFT LCD 출력 3축 가속도 센서를 테스트 해야할 일이 있어 STM32F407 보드를 이용하여 I2C 테스트를 해보았다. 기존 STM32F103 I2C 테스트 코드과 크게 차이 없이 테스트 가능했다. [EXP-NET EVM] 보드에는 I2C(SPI)로 연결되는 자이로, 가속도, 온도, 압력 센서등의 모듈을 연결할 수 있는 표준핀맵 커넥터가 있다. SM-Type EVM 에는 핀 8번에, M-Type EVM에는 핀 13번에 각각 CS핀이 할당되어 있다. STM32F4 I2C테스트 동영상STM32F407 을 이요하여 3가속도 센서의 데이터를 TFT-LCD에 그래프로 표시하는 테스트 예제 STM32F4 I2C 초기화 코드void i2c_init1(unsi..
[LM3S608] Simple I2C 테스트 - simple polling mode [LM3S608] Simple I2C 테스트 - simple polling mode 간단히 [LM3S608]의 I2C 개념 잡기 위해 우선 polling모드로 I2C Slave의 데이터를 읽어오는 실험을 했다. I2C 구조 I2C초기화 함수 void i2c_init(void) { SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C0); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); // // Enable processor interrupts. // IntMasterEnable(); // // Configure the appropriate pins to be I2C instead of GPIO. // GPIOPinTypeI2C(GPIO_PORTB_BA..
MSP430 I2C 전송 속도 테스트 MSP430 I2C 전송 속도 테스트 MSP430F2013 보드는 UART가 없어 I2C로 데이터를 수집테스트 정리 구성도 MSP430F2013 (I2C Slave) ->AVR (I2C Master) -> USB2Serial -> PC Host AVR - > 8Mhz 구동 MSP430F2013 -> 16Mhz구동 2Byte 데이터 수집 속도 측정 H/W 구동시 100Khz 구동시 450us 소요된다. 150Khz 까지 구동 가능하고 이때는 300us 소요된다. (200Khz 이상부터 깨지기 시작한다.) ->메인클럭을 16Mhz까지 올리니 400khz도 문제 없이 잘 동작한다. S/W I2C 구현시 AVR 8Mhz클럭에서 600us 소요된다. H/W I2C 구현 예제 unsigned char ReadByt..
MSP430 I2C 테스트 - USCI(H/W SM) vs USI (MSP430F2013 S/W SM I2C) Universal Serial Interface MSP430F2013은 USI모듈로 SPI, I2C인터페이스를 제공한다. I2C는 USCI를 지원하는 상위 MSP430과 같은 풀 하드웨어로 동작하는것은 아니고 소프트웨어 State Machine를 구현해야 한다. 이때문에 약간 귀찮은 작업을 해 주어야 한다. 물론 속도도 느려지지만 그나마 소형 모듈에서 쉽게 구현할 수 있다는 장점이 있다. 소프트웨어 SM 구조 Slave 구현 1)Master에서 Start + (7bit+1bit)Address를 전송하고 NACK를 기다린다. 2)Slave에서 Address가 맞으면 NACK를 전송한다. 3)Slave에서 Data 전송한다. 4)Master에서 Data수신후 NACK를 송신 5)Slave에서 NACK수신 6..

반응형