miércoles, 26 de diciembre de 2018

¿USART Ó UART?

¿Alguna vez ha usado el término UART solo para que otro ingeniero corrija que no es un UART sino un USART? En ciertas circunstancias, la intercambiabilidad de estos términos puede ser apropiada, pero en muchos casos es un error. Examinemos lo que son un USART y un UART, y discutamos las principales diferencias.
La mayoría de los ingenieros integrados están familiarizados con un UART: un receptor / transmisor asíncrono universal. Es un periférico de microcontrolador que convierte los bytes de datos entrantes y salientes en un flujo de bits en serie. Un bit de inicio inicia el flujo de bits en serie y un bit de parada (o dos) completa la palabra de datos. Un UART también tiene la opción de agregar un bit de paridad al flujo para ayudar a detectar si se produce un error de bit durante la transmisión. La Figura 1 muestra un ejemplo estándar de lo que un ingeniero esperaría ver a partir de los datos transmitidos a través de un UART.

FIGURA1-UART
Un USART, un receptor / transmisor sincrónico / asíncrono universal, es un periférico con microcontrolador que convierte los bytes de datos entrantes y salientes en un flujo de bits en serie. Hmm La definición de un USART es idéntica a la de un UART, pero con "síncrono" agregado al término. Seguramente hay algunas diferencias más significativas? De lo contrario, un USART sería conocido como un UART.


Bueno, hay diferencias, importantes. La primera diferencia entre un USART y un UART es la forma en que se pueden sincronizar los datos en serie. Un UART genera su reloj de datos internamente al microcontrolador y sincroniza ese reloj con el flujo de datos utilizando la transición de bit de inicio. No hay una señal de reloj entrante asociada con los datos, por lo que para recibir correctamente el flujo de datos, el receptor debe saber de antemano cuál debe ser la velocidad en baudios.

Un USART, por otro lado, puede configurarse para ejecutarse en modo síncrono. En este modo, el periférico emisor generará un reloj que el periférico receptor puede recuperar del flujo de datos sin conocer la velocidad en baudios antes de tiempo. Alternativamente, el enlace utilizará una línea completamente separada para transportar la señal del reloj. El uso del reloj externo permite que la velocidad de datos del USART sea mucho más alta que la de un UART estándar, alcanzando velocidades de hasta 4 Mbps.

La segunda diferencia importante entre un USART y un UART es la cantidad de protocolos que puede admitir el periférico. Un UART es simple y solo ofrece algunas opciones desde su formato base, como el número de bits de parada y paridad par o impar. Un USART es más complejo y puede generar datos en una forma correspondiente a muchos protocolos estándar diferentes, como IrDA, LIN, tarjeta inteligente, habilitación de controlador para RS-485
interfaces, y Modbus, por nombrar algunos. Un USART también tiene las mismas capacidades asíncronas que un UART, es decir, un USART puede generar el mismo tipo de datos en serie como se ve en la Figura 1.

FIGURA2-USART-<--->UART

Los periféricos USART y UART tienen capacidades definitivamente diferentes y pueden ser útiles en diferentes situaciones, por lo que un desarrollador puede encontrar ambos periféricos a bordo de un microcontrolador estándar. Por ejemplo, tome un microcontrolador orientado a un diseño de bajo consumo, como la familia STM32. Las piezas STM32 tienen un periférico en el chip USART y UART. El USART está destinado a realizar toda la comunicación en serie de "levantamiento pesado" durante períodos de "alto" consumo de energía. Sin embargo, cuando el microcontrolador está dormido y en un modo de bajo consumo, el periférico UART puede manejar comunicaciones de baja velocidad a la vez que ofrece una huella de energía reducida.

¿Son USARTs y UARTs iguales? Técnicamente la respuesta es no. Un USART generalmente tiene más capacidades que un UART estándar y la capacidad de generar datos sincronizados permite que el USART funcione a velocidades de transmisión mucho más allá de las capacidades de un UART. Sin embargo, un USART abarca las capacidades de un UART, y en muchas aplicaciones, a pesar de tener el poder de un USART, los desarrolladores las usan como UART simples, ignorando o evitando la capacidad de generación de reloj síncrono de estos poderosos periféricos. No es de extrañar que tantas personas utilicen los términos como si fueran sinónimos.

OPCIONES PARA TENER MAS DE DE UART EN UN MICROCONTROLADOR:

  • Si estas acostumbrado a usar microcontroladores PIC y tienes la necesidad de tener mas de un bloque UART puedes hacer con dos pines un bloque UART VIRTUAL como se aprecia en este video. El inconveniente es que cuando son software serial no esta disponible la interrupcion por hardware. 
  • 0tra posibilidad es multiplexar el puerto, por ejemplo con un dsPIC,PIC,AVR.
  • Puedes simular un puerto serial extra por un pin de interrupcion externa.
  • Usat PiC C Compiler para poder crear por software mas puertos seriales.
  • El PIC24FJ o el PIC18F67K40 que tienen mas de un puerto UART.
ATmega324PB
Comumente sólo se usa 1 puerto uart, pero en aplicaciones mas grandes se necesita mas bloques según sea la necesidad. Este avr tiene hasta 3 bloques USART que se pueden configurar como UART.
Bloques del Atmega 324PB
Como podemos ver este micro nos ofrece mas de un bloque USART y lo mejor de todo que es un micro de 8 bits. Aquí anexo el link de descarga del datasheet del micro .

APLICACIONES:
  •  Lo que se puede hacer es usar el puerto en RS232 para comunicación serie con el PC y el otro puerto lo compartir entre un RS485 (recolectaba información wireles de los esclavos) y un RS232 que transmitía Alarmas a celulares.
  • Conección con HMI Industriales por el puerto RS485.

domingo, 2 de diciembre de 2018

Retardos-Método1

1 Lazo
Un Lazo
Un Lazo



Ecuación caracteristica del número de ciclos con 1 lazo


5N, N= valor de r17.
Ejemplo:
Si tomamos el ejemplo de N=3, el compilador,  nos muestra que realizo 19 ciclos de conteo
Cyclos realizados por el complilador
pero tomo en cuenta el valor de la instrucción ret que utuliza 4 ciclos , entonces si restamos estos 4 ciclos nos da los 15 ciclos calculados.

conteo

Si N=255, se tendrá un valor máximo de 1275 ciclos. para mas ciclos se necesita mas de 1 lazo.
2 Lazos

Dos lazos anidados

Dos lazos anidados

Ecuación caracteristica del número de ciclos con 2 lazo
5NM+3N, N= valor de r18, M= Valor de r17.

Ejemplo:
Si tomamos el ejemplo de N=2,M=3, reemplazando en la formula 5NM+3N = 36, el compilador,  nos muestra que realizo 41 ciclos de conteo.
Cyclos realizados por el complilador

pero tomó en cuenta el valor de la instrucción ret que utuliza 4 ciclos y la instrucción ldi r18,2 , entonces si restamos estos 4 ciclos y 1 ciclo de la instrucción ldi, nos da los 36 ciclos calculados.

Conteo

3 Lazos

Tres Lazos


Ecuación caracteristica del número de ciclos con 3 lazo

Ejemplo:
Si tomamos el ejemplo de N=2,M=3,P=4  reemplazando en la formula 3N+3NM+5NMP = 144, el compilador,  nos muestra que realizo 148 ciclos de conteo.
Cyclos realizados por el complilador
pero tomó en cuenta el valor de la instrucción ret que utuliza 4 ciclos ,entonces si restamos estos 4 ciclos  nos da los 36 ciclos calculados.


Conteo

4 Lazos
Ecuación caracteristica del número de ciclos con 4 lazo

Ejemplo:
Si tomamos el ejemplo de N=2,M=3,P=4 ,Q=5 reemplazando en la formula 3N+3NM+3NMP+5NMPQ = 696 ciclos , sin embargo el compilador,  nos muestra que realizo 701 ciclos de conteo.
4 lazos

Cyclos realizados por el complilador
pero el compilador suma los 4 ciclos de la instrucción ret y de la primera instrucción ldi r16,2(1 cyclo) ,entonces si restamos estos 5 ciclos nos da los 696 ciclos calculados.
Conteo
Ejemplo:
si se desea hallar la cantidad máxima de ciclos obtenidos en 4 lasoz, entoncen  N=255,M=255,P=255 ,Q=255 reemplazando en la formula 3N+3NM+3NMP+5NMPQ no dará 21 191 193 090 ciclos , 

Máximo valor de ciclos con 4 lazos

si se utiliza un cristal de 1Mhz-->(1/1Mhz)*CM= 21 191 193 090 us= 21 191,193 seg

Retardos-Método2

1 lazo
Un Lazo

Un Lazo

Ecuación caracteristica del número de ciclos con 1 lazo
Ejemplo:
Si N=20  reemplazamos en 3N= 60  Cyclos.

Cyclos realizados por el complilador

 El compilador nos da un total de 64 cyclos ya que esta considerando la instrucción ret(4 cyclos)

conteo
2 lazos
Dos Lazos anidados 

Dos Lazos anidados


Ecuación caracteristica del número de ciclos con 2 lazos
Ejemplo:
Si N=2,M=3 reemplazamos en 3N+3NM= 24 Cyclos.
Cyclos realizados por el complilador
El compilador nos da un total de 29 cyclos ya que esta considerando la instrucción ret(4 cyclos) y el de la primera instrucción ldi r16,2.

conteo


3 lazos
Ecuación caracteristica del conteo de ciclos con 3 lazos

Ejemplo:
Si N=2,M=4,P=5 reemplazamos en 3N+3NM+3NMP= 150 Cyclos.
Cyclos realizados por el complilador
 El compilador nos da un total de 154 cyclos ya que esta considerando la instrucción ret(4 cyclos).

conteo

4 lazos
Ecuación caracteristica del número de ciclos con 4 lazos

Ejemplo:
Si N=2,M=5,P=8,Q=10 reemplazamos en 3N+3NM+3NMP+3NMPQ= 2676 Cyclos.

Cyclos realizados por el complilador
 El compliador nos da un total de 154 cyclos ya que esta considerando la instrucción ret(4 cyclos).

conteo
Una forma sencilla para realizar retardos  se encuentra en la web link

Uso del firmware original de la grabadora USBasp AVR en MX-USBASP (clon chino)

Te vendieron un USBisp pensado que es un USBasp?? Hace 2 meses compré un "USBasp" fui a probarlo y no funcionó....pensé me estafar...