본문 바로가기

개발자/라즈베리파이4

라즈베리파이 SPI 포트 사용 문제점, MAX31855 Interface with Raspberry Pi second SPI Port

반응형

 

 

라즈베리파이 SPI 포트 사용 문제점, MAX31855 Interface with Raspberry Pi second SPI port

 

라즈베리파이에서는 SPI 포트를 CE0, CE1 제어신호와 함께 2포트를 제공한다. 처음 스마트 폼 시스템을 개발할 때 CE0 포트는 ADC3208 adc 컨버터에 사용하고, CE1은 NFC 카드 데이터 통신에 사용하였다. 물론 두 부품 모두 SPI 인터페이스에 아주 잘 작동하였다.

 

다른 업체에 Raspberry Pi IO Intreface Module 설계를 하여 PCB를 제작 조립하여 납품하였는데 SPI 포트 사용에 문제가 생긴다고 하여 자료를 열심히 찾아 봐도 특별한 해결책은 보이지 않았다. 특히 adc 컨버터인 ADC3208은 동작이 잘 하는데 MAX31855가 문제였는데 생각해봐도 특별한 문제는 되지 않아보였고, 무엇보다 직접 테스트를 하거나 문제를 해결하려고 하지 않았다. 시간이 없었다. ^^

 

그러니까 아래 참고 자료의 링크 자료로 연결한 아래와 같은 회로 구성으로는 spi 포트 0인 CE0 와 CE1을 동시에 사용할 수 없다는 설명이었다. 아래처럼 연결하면 두 개의 SPI 포트를 사용하는 데 문제가 있다는 말이죠.

 

MAX31885 breakout board has a six way 0.1″ connector CE1 Port

 

 

MAX31885 breakout board has a six way 0.1″ connector CE1 Port

 

여하튼 일언지하, 거두절미, 단도직입적으로 말해서 위와 같은 환경에서는 SPI 포트를 MAX31855와 사용하지 않는 것이 상책이다. 즉 디지털 포트를 직접 연결한다. 이 문제로 잘 해결이 되었다고 해서 회로도 수정하여 보내주었고, 차후 다시 제작할 경우 반영하기로 하였다. 포럼이나 다른 질문 답변 사이트에서도 많은 문제가 되었던 경우인데 어떻게 알려주지를 못하겠네~^^

 

아래 포트 할당 이미지를 참고하여 라즈베리파이 GPIO 와 연결하여 사용하기 바란다.

 

  • CLK (clock) is an input to the MAX6675/MAX31855 (output from microcontroller) which indicates when to present another bit of data
  • DO (data out) is an output from the MAX6675/MAX31855 (input to the microcontroller) which carries each bit of data
  • CS (chip select) is an input to the MAX6675/MAX31855 (output from the microcontroller) which tells the chip when its time to read the thermocouple and output more data. 

MAX31855 cls - 라즈베리파이 GPIO 21번

MAX31855 cs - 라즈베리파이 GPIO 7번(CE1)

MAX31855 do - 라즈베리파이 GPIO 18번 

 

 

MAX31855 SPI 취소하고 digital pin 할당

참고자료

Using MAX31855 Thermocouple Amplifier with Raspberry Pi 

MAX31855 Thermocouple driver - Raspberry Pi form

MAX31855 Thermocouple 

 

 

 

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^