2013-10-18 2 views
1

도와주세요. 문제를 뿌리 뽑기 위해 수 시간을 보냈습니다.마이크로 컨트롤러에서 모뎀으로 보내지는 AT 명령은 무시됩니다

설치 : MSP430 (F5529 마이크로 컨트롤러), HW UART (USCI_A0) 및 모뎀 연결 (uBlox Leon G100). USB-to-RS232를 통해 PC에 연결하면 정확한 트래픽을 볼 수 있기 때문에 USCI_A0 포트가 잘 작동합니다.

uart_puts(UART_MODEM, "AT+CPWROFF\r"); 

이 모뎀 + CPWROFF AT 넣어 것이다 간단한. 모뎀은 전원을 끄지 않습니다. 모뎀에 PC를 연결하고 Enter 키를 눌러 "AT + CPWROFF"를 입력하면 모뎀의 전원이 꺼집니다. PC 콘솔에서도 "\ r"이 제대로 작동하는지 확인했습니다. 올바르게 캐리지가 반환됩니다. 시도한 "\ n \ r"은 작동하지 않습니다. 모뎀 설정에서 S3 문자를 확인했는데 013 (CR 또는 \ r)입니다.

나는 무엇이 잘못되었는지 전혀 모른다. PC에서 모뎀으로 잘 작동한다. (모뎀 전원을 켤 수있다.) MSP430-to-PC는 괜찮다. 마이크로 컨트롤러가 AT + CPWROFF를 UART에 넣는다.하지만 MSP430-to-modem은 그렇지 않다. 작업.

모뎀이 켜져 있는지 또는 꺼져 있는지를 현재 소비량을보고 확인할 수 있습니다.

제발, 어떤 힌트?

+1

마이크로 컨트롤러에서 모뎀으로 보낸 다른 명령이 작동합니까? –

+0

@ EricJ.No 및 UART에서 잘못된 점을 확인하기 위해 로직 분석기를 연결했습니다. 이것은 Python 스크립트를 통해/dev/ttyUSB0에서 모뎀으로 보내지는 올바른 통신의 덤프입니다 : http://inet24.pl/~morales/modem_ok.html 이것은 마이크로 컨트롤러에 의해 수행되는 통신입니다 (동일한 설정) http://inet24.pl/~morales/modem_nook.html. 모뎀이 쓰레기로 응답하는 것처럼 보입니다. 또한 FRAME 데이터가 나타납니다.이 데이터는 발생 시간에 가변적 인 경우가 있습니다 (때로는 20 개의 프레임도 있음). 나는 시계의 부정확성을 배제하기 위해 115200과 9600 전송 속도를 사용했다. 나는 정신 나간다. – tml

답변

0

확인, 문제가 해결되었습니다. 내가 보낸 링크에서 감지 된 전송 속도를 살펴보면 PC에서 전송 속도가 9585 (동기화 차이의 0.14 %) 인 반면 MCU는 7862 (동기화 차이의 2.73 %)라는 것을 알 수 있습니다). 나는 4MHz 크리스탈로 바뀌었고 이제는 약 0.23 %의 싱크가 있습니다. DCO가 불안정한 시계를 제공한다는 것은 정말로 놀라운 일입니다.

관련 문제