Entradas

Mostrando las entradas de marzo, 2018

Temporizadores PIC® MCU de 8 bits

Imagen
Los temporizadores y contadores son una característica muy útil, y algunos pueden decir obligatoria, de la MCU PIC®. Como su nombre lo indica, los temporizadores indican cuándo ha transcurrido un tiempo. Los temporizadores también pueden contar usando los mismos registros internos. La diferencia entre un temporizador y un contador es la fuente del pulso que incrementa el registro de conteo. Si la fuente es una base de tiempo, como el reloj del oscilador que ejecuta el microcontrolador, entonces está basado en el tiempo y, por lo tanto, es un temporizador. Si en cambio la fuente es un pulso de un sensor o interruptor, entonces es un contador. Pero a través de la mayoría de la documentación, el temporizador / contador periférico normalmente se conoce como un temporizador periférico (aunque también puede contar). El conteo y el tiempo se convierten en la base de muchas otras funciones en la MCU PIC®. El control del brillo de los LED se puede completar con una señal de modulación de anc

Programación de bajo voltaje de dispositivos PIC® de 8 bits

Imagen
Hay dos modos para programar un microcontrolador PIC®, modo de alto voltaje (HV) y modo de bajo voltaje (LV). El modo de programación de bajo voltaje (LVP) permite que las MCU PIC Flash se programen usando el voltaje de operación VDD del dispositivo. Esto ofrece muchas ventajas a los diseños de Programación en serie en circuito (ICSP). Un nuevo dispositivo PIC tendrá la configuración establecida en modo LVP cuando se compre. Cualquiera de las herramientas de desarrollo de Microchip puede programar el dispositivo utilizando el método LVP. Muchas de las últimas placas de desarrollo, como Curiosity Board, usan el modo LVP para el programador de dispositivos incorporado. Configuración de configuración LVP Cuando el bit LVP de los registros de configuración se establece en 1, se habilita la entrada de programación de ICSP de baja tensión. Para desactivar el modo ICSP de baja tensión, el bit LVP debe programarse en 0. Diseño de registro de configuración de LVP típico LVP: bit

Instrucciones de tiempo en AVR de 8-bit

Imagen
La unidad de procesamiento central (CPU) del AVR es impulsada por el clkCPU del reloj de la CPU, generado directamente a partir de la fuente de reloj seleccionada para el chip. No se usa división de reloj interno. La arquitectura de Harvard y el concepto de archivo de registro de acceso rápido habilitan recuperaciones de instrucción en paralelo y ejecuciones de instrucción. Este es el concepto de canalización básico para obtener hasta 1 MIPS por MHz con los resultados únicos correspondientes para funciones por costo, funciones por reloj y funciones por unidad de potencia. Las capturas de instrucción paralela y las ejecuciones de instrucción En un solo ciclo de reloj, se ejecuta una operación de ALU que utiliza dos operandos de registro, y el resultado se almacena de nuevo en el registro destino. Operación ALU de ciclo individual Fuente: 8-Bit AVR Instruction Timing

El núcleo de los Microcontroladores AVR de 8 bits

Imagen
La función principal del núcleo de la Unidad central de proceso (CPU) de AVR es garantizar la ejecución correcta del programa. Por lo tanto, la CPU debe poder acceder a las memorias, realizar cálculos, controlar periféricos y manejar interrupciones. Diagrama de bloques de la arquitectura AVR Núcleo AVR Para maximizar el rendimiento y el paralelismo, el AVR utiliza una arquitectura Harvard, con memorias y buses separados para programas y datos. Las instrucciones en la memoria del programa se ejecutan con un solo canal de canalización. Mientras se está ejecutando una instrucción, la siguiente instrucción se realiza previamente desde la memoria del programa. Este concepto permite que las instrucciones se ejecuten en cada ciclo de reloj. La memoria del programa es la memoria flash reprogramable dentro del sistema. Registros El archivo de registro de acceso rápido contiene registros de trabajo de propósito general de 32 x 8 bits con un solo tiempo de acceso al ciclo de

Atmel® START

Imagen
Atmel® START es una plataforma de configuración de software basada en la web que le ayuda a comenzar a desarrollar aplicaciones para microcontroladores AVR® y SMART ARM ™. Con unos pocos clics del mouse, START le permite generar código fácilmente para configurar el reloj del sistema de la MCU, los pines de E / S, los periféricos y el middleware. Una vez generado, este código se puede descargar y ejecutar en uno de varios IDEs estándar de la industria. START también proporciona una serie de proyectos pre-escritos configurados para ejecutarse en placas de desarrollo de Microchip utilizando Atmel Studio IDE. Estos ejemplos de aplicación ilustran cómo se implementan diversas funciones en las MCU AVR y SAM.  Atmel START

Fundamentos del lenguaje de programación C Parte 6

Imagen
Tipos de datos Un tipo de datos define los requisitos de almacenamiento, los requisitos de manejo y el comportamiento de las variables y los parámetros de la función. Cuando crea variables, el compilador necesita saber cuánta memoria debe asignarse para el almacenamiento y cómo deben manejarse los datos en operaciones aritméticas y lógicas. Hay cuatro tipos de datos fundamentales. Dos de ellos manejan datos de tipo entero mientras que los otros dos manejan datos de punto flotante. El tamaño de estos tipos no está estandarizado, aunque los tamaños presentados aquí son muy comunes. El tipo de datos int es la más variable de un compilador a otro, ya que normalmente tiene el mismo tamaño que la ALU (unidad de lógica aritmética) / palabra de memoria de datos. Entonces, en un microcontrolador de 16 bits, un int sería de 16 bits, mientras que en un microcontrolador de 32 bits, un int sería de 32 bits. Esto es casi siempre cierto, pero con frecuencia se descompone en el mundo

Optimización de bucles

Imagen
Los bucles se usan regularmente en todo el código fuente. Las propias construcciones de bucle se consideran a menudo como extrañas al cuerpo del bucle que realiza la tarea principal a mano, pero todas las partes de un bucle pueden afectar la velocidad a la que se ejecuta. Hay varias cosas que puede ver para mejorar la velocidad de ejecución del bucle. Al considerar el tiempo de ejecución general de su programa, cualquier mejora de velocidad que pueda realizar en el código de bucle se multiplica por el número de iteraciones que realiza el bucle. Incluso pequeñas mejoras en un bucle pueden marcar una gran diferencia en general si el bucle se repite una gran cantidad de veces. La variable de índice de bucle se puede acceder muchas veces durante cada iteración del bucle. Considere el siguiente fragmento de código que contiene un código de bucle típico, donde N se define como un valor arbitrario. En este ejemplo anterior, el índice, i, tiene acceso tres veces por iteración, aunqu

Fundamentos del lenguaje de programación C Parte 5

Imagen
Variables Una variable es la combinación de un tipo de datos y un identificador (nombre) que representa una o más ubicaciones de memoria utilizadas para contener los datos de un programa. Mirando el sencillo programa C que vimos dos páginas atrás, podemos observar los tres temas de esta sección en acción. La línea 7 muestra un ejemplo de una declaración de variable (en realidad, dos declaraciones de variables). Una variable es simplemente un contenedor para almacenar datos, donde el contenedor ocupa uno o más bytes en la memoria del microcontrolador (típicamente RAM). Una variable debe declararse antes de poder usarse, como se muestra arriba. La declaración de una variable consta de dos partes: Un tipo de datos (o simplemente un tipo) que tiene dos propósitos: Le dice al compilador cómo manejar o manipular los datos almacenados en la variable. En el ejemplo anterior, la palabra float es uno de varios tipos de datos que discutiremos más adelante en esta sección. L

Guía de introducción de XC8

Imagen
MPLAB XC8 C es un compilador independiente, optimizado para ISO C90 (popularmente conocido como ANSI C). Es compatible con todos los microcontroladores PIC® de 8 bits: PIC10, PIC12, PIC16 y dispositivos de la serie PIC18, así como el dispositivo PIC14000. El compilador está disponible para varios sistemas operativos populares. El compilador está disponible en tres modos de funcionamiento: gratuito, estándar o PRO. El estándar y modos de operación PRO son modos con licencia y requieren un número de serie para habilitarlos. El modo gratuito está disponible para clientes sin licencia. El compilador básico, el funcionamiento, los dispositivos compatibles y la memoria disponible son idénticos en todos los modos. Los modos solo difieren en el nivel de optimización empleado por el compilador. Este articulo proporciona un punto de partida para los programadores que recién comienzan con el compilador MPLAB® XC8 C, especialmente aquellos que no están familiarizados con la programación o d

Fundamentos del lenguaje de programación C Parte 4

Imagen
Variables Una variable es la combinación de un tipo de datos y un identificador (nombre) que representa una o más ubicaciones de memoria utilizadas para contener los datos de un programa. Mirando este sencillo programa en C , podemos observar los tres temas de esta sección en acción. La línea 7 muestra un ejemplo de una declaración de variable (en realidad, dos declaraciones de variables). Una variable es simplemente un contenedor para almacenar datos, donde el contenedor ocupa uno o más bytes en la memoria del microcontrolador (típicamente RAM). Una variable debe declararse antes de poder usarse, como se muestra arriba. La declaración de una variable consta de dos partes: Un tipo de datos (o simplemente un tipo) que tiene dos propósitos: Le dice al compilador cómo manejar o manipular los datos almacenados en la variable. En el ejemplo anterior, la palabra float es uno de varios tipos de datos que discutiremos más adelante en esta sección. Le dice al vinculador cuánta

Fundamentos del lenguaje de programación C Parte 3

Imagen
Comentarios Los comentarios son líneas o bloques de texto utilizados para documentar la funcionalidad de un programa y explicar cómo funciona un programa en beneficio de un programador. Los comentarios son ignorados por el compilador, por lo que puede escribir todo lo que quiera en ellos. C admite dos estilos diferentes de comentarios: comentarios de bloque y comentarios de línea única. Bloquear comentarios Los comentarios de bloque comienzan con un / * y terminan con un * / y pueden abarcar varias líneas. Por ejemplo: Las líneas 1-4 comprenden un comentario largo que abarca cuatro líneas. Comienza con el / * al comienzo de la línea 1 y finaliza con el * / al final de la línea 4. El compilador ignora cualquier otro carácter entre esos dos delimitadores. La línea 7 muestra otro ejemplo donde se usa un comentario de bloque para una sola línea. Mientras que la línea 10 muestra una construcción similar para agregar un comentario al final de una línea de código

Fundamentos del lenguaje de programación C Parte 2

Imagen
Cuando escribe su aplicación en C, su código no es lo único que se programa en el microcontrolador PIC®. Antes de que su aplicación pueda realizar su primera acción, el código de inicio de C Runtime Environment debe configurar el dispositivo para que ejecute el código producido por un compilador de C. Propósito del entorno C Runtime Hay varias cosas que debe hacer el código de inicio del entorno de ejecución de C para poder ejecutar el código de la aplicación. Asigne espacio para una pila de software e inicialice el puntero de la pila En los dispositivos de 8 bits que tienen una pila de direcciones de retorno basadas en hardware, la pila de software se utiliza principalmente para el paso de parámetros hacia y desde las funciones. En dispositivos de 16 y 32 bits, la pila de software también almacena la dirección de retorno para cada llamada de función e interrupción. Asigne espacio para un montón (si se usa) Un montón es un bloque de RAM que se ha apartado como una e

Fundamentos del lenguaje de programación C Parte 1

Imagen
Este articulo proporciona una introducción al lenguaje de programación C (según lo especificado por el estándar ANSI C89) en el contexto de los sistemas integrados. Cubrimos el lenguaje C desde cero desde un punto de vista no específico del hardware para centrarnos en los diversos elementos del lenguaje C en sí. Si bien no es necesario, la experiencia previa con cualquier lenguaje de programación o experiencia con microcontroladores sería útil. Las habilidades aprendidas en este post son aplicables a cualquier compilador ANSI C. Detalles específicos de hardware y compilador como interrupciones, modelos de memoria y optimización NO son discutidos. C fue desarrollado en 1972 para escribir el sistema operativo Unix® C es más "bajo nivel" que otros lenguajes de alto nivel como Pascal o Basic C es compatible con compiladores para una amplia variedad de arquitecturas de MCU C puede hacer casi cualquier cosa que el lenguaje ensamblador pueda hacer C es generalmente más fáci