Al evaluar la placa Libelium Waspmote para redes de sensores inalámbricos, descubrimos un problema de comunicación extraño.
Intentamos establecer un enlace entre waspmote y otra placa a través de UART en 115200 Baud usando 8N1.
Esta es la forma de onda resultante en Tx para enviar 9 veces 0x55 (01010101b):
Losnivelesdealtaybajadegeneraciónaltriplededetección:comenzandoconunnivelaltode3.3V,lospicossereducenaaproximadamente2.7Vylosmínimoscomienzanaaproximadamente1.1Vycaena0.7V./p>
Deacuerdoconlaespecificacióndelostablerosdedestino,lospicosdebenser>2.3Vylosmínimos<1Vparaelcorrectofuncionamiento.
Meparecequesurgeuncomportamientocapacitivo,peronotengoideadeporquésucedeesto.
Necesitounapistasobreloqueestásucediendo,loqueestoyhaciendomaloloquepuedohacerparasolucionaresteproblema.
Algunainformaciónadicional:
- ElmicrocontroladorenelwaspmoteesunAtmega1281,ysuspinesdeuartestánconectadosdirectamentealenlacedecomunicación(nohaycontroladoresentreellos).
- Nopuedoreducirlavelocidadenbaudiosyaquelaplacadedestinosoloacepta115200baudios.
ACTUALIZACIÓN1
Hiceunafotodedetalledelaseñal.Estamosviendounatransmisiónaaproximadamente125kHz,quepareceestarunpocolejosdelos115200baudiosdeseadosalosqueapunto.
ACTUALIZACIÓN 2
Mido formas de onda idénticas cuando desconecto la placa traget y coloco la sonda de osciloscopios directamente en los microcontroladores UART-Pin. Esto parece descartar problemas con el tablero objetivo. Sin embargo, la velocidad en baudios medida es exactamente 125000, que es un error de alrededor del 8% de la velocidad en baudios deseada de 115200. Ya que la especificación de UARTs limita el sesgo de velocidad en baudios al 2%, supongo que hay un problema. Sin embargo, como el tablero waspmote está bloqueado a una velocidad de reloj de 8 MHz, el Atmega1281 en el tablero no puede producir un reloj de 115200 baudios más preciso a través de los registros del prescaler (verifiqué el manual). Supongo que necesitaré otra tabla para comunicarme con mi tabla objetivo.
Gracias a todos.