Entradas

Mostrando las entradas de abril, 2018

Descripción general del bus CAN

Imagen
Controller Area Network (CAN) es una tecnología de red en serie asíncrona de multi-caída y muy confiable que originalmente se diseñó para comunicaciones automotrices, pero también se ha convertido en un bus popular para la automatización industrial, así como en otras aplicaciones. El medio típico es un par trenzado de cables y la longitud máxima de la red depende de la velocidad de red elegida (las distancias más largas se pueden alcanzar a velocidades más bajas), por ejemplo: 40 m a 1 Mbps 500 m a 125 kbps Hay una variedad de posibilidades de configuración de nodos CAN, sin embargo, todos los nodos contienen un transceptor CAN, un controlador CAN y un controlador de aplicación (MCU) como se muestra: Microchip ofrece una variedad de transceptores CAN, controladores CAN y MCU con controladores CAN incorporados para permitir estas configuraciones comunes de nodos CAN. Aplicaciones CAN Las principales ventajas de CAN como bus en serie radican en la reducción de los costos

¿Que se necesita para desarrollar aplicaciones gráficas?

Imagen
Requisitos para ejecutar una aplicación de gráficos Una aplicación integrada habilitada para gráficos Microchip MLA requiere 4 funciones esenciales: MCU PIC® de 16 bits que ejecuta el programa de aplicación de usuario y el software de gráficos de la Biblioteca para Aplicaciones (MLA) de Microchip (los dispositivos PIC32 usan la Biblioteca de gráficos MPLAB Harmony). Bajo el control de la CPU, el software de gráficos representa la imagen de la pantalla para su salida. Memoria de búfer de cuadro: esta memoria de puerto dual recibe la imagen del procesador y la mantiene para mostrar. Controlador de gráficos: toma el contenido de la memoria intermedia del cuadro y lo envía a la pantalla de gráficos. La velocidad a la que funciona el controlador de gráficos depende de la resolución de la pantalla y la frecuencia de actualización requerida por la pantalla. Pantalla de gráficos: muestra la información recibida del controlador de gráficos. La imagen de arriba muestra cada un

Imprimir en la consola UART en MPLAB® X IDE Simulator

Imagen
Puede redirigir la secuencia "stdout" al usar el compilador MPLAB® XC8 C para que la salida printf () se muestre en la consola UART del simulador en MPLAB X IDE. Para hacer esto, necesita realizar los siguientes pasos: Implementar la función putch () Inicializa el UART Habilita la consola UART en el IDE La función putch () La función printf () formatea la cadena que se le pidió que imprimiera expandiendo marcadores de posición y modificadores. Luego llama a la función putch () para enviar cada carácter del texto formateado a stdout. Al personalizar la función putch (), puede definir el destino de stdout y printf () 'imprimir' a cualquier periférico en su dispositivo de destino. Para usar la función de consola UART en el IDE, debe asegurarse de que su función putch () envíe su argumento al registro de transmisión en el UART. El siguiente código funcionará con la mayoría de los dispositivos y puede copiar esto en su proyecto. Será llamado automáticamente por

Restablecimiento de encendido (POR)

Imagen
Cuando una MCU PIC® se enciende por primera vez, se ejecutará a través de algunas funciones de hardware definidas internamente para preparar la MCU para su correcto funcionamiento. Esto puede incluir la puesta en marcha del oscilador y la estabilización de potencia. El reinicio de encendido mantendrá el dispositivo en reinicio mientras se realizan estas operaciones. Impide que el dispositivo ejecute ningún software hasta que se cumpla un umbral de voltaje Vdd de nivel mínimo y el oscilador sea estable. POR también maneja algunas configuraciones internas para que el hardware funcione correctamente. Aunque el dispositivo se puede reiniciar por otros medios, como el pin MCLR, el circuito interno solo se reiniciará en este modo de arranque con un POR. El POR puede mantener el dispositivo en reinicio por más tiempo para entornos que se sabe que son ruidosos usando el temporizador de encendido. El umbral POR tiene dos parámetros que son clave para el inicio adecuado de un POR. Los dos p

Temporizador de encendido (PWRT)

Imagen
El Temporizador de encendido proporciona un retardo nominal de 72 milisegundos después de un reinicio de encendido (POR), reducción de poder (BOR) o después de que se inicia el reinicio del pin MCLR. El PWRT opera en un oscilador RC interno dedicado. El dispositivo se mantiene en reinicio siempre que el PWRT no haya excedido el tiempo de espera. El PWRT se usa para permitir que el voltaje Vdd de la MCU PIC® alcance un nivel aceptable antes de operar. El retraso de PWRT puede variar de dispositivo a dispositivo debido a Vdd, temperatura y variaciones de proceso. La sección de parámetros de DC de la hoja de datos del dispositivo especificará los detalles. Para la mayoría de las aplicaciones, recomendamos habilitar el PWRT, especialmente cuando el BOR está habilitado, ya que el nivel de voltaje de bajada de tensión puede estar justo por debajo del punto de disparo y el retardo PWRT adicional garantizará un retorno estable desde el reinicio. Configuración PWRT. El PWRT tiene un bit de

Herramientas de depuración y memoria del dispositivo

Imagen
Cuando se utiliza un emulador o depurador en el circuito para depurar el programa, algunos de los recursos del dispositivo, incluida la memoria, están reservados para las funciones de depuración. Esto se aplica a los microcontroladores Microchip PIC® (MCU) y dsPIC® Digital Signal Controller (DSC). Programa Flash Un Debug Executive debe programarse en la memoria ejecutable para realizar la depuración en el circuito. Algunos dispositivos usan una porción de Program Flash para el ejecutivo de depuración, perdiendo así parte de la memoria del programa durante la depuración. Otros dispositivos (y dispositivos especiales -ME2 / -ICE / -ICD en los encabezados) tienen memoria dedicada para el ejecutivo de depuración, por lo que no se pierde la memoria del código de la aplicación. RAM de datos El ejecutivo de depuración puede requerir memoria de datos para almacenar variables. Algunos dispositivos usan una parte de la RAM de datos para las variables de depuración, perdiendo así p

Protección de código selectivo

Imagen
Los dispositivos PIC de 8 bits tienen bits de configuración de protección de código que le permiten evitar el acceso no autorizado de la memoria del programa. Algunos de estos dispositivos permiten la protección selectiva del espacio de memoria del programa, y ​​con estos dispositivos, puede especificar qué bloques están protegidos. También hay diferentes tipos de protección, por ejemplo: protección contra escritura o protección contra lecturas de tablas de bloques externas. Este artículo analiza cómo puede hacer para que el compilador MPLAB® XC8 coloque un código especial en las áreas de memoria que ha protegido y para que el resto de su programa se coloque en la memoria desprotegida. Hay cuatro pasos principales a seguir. Coloque las funciones para protegerlas en su propia sección única Crear una clase de enlazador que represente el área de memoria protegida Enlace las secciones únicas en esta nueva clase de vinculador Reserve el área protegida para evitar que sea utiliz

Una implementación de switch / case en Ensamblador

Imagen
A menudo, al programar en ensamblador, nos encontramos con situaciones en las que nos gustaría implementar una construcción de programación desde un lenguaje de alto nivel, como la declaración de switch de C. C encuentra muchos usos en aplicaciones integradas, pero dicha construcción no existe en lenguaje ensamblador. Sin embargo, es bastante fácil recrear la funcionalidad usando las operaciones fundamentales del microcontrolador junto con una macro característica del ensamblador que se utiliza con poca frecuencia y algunos viejos trucos de álgebra booleana que muchos de nosotros hemos olvidado hace tiempo. El operador XOR Para crear la construcción del switch / case en ensamblador, necesitamos revisar algunas de las propiedades fundamentales del operador XOR. Todas las propiedades anteriores se usan en combinación entre sí para realizar un pequeño truco de lógica que se describirá paso a paso a continuación. Sin un conocimiento práctico de estas propiedades, el código no te

Encontrar la causa del restablecimiento

Imagen
Los dispositivos MCU PIC® de línea de base y rango medio de Microchip emplean una función especial que le permite establecer la causa de un reinicio del dispositivo una vez que se haya reiniciado. Esta característica utiliza dos bits en el registro STATUS, es decir, el bit PD, que se configura en el encendido y se borra cuando se invoca SLEEP; y el bit TO, que se borra si se produce un tiempo de espera de vigilancia y provoca un despertador del dispositivo. Dado que el contenido del registro STATUS se puede perder antes de que su código pueda acceder a él, el compilador C MPLAB® XC8 proporciona una función que puede copiar automáticamente el registro STATUS a una ubicación a la que se puede acceder desde el código C en otro momento. Este paso tiene lugar al comienzo del código de inicio del tiempo de ejecución, por lo que se ejecutará poco después de que se haya realizado el restablecimiento. Para acceder al contenido guardado del registro STATUS, su código C debe declarar y hacer

Encontrar los nombres de los registros del dispositivo

Imagen
El siguiente consejo confirma de manera confiable los nombres que debe usar para los registros de funciones especiales en el código C. Esto es útil ya que los identificadores de C utilizados para acceder a los registros pueden no ser siempre idénticos a los que se muestran en la hoja de datos. Cree un programa de prueba trivial (por ejemplo main.c) como el siguiente, que incluye <xc.h>. Compile esto en la línea de comando para su dispositivo de interés y con un comando como: xc8 --chip = 18f4520 --pre main.c si está usando MPLAB® XC8, o algo similar a: xc32-gcc -mprocessor = 32MX795F512L -E -o main.i main.c si está utilizando MPLAB XC16 o XC32. Estos comandos usan las opciones --PRE o -E para detener la compilación después de la etapa de preproceso, de modo que usted podrá examinar el archivo de salida preprocesado (main.pre o main.i, respectivamente para este ejemplo). Este archivo de salida contendrá las definiciones para todos los registros de función es

Archivos de registro de Hexmate

Imagen
Hexmate es una aplicación de utilidad que puede realizar una variedad de tareas en archivos HEX y se envía y ejecuta con el compilador MPLAB® XC8. MPLAB X IDE también lo usa para fusionar archivos HEX en su carpeta Loadables. Hexmate puede producir un archivo de registro que es especialmente útil si está utilizando alguna de las funciones de Hexmate, como sumas de verificación, rellenando la memoria no utilizada o insertando números de serie. Si usa el compilador XC8 en la línea de comandos o en el IDE, se genera un archivo de registro de manera predeterminada. El IDE dirigirá el archivo a la carpeta dist / default / debug | production con el nombre del proyecto name.hxl; el controlador XC8 crea un archivo en la carpeta de salida actual con el mismo nombre base que el primer archivo fuente especificado. Si está utilizando explícitamente Hexmate en la línea de comando después de compilar con cualquier compilador, use la opción -logfile hexmate para solicitar la generación de este ar

Mensajes de diagnóstico del compilador

Imagen
Se producen mensajes de advertencia y error del compilador para ayudarlo a depurar el código fuente. Debe intentar comprender lo que significan, cómo controlarlos y, lo más importante, nunca los ignore. Al construir proyectos, los compiladores continúan con el proceso de compilación durante el mayor tiempo posible, incluso si encuentran errores en el código fuente. Un compilador solo terminará si se encuentra un error fatal o si el número de errores informados se vuelve excesivo. Sin embargo, esto significa que un error a veces puede generar más errores o advertencias a medida que el compilador intenta procesar internamente la información incorrecta o incompleta. Si el compilador emite muchos mensajes de diagnóstico, siempre comience a trabajar a través de ellos desde el mensaje que se informa primero. En muchos casos, corregir un error solucionará muchos otros que siguen. Aunque puede ser más difícil de leer para un ser humano, los enunciados de origen en el lenguaje C se pueden ex

Macros SFR

Imagen
Si está escribiendo código que puede ser usado en varios dispositivos, acceder a los registros de funciones especiales puede ser problemático, ya que los nombres de los registros pueden cambiar de un dispositivo a otro, o el registro puede no estar disponible en todos los dispositivos. Los programadores suelen duplicar el código específico del dispositivo y compilarlo condicionalmente, según el dispositivo en particular que se utilice. El siguiente ejemplo intenta escribir en un puerto si hay uno disponible; de lo contrario, escribe directamente en el puerto correspondiente. Si está utilizando un compilador MPLAB XC reciente, puede compilar alternativamente un código similar basado en la presencia del símbolo de registro real en lugar de basarse en un dispositivo, como en: Compilar contra el registro permite que el código sea más versátil y se dirija a más dispositivos, y como está verificando el registro real al que está a punto de acceder, es más confiable. Tenga en cu

Programación de un dispositivo con IPE

Imagen
La función del programa MPLAB® IPE le permite conectarse al programador de hardware y realizar una operación del programa. Antes de programar un dispositivo; el IPE, el programador y el dispositivo de destino deben estar conectados. Asegúrese de que el IPE esté conectado correctamente al programador / depurador. La ventana de salida del IPE mostrará mensajes que indican si el IPE está conectado correctamente o no. La figura siguiente muestra un ejemplo del IPE conectado a un MPLAB® ICD 3, y el dispositivo de destino se detecta. Para programar el dispositivo, haga clic en el botón Programar, como se muestra a continuación. Si el dispositivo está programado con éxito, la ventana de salida mostrará el mensaje: Programación / Verificar completado, como se muestra a continuación: La combinación de teclas de acceso directo Alt-F5 se puede usar para programar un dispositivo en el IPE. Para obtener más información sobre otras teclas de acceso directo de comando, con

Requisitos de software IPE

Imagen
El IPE utiliza el marco IDE MPLAB® X, el depurador MDB y las interfaces de herramientas de hardware, junto con sus respectivos controladores para proporcionar capacidades de programación. El siguiente software debe estar instalado en su PC para usar la aplicación IPE: MPLAB® X IDE v1.85 o superior. La aplicación MPLAB® X IPE (instalada automáticamente con MPLAB® X IDE). El IPE se instala como parte del paquete MPLAB® X IDE. Una vez que haya instalado MPLAB® X, se puede acceder a la aplicación IPE a través del icono MPLAB® X IPE en su escritorio o menú de inicio. Para las instalaciones de Microsoft Windows, el IPE debe ejecutarse como administrador para que todas las características sean completamente funcionales. Para ejecutar como administrador en Windows 7, vaya a: Start>All Programs>Accessories>Command Prompt, right click and select “Run as Administrator.” Marco IDE El IDE proporciona soporte para generar y ejecutar pruebas unitarias basadas en su propio marco de p

¿Qué es IPE?

Imagen
El entorno de programación integrado (IPE) es una aplicación de software independiente que proporciona una interfaz simple para acceder rápidamente a las funciones clave del programador. La aplicación IPE viene con características de programación avanzadas y proporciona un entorno de programación segura para la programación de producción. El IPE es una aplicación multiplataforma que significa que puede ejecutarse independientemente del IDE. El IPE está dedicado a la tarea de programar dispositivos Microchip PIC. Ofrece más funciones de programación que el IDE, especialmente para programación de producción. Como solo se trata de programación, es una aplicación pequeña, sensible y rápida. El IPE funciona con los programadores / depuradores de Microchip PICkit ™ 3, ICD3 y REAL ICE. El IPE está incluido en el paquete MPLAB® X IDE, por lo que una vez que instale MPLAB® X IDE, la aplicación IPE se instalará junto con él. En siguientes artículos, primero veremos los requisitos de i

Recomendaciones de diseño del microcontrolador PIC® de 8 bits

Imagen
Al desarrollar un producto con un microcontrolador PIC® de 8 bits, hay algunas recomendaciones de diseño básicas a tener en cuenta para cualquier aplicación. Los más comunes se enumeran en este breve resumen. Siempre consulte la hoja de datos del dispositivo para obtener datos técnicos específicos. Requisitos básicos de conexión Comenzar con los microcontroladores PIC de 8 bits requiere atención a un conjunto mínimo de conexiones de pin del dispositivo antes de continuar con el desarrollo. Los siguientes pines son generalmente los primeros en enfocarse en su diseño. Cada uno de estos se explicará con más detalle en este tutorial. Todos los pines de tensión de funcionamiento VDD y VSS conectados correctamente a la alimentación. Pin Master Clear (MCLR) conectado interna o externamente a la tensión de alimentación VDD a través de una disposición de pull-up. Los pines del oscilador OSCI y OSCO se conectan correctamente cuando se utiliza una fuente externa de oscilador. Los p

Control de una salida digital con el PIC18F4550

Imagen
Como ejemplo de este primer proyecto, se controlara una salida digital con el microcontrolador PIC 18F4550 como iniciación en la creación de proyectos simples con MPLAB X IDE en lenguaje C. Usaremos las siguientes herramientas de desarrollo: MPLAB X IDE XC8 Pickit2 PASO1 Abrir MPLAB X IDE PASO2 Crear un nuevo proyecto con : Seleccionar File -> New ProjectSeleccionar Microchip Embedded -> Standalone Project PASO3 Seleccionar la familia y el dispositivo PASO4 Seleccionar la herramienta de programación necesaria PASO5 Seleccionar el compilador, en este caso XC8 PASO6 Nombrar el proyecto y seleccionar la ruta de guardado PASO7 Ahora nuestro proyecto se muestra en la ventana, el siguiente paso es configurar algunos registros o bits como el WDT, MCLRE, etc... MPLAB X IDE tiene una manera sencilla de lograr esto. Debemos ir a la siguiente ruta Window -> PIC Memory Views -> Select Configuration Bit