2017-03-21 3 views
2

나는 BeagleBoneBlack Wireless를 가지고 있으며 SPI (및 I2C)를 사용하고 싶습니다. BBB에서 SPI를 설정하고 사용하는 방법에 대한 확실한 지침을 얻는 것은 매우 어렵습니다. 첫째, BBB의 기본 구성이 무엇인지는 분명하지 않습니다. 이 버스는 실제로 핀 다중화 여부가 정말로 있는지 나에게 분명하지 않다BeagleBoneBlack에서 SPI를 활성화하고 사용하는 방법

$ ls /dev/i2c* 
/dev/i2c-0 /dev/i2c-1 /dev/i2c-2 

: 나는 또한 I2C를 가지고있는 것 같습니다

$ ls /dev/spi* 
/dev/spidev1.0 /dev/spidev1.1 /dev/spidev2.0 /dev/spidev2.1 

: 나는 두 개의 SPI 디바이스를 가지고있는 것 같습니다 유효한. 그들이 핀에 연결되어 있다면 정확히 어떤 버스가 있습니까?

제가 선택 SPI1 칩 0 I 오프셋 0x19C 가진 핀을 사용한다라고 나에게 핀 멀티플렉싱 정보 ( from here)를 이용하여이를 확인하려고하므로 그 핀 모드 질의 :

$ sudo cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins | grep 44e1099c 
pin 103 (44e1099c.0) 00000002 pinctrl-single 

이 모드 2로 돌아옵니다. 이는 나에게별로 도움이되지 않습니다 (SPI가 아닙니다). 나는 이것을위한 오버레이 설정에 대한 지시를 따르려고했지만 (from here), 이것은 커널에 약간의 수정이 필요 했었고, 그때조차도 도움이되지 않았다.

좀 더 명확하고 이상적으로는 (4.4.30) 사용하고있는 커널 버전과 일치하는 지침을 알려주십시오.

답변

2

처럼 수동으로 실시 변경할 수 있습니다 오버레이 추가/제거가 이제 핀 구성을 처리하는 기본 방법이 아닌 것 같습니다.

이제 config-pin 유틸리티를 사용하여 핀 구성을 수행 할 수 있으며 이는 저에게 효과적입니다. 이 부츠에 걸쳐 지속되지 않습니다

config-pin P9.17 spi 
config-pin P9.18 spi 
config-pin P9.21 spi 
config-pin P9.22 spi 

, 그래서 난 내 .profile에 추가 : 예를 들어, (장치 드라이버가 이미 존재하는) SPI0에 액세스 할 수 있도록합니다. 나는 아마도 장치 트리 오버레이로 돌아가는 깔끔한 방법이있을 것이라고 생각하지만 이것은 시작해야했습니다.

핀 구성에 대한이 새로운 접근 방식에 관한 문서는 찾기가 매우 어려웠습니다.

+0

안녕하세요, 내가 config-pin 방식을 사용하려고하면 오류 (P9_17 pinmux 파일을 찾을 수 없음)가 표시됩니다.이 문제에 대한 의견이 있으십니까? –

+0

나는 그 문제를 한번도 본 적이 없으며, 두려워서 제대로 진단 할 수 있을지 모르겠다. 로드 한 오버레이를 확인 했습니까? 유니버설 케이프에 대한 readme 파일에서 확인 된 보편적 인 것 중 하나입니까? 내 BBB가 나에게 선적 된 방식에서 아무런 변화도 없었고, 하나의 오버레이 만 적재했다 (케이프 유니버설). 또한 github 페이지의 문제 보고서를 한눈에 살펴보면 최소한 하나의 비슷한 증상이보고되어 확인할만한 가치가 있다고 보십니까? –