ATmega328p를 사용하여 키보드로 표시되는 V-USB 프로젝트를 작업 중입니다. USB 부분은 훌륭하게 작동하지만 (첫 번째 V-USB 프로젝트는 아님) V로 USB 스택을 시작 usbInit()
하면 SD 카드 라이브러리에 대한 모든 호출이 실패합니다. 전에 동일한 함수를 호출하면 usbInit()
모든 것이 완벽하게 작동합니다.
Diavolino라는 Arduino 클론을 사용하지만 Arduino / 배선 프레임 워크는 없습니다. USB를 디지털 I / O 2 및 3에 연결하고 SD 카드를 10-13 (내장 SPI 라인)에 연결했습니다.
SD 카드 라이브러리를 살펴본 후 이외의 인터럽트 나 레지스터를 사용하여 아무런 징후도 발견하지 못했습니다 SPxx
. 나는 또한 grep
V-USB 코드를 사용하고 싶지만SPxx
레지스터를 .
문제의 첫 징후는 SD 카드에 액세스하려고 할 때 장치의 연결이 끊어졌을 때였습니다. 그럼 난 넣어 usbPoll()
및wdt_reset()
루프를 처리하는 모든 SD 카드에 전화하고, 발견 쓰기의 경우, 마지막 2 바이트를 전송 한 후 영원히 카드의 승인을위한 카드 대기 (CRC-16).
내가 사용하는 SD 카드 라이브러리는 sd_raw
Roland Riegel입니다.