기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
안녕하세요 이번에 안드로이드에 블루투스를 올리는중인데
블루투스를 처음해봐서 여러군데에서 막히는중입니다.
우선 블루투스는 wi2wi로 BC04-ROM으로 UART로 연결중이며
도넛 사용중입니다.
도넛에서 블루투스를 켜면
tx를 반복적으로 계속 쏘는데
이때 설정은 무시하고 baudrate 38400으로 잡히며 오실로스코프로 데이터를 보내는걸 확인했습니다.
이때 데이터는
0xc0, 0x40, 0x41, 0x0, 0x7e, 0xda, 0xdc, 0xed, 0xed, 0xa9, 0x7a, 0xc0 으로
검색을 통해 알아본 바로는
pskey를 보내기전 헤더와 crc 체크를 한 결과물을 보내는 것 같습니다.
이후 바로 stop_rx가 뜨고, 이 과정을 무한반복되는데
shell에서 bccmd 를 입력하면 "can't open device hci0:No such device(19)"라는 메세지가 나오고
실제로 ls /dev, lsmod 두 명령어를 통해 확인해도 hci0는 없습니다.
psr 파일은 system.img에 이쁘게 넣어줬고
baudrate 역시 /0.004096 해서 넣었습니다. (이 사실은 오늘 알았네요;)
일단 질문은 정상적으로 BT가 켜지는게 1차 목표인지라 RX를 어떻게 해야 받아 올수있는지가 궁금합니다.
두번째로 리눅스에서 BT를 켜는 sequence가 궁금합니다.
sequence를 찾으려 계속 구글링 중인데 전혀 감을 못잡고 있습니다.
작은 도움이라도 부탁드리겠습니다.
긴 글 읽어주셔서 감사합니다.
현재 제가 사용하는 module은 bcsp 방식입니다.
Linux PC에서는 같은 baudrate로 동작을 시켰는데 android에서는 아래의 cmd로 동작이 되지 않네요.
bccmd -t bcsp -d /dev/s3c2410_serial1 psload -r csr.psr
csr.psr로드까지는 성공을 합니다.
hciattach -s 921600 /dev/s3c2410_serial1 bcsp 921600
여기서 "BCSP initialization timed out" error가 발생합니다.
혹시 왜그런지 아시는분 답변좀 부탁드려요~
저도 완전히는 모르지만, 제가 했던걸 기준으로 말씀드리면, 블루투스 모듈에 전원이 들어가고 reset이 끝나면 블루투스 모듈이 tx로 뭔갈 막 쏩니다. 그때 baudrate를 확인해 보니 115200bps이더군요. 그래서 bcsp 초기화 할때 위에서 님이 말하는 것과 같이 38400bps로 세팅되는걸 115200으로 세팅한후 psr 파일을 전송하도록 하니깐 정상적으로 bcsp initialize가 끝나는 것을 확인했습니다. 그러고 나면 hcio도 생기고 정상적으로 블루투스를 사용할수 있었습니다. 리눅스에선 별도로 작업할거 없이 그냥 UART driver만 정상이면 잘 동작합니다. ^^a