본문 바로가기

PCF8574

(7)
[STM32F103-48 SSM EVM] STM32CubeIDE I2C 테스트 - PCF8574 Read/Write [STM32F103-48 SSM EVM] 보드에서 STM32CubeIDE 환경으로 I2C 테스트를 진행 해 보았다. 우선 STM32CubeIDE로 새로운 프로젝트를 생성 한다. 프로젝트 생성은 C++로 했다. C로 해도 되지만 추후 C++ 호환 라이브러리(Arduino용) 를 사용하기 위해서 C++로 하면 좋다. 기본적인 핀 할당 및 I2C 핀을 보드에 맞게 설정 하자 I2C 설정을 위해 파라미터를 수정 한다. 여기서는 I2C Speed 만 400Khz로 수정 해 주었다. 클럭 설정은 외부 8Mhz로 설정 했다. 이렇게 설정이 완료하고 저장 하면 기본 I2C 코드가 생성된다. I2C Write 테스트를 위한 I2C 모듈은 I2C 8bit GPIO 확장 모듈 PFC8574 보드를 사용 할 예정이다. PCF..
[nRF52 xBee EVM] Arduino 테스트 - PCF8574 I2C nRF52 xBee EVM 보드로 I2C IO확장 PCF8574보드를 테스트를 하려고 Arduino 코드를 실행 했는데 I2C가 동작 하지 않는다 nRF5 SDK 의 IAR 툴을 이용하여 I2C 테스트할 때는 문제가 없었는데... Wirte 함수에서 멈춰 있다. 왜 그렇지? 옵션중에 -DNRF52 가 있는데... -DNRF52를 DNRF52810으로 해 주어야 하는 것 아닐까? 플래그 설정을 -DNRF52810_XXAA 로 변경하니 에러가 많이 발생한다. 다시 DNRF52로 설정하면 컴파일은 잘 되지만 I2C가 정상 동작 하지 않는다. Generic_nRF52810.build.extra_flags=-DNRF52 NRF_TWIM1 를 0으로 바꾸면 어떨까? I2C쪽 코드를 살펴보니 TowWire 설정이 N..
[STM32H7 EVM] Arduino I2C - PCF8574, 거리 측정 센서 VL53L01 테스트 [STM32H7 EVM] 보드에는 SSM 모듈 연결용 커넥터가 있고 다양한 형태의 SSM 모듈을 연결해서 인터페이스 테스트가 가능하다. Arduino 에서 I2C는 PB8(SCL), PB9(SDA)에 할당되어 있다. // I2C Definitions #define PIN_WIRE_SDA PB9 #define PIN_WIRE_SCL PB8 I2C 출력 테스트 I2C를 가장간단히 테스트 해볼수 있는 I2C 장치로 PCF8574 SSM 모듈을 사용해서 기본 출력 테스트를 해 보았다. #include #define PCF_8574_ADDR 0x20 void write8(uint8_t Address, uint8_t Value) { Wire.beginTransmission(Address); Wire.write(Va..
PCF8574 8BIT I/O Expander SSM Module 보드 제작 I2C 테스트 용도 및 IO확장을 위해 PCF8574 I/O Expander를 SSM Module 형태로 제작 했다. 각 포트에 LED를 연결해서 출력되는 값을 확인 할 수 있으며 2.54피치 핀헤더로 연결해서 확장 할 수도 있도록 제작 했다. PCF8574는 I2C 인터페이스로 8비트 입 출력 포트를 확장할 수 있다. PCF8574 I2C Address는 0x40~0x47 까지 하드웨어 적으로 설정 할 수 있다. 제어는 아주 단순한데 I2C Address를 쓰고 I/O Data를 써주면 출력이된다. 핀정보를 읽을 때는 I2C Address 쓰고 한바이트 읽으면 된다. Arduino코드로 예를 들어 보면 아래와 같이 사용 할수 있다. #define PCF_8574_ADDR 0x20 void write8(..
[nRF51822 xBee EVM] Arduino 테스트 - I2C VL53L0X, PCF8574 #include #include #define PCF_8574_ADDR 0x20 void write8(uint8_t Address, uint8_t Value) { Wire.beginTransmission(Address); Wire.write(Value); Wire.endTransmission(); } uint8_t read8(uint8_t Address, uint8_t Value) { uint8_t ret; Wire.beginTransmission(Address); Wire.write(Value); Wire.endTransmission(); Serial.println("1"); Wire.requestFrom(Address, (uint8_t)1); ret = Wire.read(); return ret; }..
[nRF51822 xBee EVM] Arduino 테스트 - I2C PCF8574 Test nRF51822의 I2C 테스트를 위해 가장 쉽게 테스트 해 볼 수 있는 I2C GPIO확장 모듈 [PCF8574 SSM EVM] 보드를 테스트 해 보았다. [nRF51822 xBee EVM] 보드의 I2C 는 아래와 같이 할당되어 있다. SCL -> IO21 SDA -> IO20 Arduino에서 PCF8574 제어를 위한 기본 코드를 실행하면 정상적으로 동작하는것을 확인 할 수 있다. #include #define LED_PIN1 13 #define PCF_8574_ADDR 0x20 void write8(uint8_t Address, uint8_t Value) { Wire.beginTransmission(Address); Wire.write(Value); Wire.endTransmission(); }..
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..

반응형