EYEN
[해결] SPI 통신을 쓰는 모듈 2개 이상을 한 아두이노에 연결하기 본문
추측1) 중국산 기기의 경우 SPI통신을 하나의 모듈과만 하고 2개 이상부터는 차단시키는 기능이 있다고 한다.
아직은 추측이지만, 코드도 잘 짰고 연결도 잘 했는데 작동하지 않는다면 에이다프루트같은 신뢰도 있는 마켓에서 SPI 통신을 하는 모듈을 사기=> 아니었다.
추측2) SD카드 모듈이 지원할 수 있는 sd카드 용량 크기가 각각 다르니 그것도 확인 후 구매할 것.
우리는 SD카드 모듈을 그냥 아무거나 사고, sd카드는 넉넉하게 8기가짜리 마이크로 sd카드를 구매했는데 sd카드를 2gb까지만 지원하는 모듈이라고해서 다시 샀다.
=> 원인 중 일부
추측3) 저항을 연결하지 않음! 저항으로 전압을 두 모듈 각각에 병렬로 보낼 수 있다고 한다. 그래서 배송비 3000원 저항 10개 1000원도 안 하는 거 사서 연결했는데 안 됐다.
추측 4) sd카드 포매팅!
FAT32/FAT16만 지원하는 것일 수도 있다. sd카드를 노트북으로 포맷하고 sd카드 정보에 맞게 포매팅해준다. 이것도 원인 중 일부였던 것 같다
추측5) 원래 SPI통신은 단일기기와 통신한다고 한다. 해결방법은 각각 cs핀을 다른 핀에 연결한 뒤, digitalwrite(pin,low)로 하나는 on 하나는 digitalwrite(pin,high)로 off시켜서 실행 순서를 달리해 전압을 나눠주는 것이다.
이건 하나 마나 결과는 같았다.ㅋ
아두이노 아직은 잘 모르지만 소프트웨어적으로 구현할 수 있는 부분이 많은 것 같다.
실제로 해결 방법)
우리는 아두이노 우노에서 제공하는 기본 코드를 사용했었다. 여기서는 SD카드 모듈의 CS 핀이 10에 연결되어있었는데 실제로는 4에 연결되어있었다. 그래서 저 chipselect를 4로 바꾸고 코드 순서만 적절히 고쳐줬더니 성공했다.
'오류들' 카테고리의 다른 글
pwnable.tw-start 풀면서 생긴 것 (0) | 2023.03.03 |
---|---|
gdb - No symbol table is loaded. Use the "file" command. (0) | 2023.03.03 |
칼리 리눅스에서 scp 사용하기 (0) | 2023.02.19 |
칼리 리눅스에서 scp 사용하기 (0) | 2023.02.12 |