반응형
아직 확인은 안 한 상태인데 문제가 있는 듯 보여서 일단 기사는 캡쳐
- 감지 모자 (astro-pi)는 MCU (또는 AVR이라고도 함)와 통신하는 데 SPI를 사용하고 압력 센서, 온도 / 습도 센서 및 가속도계 / 자이로 스코프 / 자 기계와 통신하려면 I2C를 사용합니다. 이를 위해 헤더 파일, 문서화 지원 및 테스트 / 예제 프로그램 세트를 개발 중입니다. http://experix.sourceforge.net 의 다운로드 섹션, my-hat 디렉토리 에서 찾을 수 있습니다 . (지금 거기에 몇 가지 오류가 있으며 수정 및 온도 측정 예제를 게시 할 준비를하고 있습니다.)
- SPI 및 I2C 클록 속도는 독립적이며 실제 전송은 전용 하드웨어에서 처리됩니다. 별도의 스레드를 실행하더라도 차이가 없습니다.
- 내 파이에서 똑같은 작업을 시도하고 있지만 SPI를 실행하는 동안 I2C가 올바르게 실행되는 데 문제가 있습니다. SPI 및 I2C 인터페이스를 실행하는 클럭 속도는 얼마입니까? 각 인터페이스가 별도의 스레드 또는 실행 파일에서 실행됩니까? 하나의 장치에 대해 8Mhz에서 SPI 인터페이스를 실행해야하지만 I2C 장치는 기본 100kHz로 클럭 된 상태로 둡니다. SPI 및 I2C 클록 속도는 독립적이며 실제 전송은 전용 하드웨어에서 처리됩니다. 별도의 스레드를 실행하더라도 차이가 없습니다.
- 그것이 내가 생각했던 것입니다. 그러나 두 실행 파일을 동시에 실행하면 I2C 판독 값이 지옥으로 이동하기 때문에 확신 할 수 없었습니다. SPI 및 I2C 실행 파일을 동시에 실행하지 않고 독립적으로 실행하면 완벽하게 실행됩니다 (데이터 손상없이 구성된 속도로 데이터 읽기). 그러나 I2C 실행 파일을 먼저 시작한 다음 SPI 실행 파일을 시작하면 I2C 판독 값이 손상되거나 전혀 전달되지 않습니다. 하지만 SPI 수치는 잘 나온다. 그래서 누구도 이것을 경험했는지 알아 보려고했습니다.
- 안녕하세요, 같은 문제가 있습니다. I2C 1에서 LCD를 사용하고 SPI에서 ATtiny85를 사용하고 있지만 SPI를 사용할 때 I2C가 작동을 멈 춥니 다.
해결방안으로 보이는 것은 스레드 잠금으로 해결
- 나는 여러 스레드가 SPI와 통신하는 통신에서 스레딩 잠금을 사용하여 간헐적 인 바핑을 정리했습니다. 읽기 또는 쓰기 기능은 잠금을 잡고 spi를 열고 읽기 또는 쓰기를 수행 한 다음 잠금을 닫고 해제합니다.
spi_lock=threading.Lock()
def readx():
values=None
with spi_lock:
spi.open(...
values=spi.xfer(...
spi.close(...
return values
반응형
'개발자 > 라즈베리파이4' 카테고리의 다른 글
_tkinter.TclError: no display name and no $DISPLAY environment variable 에러 해결 (0) | 2021.02.09 |
---|---|
지는 노을이 보고 싶어 10분 만에 만든 CCTV. Raspberry pi 사용 (0) | 2021.02.08 |
Raspberry Pi Pico, 유연한 마이크로 컨트롤러 보드 (0) | 2021.01.29 |
팔로우해야 할 Top 10 Raspberry Pi 블로그 (0) | 2021.01.18 |
10가지 Raspberry Pi 프로젝트 아이디어 (0) | 2021.01.13 |
라즈베리파이 ubidots 데이터 송신 (0) | 2021.01.12 |
Raspberry Pi와 인터페이싱 MPU6050 (가속도계 + 자이로 스코프) (4) | 2020.11.30 |
Raspberry Pi IO Interface Module Test (0) | 2020.11.27 |
더욱 좋은 정보를 제공하겠습니다.~ ^^