GPIO 를 통해서 카메라 모듈에서 나오는 데이터를 받고 있습니다.

카메라전원으로 보드에서 제공하는 3.3v 핀을 사용합니다.

그래서 보드를 키면 동시에 카메라 모듈에서 데이터가 나오기 시작합니다.

소프트웨어를 실행시키면 데이터를 잘 받습니다.

 

문제는

 카메라 모듈이 켜져 있는 상태에서는 usb를 인식하지 못합니다.

 

usb메모리 스틱을 꼽고, 카메라를 연결후  부팅하면

usb.c: USB device not accepting new address=2 (error=-110)
hub.c: new USB device sl811-1, assigned address 3

ub_contol/bulk_msg: timeout
usb.c: USB device not accepting new address=3 (error=-110)
이런 메시지가 나옵니다.

 

카메라모듈의 파워를 끄면 usb가  잘 동작합니다.

 

그래서 편법으로 usb를 인식시킨 후 카메라를 파워온 하는 방법으로 (usb를 인식한 다음에 소프트웨어를 실행하기 위해) 

소프트웨어를 실행시키면 카메라 자체는 잘 동작합니다.

소프트웨어 내에서 데이터를 usb로 복사하는 부분에 있는데

이 루틴으로 들어가면 동작을 멈춥니다.

동작을 멈추었을때 카메라파워를 오프 시키면(3.3v 와의 연결을 끊는 방법으로)

 usb에 데이터가 정상적으로 들어가 있습니다.

 

gpio 자체를 '전원'으로 사용해서 컨트롤 하니 동작은 하는 것 처럼 보이는데

아무래도 전력이 부족해서 그런지 데이터가 올바르지 않습니다.

핀을 찍어보면 3.3v가 나오는데 카메라와 연결하면 3.3v가 나오지 않습니다.

따로  스위칭 회로를 구성하는 것은 불가능한 상황입니다.

방법이 없는 것일까요ㅠ.ㅠ

 

일단 나쁜 머리로 분석해본 결과  

부팅시 gpio 디폴트 설정이 입력이라( user manual )  카메라에서 나오는 데이터가 usb와 

인터럽트 간섭을 일으키는 것 같은데...이게 맞는것 같지도 않고;;;

 

제발 도와주세요ㅠ.ㅠ