¿Puedo usar el oscilador interno de la MCU cuando me comunico con el GPS y los módulos celulares?

0

¿Puedo usar el oscilador interno de MCU cuando me comunico con GPS y módulos celulares? Quiero evitar la conexión de cristales externos para la MCU, ya que generan ruido, componentes adicionales, costos adicionales y, además, requieren restricciones y precauciones de diseño de PCB. Mi MCU es stm32L4

    
pregunta Maryam Magdy

2 respuestas

2

Las comunicaciones en serie asíncronas imponen exigencias sobre la precisión del reloj. Algunos osciladores RC internos calibrados son aceptables, otros no, y otros están bien en un rango de temperatura / Vcc limitado y / o si no tiene errores adicionales debido a la resolución del divisor (generalmente a velocidades más altas) ).

La parte receptora comienza a sincronizar los datos en función de cuándo detecta un borde de inicio. Esa detección se degradará un poco si los cables son largos y por el número de veces que muestrea dentro de un bit determinado. Debido a que el entramado generalmente se realiza por byte, el error se acumula dentro del byte más el bit de inicio, la paridad de bit de parada, etc., que generalmente es de unos 10 bits por byte. Por lo tanto, un error del 5% significa que el receptor está mirando los datos a 1/2 bit de desactivación, lo que está justo en el borde si todo lo demás, incluida la frecuencia del reloj del receptor es perfecto .

Si la otra parte está usando un reloj controlado por cristal, un error en el peor de los casos de ~ 4% es probablemente (apenas) aceptable. Por lo general, el 2% se usa como límite, si no tiene el control del otro lado.

Una MCU con un error inicial de 1% en el peor de los casos (número de letra grande) puede tener una precisión inaceptable o apenas aceptable cuando se consideran todos los factores como el coeficiente de voltaje y el coeficiente de temperatura. Por ejemplo, una especificación típica de un "rango medio" Pieza de microchip

Si su única necesidad de comunicación en serie se encuentra en un entorno de oficina / tienda para la configuración o el diagnóstico, lo anterior es más que suficiente para las comunicaciones con una PC que está garantizada para tener un reloj controlado con cristal adecuado. Si espera que funcione en un automóvil, en todas las condiciones, no se garantiza que sea lo suficientemente bueno.

Si ese es su único requisito para un reloj preciso, sugeriría considerar un resonador cerámico. No es necesariamente más barato, pero da como resultado un recuento de piezas más bajo y es más resistente en comparación con un oscilador de cristal y, por lo general, es más que lo suficientemente bueno (0.5% es una especificación típica) en la precisión de las comunicaciones en serie asíncronas.

    
respondido por el Spehro Pefhany
0

Sí, puedes correr con el oscilador interno, pero es posible que no quieras hacer todo el trabajo para que esto suceda. Dependiendo de la parte exacta del STM32L4, lea la hoja de datos y observe la tolerancia de frecuencia del oscilador interno, teniendo en cuenta aspectos como la tolerancia inicial a una tensión y temperatura de suministro determinadas y luego la tolerancia en el rango de las tensiones y temperaturas de suministro. Si está fuera de tolerancia para los requisitos de comunicaciones UART (que se encuentran en el manual de referencia), entonces necesita una calibración automática para mantenerse dentro de la tolerancia. Si quiere evitar todo esto, simplemente coloque el cristal u oscilador allí. También tenga en cuenta que la velocidad en baudios no tiene ningún efecto en esto, solo la tolerancia.

    
respondido por el Justme

Lea otras preguntas en las etiquetas