linux i2c 예제


0 Flares Filament.io 0 Flares ×

우리가 여기에서 달성 한 것은 매우 편리합니다, 우리는 지금 거의 독점적으로 리눅스 사용자 공간에서 I2C 장치를 관리 할 수 있으며 교활한 사용자 공간 드라이버를 작성하는 위치에 있습니다. 따라서 주소 0x15에 I2C 라이트 컨트롤러가 있는데, 이는 0x00 – 녹색 광, 0x04 – 적색 광및 0x08 – 청색광과 같은 메모리 매핑 레지스터가 있는 슬레이브 장치 역할을 합니다. OFF 위치에는 0x00, ON에는 0x01을 사용합니다. 예를 들어 녹색 표시등 켜기 와 빨간색 표시등을 끄고 싶다면 이 예제에서 사용되는 AD7991은 데이터 시트에서 0101001로 보고한 주소가 있는 AD7991-1입니다. 이 것을 제대로 사용하려면 왼쪽에 있는 주소를 0b00101001로 저장합니다. ioctl 이후에 읽고 쓰는 호출은 주변 장치를 신호할 때 적절한 읽기 및 쓰기 비트를 자동으로 설정합니다. 여기에서 우리는 플랫폼에서 실행되는 리눅스 드라이버에 의해 노출되는 모든 장치 노드를 참조하십시오. 가장 중요한 것은 우리가 i2c-4 장치 노드 (왼쪽 아래)에 가장 관심이 있으며,이 루틴은 버스 번호가 중요 할 때 I2C 어댑터를 선언하는 데 사용됩니다. 예를 들어 시스템 온 칩 CPU의 I2C 어댑터에 사용하거나 시스템의 메인보드에 내장된 경우 i2c_board_info를 사용하여 I2C 장치를 적절하게 구성할 수 있습니다. i2c_client는 i2c 버스에 연결된 단일 장치(즉, 칩)를 식별합니다. Linux에 노출된 동작은 장치를 관리하는 드라이버에 의해 정의됩니다. 그러나이 연습의 요점은 Linux가 모르는 장치와 이야기하는 것이라면 어떤 장치와 이야기해야합니까? 리눅스에서 I2C를 통해 FM24CL64-GTR에 대한 FRAM 드라이버가 있습니까, 그리고 API는 무엇입니까? 모든 링크가 도움이 될 것입니다. i2c-tools는 리눅스용 I2C 도구의 이기종 세트가 포함된 패키지입니다: 다음 예제에서는 0에서 255까지의 값 시퀀스를 주소 0x20의 PCF8574 I2C I/O 익스팬더로 보냅니다.

이 게시물에서는 i2c-dev 라이브러리와 Linux ioctls를 프로그래밍 방식으로 사용하여 동일한 작업을 수행하는 방법을 조사합니다. 먼저 데비안 시스템에서 작업하는 경우 대상에서 아래 명령을 실행하여 i2c 라이브러리를 사용하여 응용 프로그램을 빌드하는 데 사용할 Linux I2C 프로그래밍 인터페이스는 버스 상호 작용및 슬레이브 측의 마스터 측면을 지원합니다.