viernes, 29 de septiembre de 2017

XiuaElectronics: Para los robots, el futuro es modular...

Para los robots, el futuro es modular...


Los "sistemas nerviosos fusionables" pueden crear robots flexibles y autoadaptantes. Michael Lucy informa.
  
Three autonomous MNS robots.  
Tres robots MNS autónomos.
Crédito: MARCO DORIGO y NITHIN MATHEWS

Una mente, un cuerpo: La mayoría de las veces es una regla general buena, pero los nuevos desarrollos en robótica pueden hacer que sea obsoleta. La idea de una mente colmena o inteligencia de enjambre se esta abriendo paso desde la paginas de ciencia ficción hasta el laboratorio.

En un trabajo o paper publicado en Nature Communications., Marco Dorigo de la universidad libre de Bruselas (Université Libre De Bruxelles) y sus colegas describen un "sistema nervioso combinable" (MSN) robots que pueden combinar y dividir sus cuerpos y sistemas de control.

La mayoría de los robots están diseñados con un "sistema nervioso" similar en esquema al suyo o mío: los sensores entregan la entrada a una unidad central de procesamiento (un "cerebro"), que a su vez emite instrucciones para mover o realizar otras acciones. Aunque los robots modulares que pueden trabajar juntos existen, sus sistemas de control generalmente consisten en simple señalización entre unidades, algo así como moldes de limo unicelulares que pueden exhibir un grado de comportamiento organizado sin control central.

Sin embargo, los robots MNS de Dorigo -que utilizan la plataforma de hardware marXbot- pueden unirse para formar un solo robot con un único sistema nervioso en el que una unidad funciona como el "cerebro" y los demás como cuerpo.

The mergeable nervous system concept. MNS robots consisting of a single robotic unit (center) self-assemble into larger MNS robots with a single brain unit (shown in red).
El concepto de sistema nervioso fusionable. Los robots MNS consisten en una sola unidad robótica (central) autoensamblaje en robots MNS más grandes con una sola unidad cerebral (mostrada en rojo).
Crédito: DORIGO ET AL. NATURE COMMUNICATIONS.




Esto permite una flexibilidad sin precedentes: un robot puede dividirse en robots autónomos más pequeños, cada uno con una unidad cerebral independiente; puede traer nuevas unidades con diferentes capacidades para completar una tarea; y puede intercambiar unidades dañadas, incluyendo un cerebro dañado.


Los autores no son tímidos sobre lo que ven como la importación del desarrollo: "una nueva clase de robots con capacidades más allá de las de cualquier máquina existente u organismo biológico".

El elemento clave del diseño es hacer que el sistema nervioso pueda hacer frente a una configuración cambiante de sensores de entrada y partes del cuerpo.

El sistema nervioso de cada unidad contiene una descripción topológica arbórea de la disposición física del robot como un todo con el cerebro como la raíz. En particular cada unidad tiene una representación de sí misma y todas sus unidades "infantiles", de modo que está dispuesta a separarse con sus hijos y convertirse en el cerebro de un nuevo robot en un momento de aviso. Entradas sensoriales y comandos se transmiten hacia arriba y hacia abajo de la estructura del árbol.



Diez robots MNS reaccionan a un estímulo señalándolo con sus LEDs verdes y retrocediendo cuando el estímulo está demasiado cerca (comportamiento de punto y retiro). Los diez robots se fusionan para formar dos robots MNS, que muestran el mismo punto y el comportamiento de retirada. Los dos robots MNS se fusionan en un único robot MNS que muestra el mismo punto y el comportamiento de retirada.
Crédito: DORIGO ET AL. NATURE COMMUNICATIONS



En la actualidad, los robots MNS pueden cambiar la forma y el tamaño del cuerpo, manteniendo la coordinación sensorimotora fina, pero están limitados por las conexiones rígidas entre las unidades y tener que mantener sus ruedas en el suelo. 

El siguiente paso, dicen los investigadores, es construir en tres dimensiones y con articulaciones flexibles. 

"En el futuro", escriben, "los robots no serán diseñados y construidos para una tarea en particular". 

En cambio, esperan construir enjambres de robots que puedan elegir la configuración correcta para cualquier trabajo que se les solicite.



Fuente: For robots, the future is modular
Este artículo fue traducido del inglés al español por Breismam Rueda.





Bien muchachos, esto es todo por hoy. Estén pendientes de mi canal, de mi blog y de mi pagina de Facebook para más contenido.

Facebook: https://www.facebook.com/electronicalibrexc/
Youtube:  http://www.youtube.com/c/breismanrueda
Google +: https://plus.google.com/u/0/+breismanrueda
Twitter: https://twitter.com/BreismamR

Esto es todo por hoy, Sigue mi blog y visita mi próxima entrada!

Cualquier duda, trabajo, tutoria personalizada por correo electrónico o pagina en facebook:
Correo: ElectronicaLibreXC@outlook.com
Facebook: https://www.facebook.com/electronicalibrexc/




Salu2...


jueves, 21 de septiembre de 2017

XiuaElectronics: Pequeños robots de ADN pueden clasificar y transportar carga molecular.

Pequeños robots de ADN pueden clasificar y transportar carga molecular.


Una ilustración conceptual de un robot del ADN que clasifica dos tipos de carga.
(Se ha tomado una licencia artística considerable.) CREDITO: ELLA MARU STUDIO


Un descubrimiento de la nanorobótica abre el camino a las fábricas moleculares, escribe Andrew Stapleton.




Investigadores del Instituto de Tecnología de California (Caltech) han diseñado y sintetizado robots de hebras de ADN. 

Los robots de ADN fueron capaces de recoger, transportar y clasificar moléculas, llevando el poder de la cooperación autónoma a la nanoescala algo normalmente reservado para máquinas mucho más grandes.

El trabajo, publicado en Science, demuestra cómo una sola hebra de ADN se puede diseñar para realizar tareas simples. "Es uno de los primeros pasos hacia el desarrollo de los bloques de construcción para los robots de ADN de propósito general", dijo el autor Lulu Qian de Caltech. Alan Rowan, químico de materiales de la Universidad de Queensland que no participó en la investigación, calificó el estudio de "una pieza inspiradora de la ciencia que utiliza la codificación única de la vida: nanómetros de polímeros de ADN". 

El equipo formó sus robots de ADN a partir de los módulos de nucleótidos que se combinan para llevar a cabo una función. En este caso, los robots consistieron en una "pierna" con dos "pies" para caminar, un "brazo" y una "mano" para recoger carga, y un segmento que podía reconocer un punto de caída específico y señalar a la mano para liberar la molécula que llevaba. Estas funciones se muestran en una simple animación a continuación.






Animación conceptual de un robot de ADN de una sola hebra (azul) que da un solo paso en una pista lineal (gris). 
CREDIR: CALTECH

Los robots fueron diseñados para recoger dos moléculas fluorescentes diferentes - un tinte amarillo y un colorante rosa - y luego distribuirlos a dos regiones distintas en una superficie pequeña. 

Las moléculas fluorescentes permitieron a los investigadores rastrear la carga tal como fue ordenada por los robots.

Cada robot ordenó con éxito seis moléculas dispersas, tres rosas y tres amarillas, en sus lugares correctos en 24 horas.

Si esto no es lo suficientemente rápido para usted, simplemente agregando más robots de ADN a la superficie redujo el tiempo que tardó en ordenar las moléculas.

Aunque cada robot solo podía transportar una molécula a la vez, en el futuro los científicos creen que los robots de ADN con múltiples "manos" podrían ser usados para transportar diferentes moléculas simultáneamente y trabajar juntos en fábricas de nanoescala para construir moléculas terapéuticas.

"Nos gustaría desarrollar más bloques de construcción para los robots de ADN para realizar funciones más diversas", dijo Qian. "También estamos interesados en agregar una comunicación sencilla entre robots, para que puedan realizar de forma cooperativa tareas más complejas, como un enjambre".

Sin embargo, podría pasar un tiempo antes de que estos robots desempeñen un papel importante en nuestra vida cotidiana.

"Este es un primer pequeño paso hacia el procesamiento paralelo a escala nanométrica", dijo Rowan. "Cómo integrar estos dispositivos en aplicaciones modernas de hoy en día sigue siendo un desafío que llevará décadas".






Fuente: Tiny DNA robots can sort and carry molecular cargo
Este artículo fue traducido del inglés al español por Breismam Rueda.






Bien muchachos, esto es todo por hoy. Estén pendientes de mi canal, de mi blog y de mi pagina de Facebook para más contenido.

Facebook: https://www.facebook.com/electronicalibrexc/
Youtube:  http://www.youtube.com/c/breismanrueda
Google +: https://plus.google.com/u/0/+breismanrueda
Twitter: https://twitter.com/BreismamR

Esto es todo por hoy, Sigue mi blog y visita mi próxima entrada!

Cualquier duda, trabajo, tutoria personalizada por correo electrónico o pagina en facebook:
Correo: ElectronicaLibreXC@outlook.com
Facebook: https://www.facebook.com/electronicalibrexc/



Salu2...










martes, 19 de septiembre de 2017

XiuaElectronics: El Internet cuántico está a sólo una década de distancia.

El Internet cuántico está a sólo una década de distancia.


Que tal amigos?


En el día de hoy les traigo una pequeña traducción de una noticia que me pareció muy interesante, en este caso se trata del Internet cuántico y la proximidad en el uso cotidiano.



En breve

A medida que China se acerca a la construcción de una red de comunicaciones cuánticas, la posibilidad de una Internet cuántica se vuelve cada vez más real. Pero, ¿qué significa tener un Internet cuántico?


El siguiente nivel

La palabra "cuántica" suena tan avanzada y compleja que la gente tiende a ser exagerada acerca de cualquier cosa que se le atribuye. Aunque no todos los avances cuánticos suscitan una respuesta positiva, en el caso de un llamado Internet cuántico, la gente tiene una razón para estar emocionada.

En el más simple de los términos, un Internet cuántico sería uno que utiliza señales cuánticas en lugar de ondas de radio para enviar información. Pero vamos a explicar eso un poco más.

La Internet, como la conocemos, utiliza frecuencias de radio para conectar varias computadoras a través de una red global en la que se envían señales electrónicas de un lado a otro. En un Internet cuántico, las señales se enviarían a través de una red cuántica usando partículas cuánticas enredadas.

Siguiendo lo que Einstein llamó "acción espeluznante a distancia", partículas enredadas existen en un estado especial que permite que la información contenida en uno se refleje instantáneamente en otro - una especie de teleportación cuántica.

Imagen: MIT

Los investigadores han hecho recientemente progresos significativos en la construcción de esta red de comunicación cuántica. China lanzó el primer satélite de comunicación cuántica del mundo el año pasado, y desde entonces han estado ocupados probando y extendiendo las limitaciones de enviar fotones enredados del espacio a estaciones terrestres en la Tierra y luego de nuevo. También han logrado almacenar información usando la memoria cuántica. A finales de agosto, la nación planea tener una red de comunicación cuántica de trabajo para impulsar el Internet Beijing-Shanghai.

Jian-Wei Pan, de la Universidad de Ciencia y Tecnología de China, espera que exista una red cuántica global para 2030. Eso significa que un Internet cuántico está a sólo 13 años, si todo va bien.


¿Navegación Cuántica en la web?


Entonces, ¿qué significa una Internet cuántica para los usuarios regulares de Internet? En cuanto a la navegación por Internet típica se refiere, probablemente no mucho.

Es muy improbable que utilice el Internet cuántico para actualizar su feed de medios sociales, por ejemplo. "En muchos casos, no tiene mucho sentido comunicar mecánicamente cuántica", dijo el físico de la Universidad de Washington, Kai-Mei Fu, a WIRED. Para esas cosas, la comunicación regular en Internet es suficiente.

El Internet cuántico se destacaría, sin embargo, en el envío de información de forma segura. A través de lo que se conoce como encriptación cuántica o criptografía cuántica, la gente sería capaz de enviar datos "inconexos" a través de una red cuántica. Esto se debe a que la criptografía cuántica utiliza un mecanismo llamado distribución de clave cuántica (QKD), lo que significa que un mensaje cifrado y sus claves se envían por separado. La alteración de dicho mensaje hace que se destruya automáticamente, tanto el remitente como el receptor serán notificados de la situación.

Un Internet cuántico también podría acelerar el acceso a una computadora cuántica de trabajo poniendo la computación cuántica en la nube. En lugar de tratar de poner las manos en una computadora física cuántica, que todavía no hemos logrado poner a disposición del público, se puede acceder a una a través de la nube.

Una computadora personal regular podría transmitir o acceder a la información cifrada cuántica a través de este ordenador cuántico basado en la nube. Por lo menos, usted podría enviar "unhackable" correos electrónicos. "Los usuarios tal vez no quieran enviar su información de forma clásica, donde podría ser escuchado", dijo Fu a WIRED.

Esencialmente, un Internet cuántico sería más probable convertirse en una rama especializada de la Internet regular, a la que sólo se conecta a para tareas específicas. Sin embargo, incluso si el Internet cuántico no funciona de la misma manera que el Internet actual, una cosa es segura: la tecnología de vanguardia tiene el potencial de beneficiar a todos, desde físicos incondicionales a Joes regulares que transmiten la última (no filtrada) episodio de Game of Thrones.



Fuente: The Quantum Internet is just a decade away. Here's what you need to know
Este artículo fue traducido del inglés al español por Breismam Rueda.






Bien muchachos, esto es todo por hoy. Estén pendientes de mi canal, de mi blog y de mi pagina de Facebook para más contenido.

Facebook: https://www.facebook.com/electronicalibrexc/
Youtube:  http://www.youtube.com/c/breismanrueda
Google +: https://plus.google.com/u/0/+breismanrueda
Twitter: https://twitter.com/BreismamR

Esto es todo por hoy, Sigue mi blog y visita mi próxima entrada!

Cualquier duda, trabajo, tutoria personalizada por correo electrónico o pagina en facebook:
Correo: ElectronicaLibreXC@outlook.com
Facebook: https://www.facebook.com/electronicalibrexc/



Salu2...

miércoles, 30 de agosto de 2017

XiuaElectronics: Detección de voltaje Alto/Bajo (HLVD) PIC18XXXX

Detección de voltaje Alto/Bajo (HLVD) PIC18XXXX.


Que tal amigos?

En el día de hoy les traigo un muy interesante y poco conocido tema. En este caso voy a hablar sobre el modulo de detección de caída o subida de tensiones para la familia de PIC18FXXXX. Como tal voy a mostrar como funciona internamente, como se debe configurar y sus posibles aplicaciones.



HIGH/LOW-VOLTAGE DETECT (HLVD) || DETECCIÓN DE VOLTAJE ALTO/BAJO(HLVD).


Los dispositivos PIC18F2455/2550/4455/4550 disponen de un módulo de Detección de Alta/Baja Tensión (HLVD). Este es un circuito programable que permite al usuario especificar un punto de disparo del voltaje del dispositivo y la dirección de cambio desde ese punto. Si el dispositivo experimenta una excursión más allá del punto de disparo en esa dirección, se establece un indicador de interrupción. Si la interrupción está habilitada, la ejecución del programa se ramificará a la dirección del vector de interrupción y el software podrá entonces responder a la interrupción.

El registro de Control de Detección de Alta / Baja Tensión (Registro 24-1) controla completamente el funcionamiento del módulo HLVD. Esto permite que el circuito sea "apagado" por el usuario bajo control de software que minimiza el consumo de corriente para el dispositivo. El diagrama de bloques para el módulo HLVD se muestra en la Figura 24-1.

Registro HLVDCON:



Bit 7: VDIRMAG: Bit de selección de magnitud de dirección de voltaje.
         1 = El evento ocurre cuando el voltaje es igual o excede el punto de disparo (HLVDL3: HLDVL0).
         0 = El evento ocurre cuando el voltaje es igual o inferior al punto de disparo (HLVDL3: HLVDL0).

Bit 6: No implementado: Leer como '0'.

Bit 5: IRVST: Voltaje de referencia interno.
         1 = Indica que la lógica de detección de voltaje generará el indicador de interrupción en el rango de voltaje especificado.
         0 = Indica que la lógica de detección de voltaje no generará el indicador de interrupción en el rango de voltaje especificado y no se habilitará la interrupción HLVD.

Bit 4: HLVDEN: Bit de habilitación de potencia de detección de alta / baja tensión.
         1 = HLVDEN activado
         0 = HLVDEN desactivado

Bit 3-0: HLVDL3:HLVDL0: Bits límite de detección de tensión (1).
         1111 = Se utiliza una entrada analógica externa (la entrada proviene del pin HLVDIN).
         1110 = Ajuste máximo.
         ... Mirar tabla 28-6
         ... Mirar tabla 28-6
         ... Mirar tabla 28-6
         0000 = Ajuste mínimo.

En la siguiente tabla (Table 28-6) podremos observar como configurar los Bits 3-0 para el limite de detección del voltaje.


El módulo se habilita estableciendo el bit HLVDEN, es decir enviando un "1 lógico" al registro de configuración HLVDCON. Cada vez que el módulo HLVD está habilitado, los circuitos requieren algún tiempo para estabilizarse. El bit IRVST es un bit de sólo lectura y se utiliza para indicar cuándo el circuito es estable. El módulo sólo puede generar una interrupción después de que el circuito sea estable e IRVST esté ajustado.

El bit VDIRMAG determina el funcionamiento general del módulo. Cuando se borra VDIRMAG, el módulo supervisa las caídas en VDD por debajo de un punto de consigna predeterminado. Cuando el bit está ajustado, el módulo supervisa para subir en VDD por encima del punto de ajuste.

Cuando el módulo HLVD está habilitado, un comparador utiliza una tensión de referencia generada internamente como punto de consigna. El punto de ajuste se compara con el punto de disparo, donde cada nodo en el divisor de resistencia representa un voltaje de punto de disparo. El voltaje de "punto de disparo" es el nivel de tensión al que el dispositivo detecta un evento de alta o baja tensión, dependiendo de la configuración del módulo. Cuando la tensión de alimentación es igual al punto de disparo, la tensión extraída de la matriz de resistencia es igual a la tensión de referencia interna generada por el módulo de referencia de tensión. El comparador genera entonces una señal de interrupción ajustando el bit HLVDIF.

El voltaje de punto de disparo es programable por software para cualquiera de los 16 valores. El punto de disparo se selecciona mediante la programación de los bits HLVDL3: HLVDL0 (HLVDCON <3: 0="">).

El módulo HLVD tiene una característica adicional que permite al usuario suministrar el voltaje de disparo al módulo desde una fuente externa. Este modo se habilita cuando los bits, HLVDL3: HLVDL0, se establecen en '1111'. En este estado, la entrada del comparador se multiplexa desde el pin de entrada externo HLVDIN. Esto da a los usuarios flexibilidad porque les permite configurar la interrupción de Detección de Alta / Baja Tensión para que se produzca a cualquier voltaje en el rango de operación válido.

En la siguiente figura (Figure 24-1) veremos un bosquejo de como funciona internamente el modulo de detección de voltaje "HLVD" de la familia de PIC18FXXXX:



Bueno para resumir un poco lo anterior y tener un mejor entendimiento y también para aquellos que le es un poco difícil entender todo esto lo resumiré de la forma más simple posible. Este módulo lo que hace es detectarnos un voltaje, dependiendo de su configuración detectaremos cuando un voltaje disminuya o aumente, luego de detectar esta caída o aumento se activará una interrupción y  través de código lo que haremos es ejecutar una cierta orden. 
Este módulo tiene de interesante que puede ser utilizado en muchas aplicaciones. Afortunadamente podemos configurar el voltaje de disparo externamente, es decir, alimentando una entrada con "X" voltaje o internamente con la ayuda del voltaje de referencia interno. Anteriormente vimos los diferentes voltajes a los que podemos configurarlo (Table 28-6).

Pasos para su configuración:

Los siguientes pasos son necesarios para configurar el HLVD
módulo:

1) Desactive el módulo borrando el bit HLVDEN (HLVDCON <4>).
2) Escriba el valor en los bits HLVDL3: HLVDL0 que selecciona el punto de disparo HLVD deseado.
3) Ajuste el bit VDIRMAG para detectar alta tensión (VDIRMAG = 1) o baja tensión (VDIRMAG = 0).
4) Active el módulo HLVD estableciendo el bit HLVDEN.
5) Borre la bandera de interrupción HLVD, HLVDIF (PIR2 <2>), que puede haber sido establecida desde una interrupción anterior.
6) Habilite la interrupción HLVD, si se desean interrupciones, estableciendo los bits HLVDIE y GIE / GIEH (PIE2 <2> e INTCON <7>). No se generará una interrupción hasta que se establezca el bit IRVST.




Aplicaciones:



En muchas aplicaciones, es deseable la capacidad de detectar una caída por debajo o por encima de un umbral particular. Por ejemplo, el módulo HLVD podría habilitarse periódicamente para detectar la conexión o desacoplamiento de USB (Universal Serial Bus). Esto supone que el dispositivo está alimentado por una fuente de voltaje más baja que el USB cuando está desarmado. Una conexión indicaría una detección de alto voltaje de, por ejemplo, 3.3V a 5V (el voltaje en USB) y viceversa para una separación. Esta característica podría ahorrar un diseño algunos componentes adicionales y una señal de la conexión (perno de la entrada).


Para las aplicaciones generales de las baterías, la Figura 24-4 muestra una posible curva de voltaje. Con el tiempo, el voltaje del dispositivo disminuye. Cuando la tensión del dispositivo alcanza la tensión, VA, la lógica HLVD genera una interrupción en el tiempo, TA. La interrupción podría provocar la ejecución de un ISR, lo que permitiría a la aplicación llevar a cabo tareas de mantenimiento y realizar un apagado controlado antes de que el voltaje del dispositivo salga del rango de funcionamiento válido en TB. El HLVD, por lo tanto, daría a la aplicación una ventana de tiempo, representada por la diferencia entre TA y TB, para salir con seguridad.






Bien muchachos, esto es todo por hoy. Estén pendientes de mi canal, de mi blog y de mi pagina de Facebook para más contenido.

Facebook: https://www.facebook.com/electronicalibrexc/
Youtube:  http://www.youtube.com/c/breismanrueda
Google +: https://plus.google.com/u/0/+breismanrueda
Twitter: https://twitter.com/BreismamR

Esto es todo por hoy, Sigue mi blog y visita mi próxima entrada!

Cualquier duda, trabajo, tutoria personalizada por correo electrónico o pagina en facebook:
Correo: ElectronicaLibreXC@outlook.com
Facebook: https://www.facebook.com/electronicalibrexc/



Salu2...

Bien muchachos, esto es todo por hoy; estén pendiente en mi canal, o de mi blog o de mi pagina de 

sábado, 26 de agosto de 2017

XiuaElectronics: Memoria STACK en Microcontroladores PIC16F628A.

Memoria STACK en Microcontroladores PIC16F628A.


Que tal amigos?

En el día de hoy vamos a hablar de algo muy importante a la hora de programar microcontroladores PIC, en este caso me refiero a su memoria STACK. ¿Pero que es su memoria STACK? ¿Porqué es importante la memoria STACK?


Memoria STACK:

En los microcontroladores pic la memoria STACK, es una memoria interna dedicada, de un tamaño limitado dependiendo el microcontrolador, de diferentes niveles y distinta de las memorias dedicadas para el almacenamiento de datos y como tal del programa del microcontrolador. Esta memoria es inaccesible para el programador y esta organizada en forma de pila, y usualmente se utiliza de forma automática por el microcontrolador para guardar las direcciones de retorno de subrutinas e interrupciones. Cada posición es de 13 bits para el caso del pic16f628a, microcontrolador PIC utilizado en el curso Curso Proteus 8.5 + MPASM y PIC16F628A y permite guardar una copia completa del PC. Como en toda memoria tipo pila, los datos son accedidos de manera tal que el primero que entra es el ultimo que sale.


STACK PIC16F628A:


La familia PIC16F627A / 628A / 648A tiene una pila de hardware de 8 niveles de profundidad x 13 bits (Figura 4-1). El espacio de pila no forma parte del espacio de programa o de datos y el puntero de pila no es legible ni puede escribirse. El PC es PUSHed en la pila cuando se ejecuta una instrucción CALL o una interrupción causa una rama. La pila es POPed en el caso de una ejecución de la instrucción RETURN, RETLW o RETFIE. PCLATH no se ve afectado por una operación PUSH o POP.


Como ya se menciono anteriormente, el stack y el puntero interno que lo direcciona, son invisibles para el programador, solo se los accede automáticamente para guardar o rescatar las direcciones de programa cuando se ejecutan las instrucciones de llamada o retorno de subrutinas, o cuando se produce una interrupción o se ejecuta una instrucción de retorno de ella

La pila funciona como un amortiguador circular. Esto significa que después de que la pila ha sido PUSHed ocho veces, la novena PUSH sobrescribe el valor que fue almacenado desde el primer PUSH. El décimo PUSH sobrescribe el segundo PUSH (y así sucesivamente). 




Nota 1: No hay bits de estado para indicar el desbordamiento de la pila o las condiciones de desbordamiento de la pila.

Nota 2: No hay instrucciones / mnemónicos llamados PUSH o POP. Estas son acciones que ocurren desde la ejecución de las instrucciones CALL, RETURN, RETLW y RETFIE, o la vectorización a una dirección de interrupción.










Para tener en cuenta lo que hacen los niveles de profundidad del STACK es el permitir el anidamiento de subrutinas; por ejemplo para el PIC16f628A le es posible realizar 8 niveles de anidamiento de subrutinas que serían llamadas desde el programa principal.



Acá vemos como el programa principal llama a la primera subrutina "Subrutina1" y esta llama a "Subrutina2", así sucesivamente hasta las "Subrutina8". Pero si en la subrutina "Subrutina8" se intentara llamar a otra subrutina se desbordaría la capacidad del STACK, que solo puede almacenar ocho direcciones de retorno.

Esto de hecho representa una traba para el programador y además parece impedir o dificultar la programación estructurada, sin embargo es una buena solución de compromiso ya que estos microcontroladores están diseñados para aplicaciones de alta velocidad en tiempo real, en las que el overhead (demoras adicionales) que ocasiona un excesivo anidamiento de subrutinas es inaceptable. Por otra parte existen técnicas de organización del programa que permiten mantener la claridad de la programación estructurada, sin necesidad de utilizar tantas subrutinas anidadas.







Bien muchachos, esto es todo por hoy; estén pendiente en mi canal, o de mi blog o de mi pagina de Facebook.

Esto es todo por hoy, Sigue mi blog y visita mi próxima entrada!

Cualquier duda, trabajo, tutoria personalizada por correo electronico o pagina en facebook:



Salu2...

.

lunes, 26 de junio de 2017

XiuaElectronics:Curso Proteus 8.5 + MPASM y PIC16F628A

Curso Proteus 8.5 + MPASM y PIC16F628A #06: CCP1 como PWM, generando frecuencia+Led.


Que tal amigos?

En el día de hoy vamos a ver el sexto vídeo tutorial del curso con Proteus 8.5 y el compilador MPASM con el pic16f628a. Para esta clase veremos lo que concierne al modulo PWM del pic, y como configurarlo para trabajar a una determinada frecuencia.

Modo PWM pic16f628a:


En el modo de modulación de ancho de pulso (PWM), el pin CCP1 produce hasta una salida PWM de resolución de 10 bits. Dado que el pin CCP1 se multiplexa con el bloqueo de datos PORTB, se debe borrar el bit TRISB <3> para hacer que el pin CCP1 sea una salida.

NOTA: Al borrar el registro CCP1CON se forzará el bloqueo de salida PWM CCP1 al nivel bajo predeterminado. Este no es el pestillo de datos I / O de PORTB.

Una salida PWM (Figura 9-4) tiene una base de tiempo (período) y un tiempo que la salida permanece alta (ciclo de trabajo). La frecuencia del PWM es la inversa del período (frecuencia = 1 / período).

PWM Periodo:

El periodo PWM se especifica escribiendo en el registro PR2. El período PWM se puede calcular utilizando la siguiente fórmula:

PWM PERIOD= [(PR2)+1]*4*TOSC*TMR2PRESCALEVALUE

La frecuencia PWM se define como 1 / [PWM period].
Cuando TMR2 es igual a PR2, los siguientes tres eventos ocurren en el siguiente ciclo de incremento:
• TMR2 se borra
• El pin CCP1 está ajustado (excepción: si el PWM
Ciclo = 0%, el pin CCP1 no se ajustará)
• El ciclo de trabajo PWM está bloqueado desde CCPR1L en
CCPR1H

NOTA: El temporizador Timer2 (véase la Sección 8.0 "Módulo Timer2") no se utiliza en la determinación de la frecuencia PWM. El post-escalador se puede utilizar para tener una tasa de actualización de servo a una frecuencia diferente de la salida PWM.

PWM Duty Cycle:

El ciclo de trabajo PWM se especifica escribiendo en el registro CCPR1L y en los bits CCP1CON <5: 4="">. Se dispone de una resolución de hasta 10 bits: el CCPR1L contiene los ocho MSbs y el CCP1CON <5: 4=""> contiene los dos LSbs. Este valor de 10 bits está representado por CCPR1L: CCP1CON <5: 4="">. La siguiente ecuación se utiliza para calcular el ciclo de trabajo de PWM en el tiempo:

PWM DUTY CYCLE= (CCPRIL:CPPCON<5:4>)*Tosc*TMR2Prescale value

CCPR1L y CCP1CON <5: 4=""> se pueden escribir en cualquier momento, pero el valor de ciclo de trabajo no se bloquea en CCPR1H hasta que se produce una coincidencia entre PR2 y TMR2 (es decir, el período se completa). En modo PWM, CCPR1H es un registro de sólo lectura. El registro CCPR1H y un pestillo interno de 2 bits se usan para amortiguar doble el ciclo de trabajo PWM. Esta doble amortiguación es esencial para el funcionamiento sin fallas de PWM. Cuando el CCPR1H y el enlace de 2 bits coinciden TMR2 concatenados con un reloj Q de 2 bits interno o 2 bits del prescaler TMR2, el pin CCP1 se borra.


Hasta este punto hemos visto algo teorrico que nos servirá para entender mejor el modulo, luego de esto vamos a ver el siguiente vídeo donde se explicrá la clase de hoy:



Para complementar esta clase, les dejo el link del vídeo tutorial de como instalar Proteus 8.5 en todas las versiones de windows:

https://www.youtube.com/playlist?list=PLHsJoDYdMkxWV3KRvvzMXPHqoXpUgPtj2

Bien muchachos, esto es todo por hoy; esten pendiente en mi canal, o de mi blog o de mi pagina de facebook.

Facebook: https://www.facebook.com/electronicalibrexc/
Youtube:  http://www.youtube.com/c/breismanrueda
Google +: https://plus.google.com/u/0/+breismanrueda
Twitter: https://twitter.com/BreismamR

Esto es todo por hoy, Sigue mi blog y visita mi próxima entrada!

Cualquier duda, trabajo, tutoria personalizada por correo electronico o pagina en facebook:
Correo: ElectronicaLibreXC@outlook.com
Facebook: https://www.facebook.com/electronicalibrexc/



Salu2...



XiuaElectronics: Curso Proteus 8.5 + MPASM y PIC16F628A

Curso Proteus 8.5 + MPASM y PIC16F628A #05: TIMER1 como Temporizador.


Que tal amigos?

En el día de hoy veremos en 5 vídeo tutorial del curso de proteus 8.5 con el compilador MPASM y el pic16f628a. Para esta clase veremos como utilizar el timer1 del pic en modo de temporizador. 

TIMER1:

El módulo Timer1 es un temporizador / contador de 16 bits que
De dos registros de 8 bits (TMR1H y TMR1L) que son legibles y escribibles. El par de registros TMR1 (TMR1H: TMR1L) aumenta de 0000h a FFFFh y gira hasta 0000h. La Interrupción Timer1, si está activada, se genera en el desbordamiento del par de registros TMR1 que bloquea el bit de indicador de interrupción TMR1IF (PIR1 <0>). Esta interrupción se puede activar / desactivar ajustando / borrando el bit de activación de interrupción Timer1 TMR1IE
(PIE1 & lt; 0 & gt;).
El Timer1 puede funcionar en uno de los dos modos siguientes:
• Como temporizador
• Como contador
El modo de funcionamiento está determinado por la selección de reloj
Bit, TMR1CS (T1CON <1>).
En el modo Timer, el valor del par de registros TMR1 incrementa cada ciclo de instrucción. En modo Counter, se incrementa en cada flanco ascendente del reloj externo
entrada.
El temporizador1 se puede activar / desactivar ajustando / borrando el bit de control TMR1ON (T1CON <0>).
Timer1 también tiene una "entrada de reinicio" interna. Este Reset puede ser generado por el módulo CCP (Sección 9.0 "Módulo Captura / Comparar / PWM (CCP)").
El registro 7-1 muestra el registro de control Timer1.
Para los PIC16F627A / 628A / 648A, cuando el oscilador Timer1 está activado (T1OSCEN está ajustado), los pins RB7 / T1OSI / PGD y RB6 / T1OSO / T1CKI / PGC se convierten en entradas. Es decir, el valor TRISB <7: 6=""> se ignora.


Modo temporizador:

El modo de temporizador se selecciona borrando el bit TMR1CS (T1CON <1>). En este modo, el reloj de entrada del temporizador es FOSC / 4. El bit de control de sincronización T1SYNC
(T1CON <2>) no tiene ningún efecto ya que el reloj interno está siempre sincronizado.


Con esto ya podremos ver el siguiente vídeo tutorial donde veremos como implementar este modulo:



Para complementar esta clase, les dejo el link del vídeo tutorial de como instalar Proteus 8.5 en todas las versiones de windows:

https://www.youtube.com/playlist?list=PLHsJoDYdMkxWV3KRvvzMXPHqoXpUgPtj2

Bien muchachos, esto es todo por hoy; esten pendiente en mi canal, o de mi blog o de mi pagina de facebook.

Facebook: https://www.facebook.com/electronicalibrexc/
Youtube:  http://www.youtube.com/c/breismanrueda
Google +: https://plus.google.com/u/0/+breismanrueda
Twitter: https://twitter.com/BreismamR

Esto es todo por hoy, Sigue mi blog y visita mi próxima entrada!

Cualquier duda, trabajo, tutoria personalizada por correo electronico o pagina en facebook:
Correo: ElectronicaLibreXC@outlook.com
Facebook: https://www.facebook.com/electronicalibrexc/



Salu2...