REFERENCIA DISEÑO 5508
Crear un maestro 1-Wire con Xilinx PicoBlaze
Por:
Stewart Merkel, Miembro del Personal Técnico Principal
31 de octubre 2012
Resumen: Los diseñadores que tiene interfaz 1-Wire ® sensores de temperatura con matrices de Xilinx compuertas programables en campo (FPGAs) puede utilizar este diseño de referencia para conducir un DS28EA00 1-Wire dispositivo esclavo. El software descargable mencionado en este documento también se puede utilizar como punto de partida para conectar otros dispositivos 1-Wire esclavos. El sistema implementa un maestro 1-Wire conectada a una temperatura UART y salidas a un PC desde el sensor de temperatura DS28EA00. Además, altas / bajas salidas de alarma se muestran en los pins DS28EA00 PIO mediante LEDs.
Introducción
Este diseño de referencia (DR) describe un 1-Wire ® Master con PicoBlaze ™ 8-bit diseño integrado microcontrolador implementado y probado en el Xilinx Spartan ® ® -6 LX9 Microboard por Avnet. Este ejemplo utiliza el diseño DS28EA00 1-Wire termómetro digital con detección de secuencia y PIO en un módulo periférico. Este módulo utiliza el puerto estándar PMod ™ desarrollado por Digilent Inc.
Diseño del Sistema Diagrama de bloques
El sistema mostrado en la Figura 1 se muestra la implementación de alto nivel del diseño. El sistema requiere:
- PicoBlaze procesador
- 2 Brams (cada 1024 x 18-bit)
- RS-232 (USB UART)
- LED para alarmas
- 681Ω ± 1% de la resistencia de pullup
- Maxim Integrated DS28EA00 periférica módulo (DS28EA00PMB1 #)
- Xilinx plataforma de cable USB
Figura 1. El diseño del sistema de diagrama de bloques.
Requisitos de diseño de referencia
Software
Los requisitos del RD de software son:
- Windows XP ® o Windows ® OS 7
- Un programa de terminal como Tera Term o HyperTerminal ®
Hardware
La configuración de hardware de RD es la siguiente:
- DS28EA00 módulo periférico (DS28EA00PMB1 #)
- USB-A a USB-B cable micro
- Xilinx plataforma de cable USB
- Siga las instrucciones de la " Guía de instalación de Silicon Labs CP210x USB a UART "para completar la instalación del controlador USB para el Microboard S6LX9. Haga clic aquí para conocer la ubicación del controlador.
- Conecte el USB-A. USB a micro-B cable al equipo host y J3 conector de la Microboard S6LX9
- Windows 7 le asignará automáticamente un VCP a la junta. El Administrador de dispositivos muestra los puertos COM está asignado. También permite al usuario seleccionar un puerto COM. Por ejemplo, en este sistema, el puerto predeterminado COM virtual es COM17. Busque en los puertos (COM & LPT) lista para el Silicon Labs CP210x USB to UART Bridge artículo. Tenga en cuenta el puerto COM asignado por el sistema.
- Conecte el cable USB con un conector JTAG vaina y la cinta entre el conector JTAG en el tablero y un puerto USB del PC.
- Conecte el cable USB a la PC y el puerto J3 en la placa S6LX9. LED D7 se iluminará.
- Enchufe el módulo DS28EA00 periférico con el lado de los componentes hacia el Spartan-6 en J5, la fila en la pata 1 está marcada por el punto blanco.
- Siga las instrucciones de instalación que se describen en la sección " Instalación del controlador de UART y puerto COM virtual "sección.
- Configure el Microboard S6LX9 como se describe en " Configuración de la Microboard S6LX9 "sección.
- Iniciar una sesión o Tera Term HyperTerminal. Ajuste los seriales parámetros del puerto a su VCP, 9600 baudios, sinparidad, 8 bits, 1 bit de parada y sin control de flujo .
- Uso del cable de plataforma de Xilinx y el software de Xilinx iMPACT llamado herramienta de carga, cargue la "onewire.bit" archivo en el Spartan-6.
- Si el módulo DS28EA00 periférico está enchufado correctamente, verá lo siguiente:
- Puede ejecutar la demostración, escriba "1" en el indicador de comandos. Esto mostrará la temperatura en hexadecimal complemento a 2, seguido continuamente por la temperatura en decimal. Además, los dos LEDs en el módulo periférico DS28EA00 se iluminará para representar las alarmas de alta y baja, similar a un termostato de calefacción y refrigeración de control. La alarma de alta un umbral predeterminado se establece para encender a ≥ 29 ° C y la B baja alarma de umbral predeterminado se establece para encender a <27 ° C. Para salir en cualquier momento, pulse el botón Esc clave.
- Puede cambiar los LEDs DS28EA00 periféricos de alarma del módulo mediante la introducción de un umbral de complemento a 2. A modo de ejemplo, si introduce 1Ch (28d) en el umbral de alarma de alta, el LED A se encenderá a ≥ 28 ° C. Si ingresa 1Ah (26d) en el umbral de alarma de baja, el LED B se encenderá a <26 ° C. Estas nuevas alarmas se activan escribiendo "1" en el indicador de comandos.
- El ensamblador PicoBlaze producirá los archivos necesarios para la implementación de su diseño. Los nuevos archivos se sobrescribirán los archivos más antiguos, por lo que una copia de seguridad de los archivos originales antes de volver a compilar. Abra el Explorador de Windows , vaya a la "fuente \ psm" y haga doble clic en el archivo de programa denominado "kcpsm6.exe". Es posible que reciba una advertencia de seguridad que indica "El editor no pudo ser verificada. ¿Seguro de que desea ejecutar este software?" Haga clic en ejecutar y obtendrá la siguiente ventana KCPSM6 ensamblador:
- Escriba el OWP.psm nombre de archivo y pulse la tecla de retorno para compilar.
- El ensamblador PicoBlaze comenzarán a publicarse. Si no hay ningún error en el código PicoBlaze, verá una pantalla como la de abajo. Si hay errores, se le avisará con el número de línea donde el problema está en el archivo de código (por ejemplo, en el archivo OWP.psm) y le pide que corrija el error antes de volver a ejecutar el ensamblador.
- Inicie el Xilinx ISE Project Navigator y abra el archivo en "ise \ OneWire \ OneWire.xise" como se muestra a continuación.
- Seleccione el archivo de nivel superior en la jerarquía de diseño (es decir, OneWire - PicoBlaze ) en el panel Jerarquía y haga doble clic en el archivo de programación Generar .
- Confirme el hardware conjunto de conexiones como se define en la " Configuración de la Microboard S6LX9 "sección. Iniciar una sesión o Tera Term HyperTerminal con los parámetros del puerto serie ajustados a su virtual COM port, 9600 baudios,sin paridad, 8 bits, 1 bit de parada y sin control de flujo .
- En la interfaz de usuario ISE gráfica (GUI), seleccione Configuración de dispositivo de destino para descargar el diseño de FPGA en el microcircuito S6LX9. La aplicación PicoBlaze inmediatamente comenzará a funcionar en la terminación de descarga.
Estructura de archivos
Tabla 1. Diseño de referencia Estructura de directorios | ||
Directorio | Archivo suministrada | Descripción |
S6LX9_PicoBlaze_1Wire_ise_14_2 \ | Todos | Contiene los archivos de todo el proyecto |
fuente \ ise \ | OneWire.xise | ISE archivo de proyecto |
fuente \ hdl \ | OneWire.vhd | De nivel superior VHDL fuente |
kcpsm6.vhd | Fuente microcontrolador PicoBlaze | |
fuente \ hdl \ KCPSM3_UART \ | UART_Manual.pdf | PicoBlaze UART manual de |
UART_real_time_clock.pdf | PicoBlaze UART en tiempo real manual del reloj | |
fuente \ hdl \ KCPSM3_UART \ VHDL \ | bbfifo_16x8.vhd | PicoBlaze UART FIFO macro |
kcuart_rx.vhd | PicoBlaze UART recepción macro | |
kcuart_tx.vhd | PicoBlaze UART transmitir macro | |
uart_rx.vhd PicoBlaze | UART recibir envoltura | |
uart_tx.vhd | PicoBlaze UART transmitir envoltura | |
fuente \ psm | kcpsm6.exe | Ejecutable de Windows para compilar la aplicación PicoBlaze |
OWP.psm | ||
OWP.log | PicoBlaze 1-Wire registro de la salida del compilador | |
OWP.vhd | Aplicación compilada PicoBlaze formateado para inicializar el Spartan-6 Block RAM | |
ROM.form.vhd | BRAM plantilla instanciación utilizado por el ensamblador PicoBlaze | |
KCPSM6_User_Guide_31March11.pdf | Guía del usuario PicoBlaze | |
fuente \ ucf | OneWire.ucf | Las restricciones de usuario del archivo que define las limitaciones de tiempo y el pasador de ubicación para el proyecto |
ready_for_download | onewire.bit | Proyecto bitstream |
hardware | DS28EA00PMB1_sch.pdf | DS28EA00 esquemática módulo periférico y tabla de diseño |
DS28EA00PMB1_BOM.xls | Lista de materiales para el módulo periférico DS28EA00 | |
DS28EA00PMB1_gerber.zip | Gerber para fabricar el módulo periférico DS28EA00 |
Instalación del controlador de UART y puerto COM virtual
Configuración de la Microboard S6LX9
Figura 2. El Microboard S6LX9.
La Demo 1-Wire
Compilar el diseño
Tabla 2. Clave 1-Wire Subrutinas | ||
Acelerar | Subrutina | Descripción |
Estándar | ow_reset_slow | Restablece los dispositivos 1-Wire esclavos y los prepara para un comando. |
Estándar | write_byte_slow | Envía 8 bits de comunicación a los dispositivos esclavos 1-Wire. |
Estándar | write_byte_slow_power | Envía 8 bits de comunicación a los dispositivos esclavos 1-Wire y luego suministra pullup fuerte. El pullup fuerte se borrarán cuando el próximo 1-Wire subrutina se emite. |
Estándar | read_byte_slow | Recibe 8 bits de comunicación de los dispositivos esclavos 1-Wire. |
Estándar | read_byte_slow_power | Recibe 8 bits de comunicación de dispositivos esclavos 1-Wire y luego suministra pullup fuerte. El pullup fuerte se borrarán cuando el próximo 1-Wire subrutina se emite. |
Overdrive | ow_reset_fast | Restablece los dispositivos 1-Wire bus esclavos y los prepara para un comando. |
Overdrive | write_byte_fast | Envía 8 bits de comunicación a los dispositivos esclavos 1-Wire. |
Overdrive | write_byte_fast_power | Envía 8 bits de comunicación a los dispositivos esclavos 1-Wire y luego suministra pullup fuerte. El pullup fuerte se borrarán cuando el próximo 1-Wire subrutina se emite. |
Overdrive | read_byte_fast | Recibe 8 bits de comunicación de los dispositivos esclavos 1-Wire. |
Overdrive | read_byte_fast_power | Recibe 8 bits de comunicación de los dispositivos esclavos 1-Wire y luego suministra pullup fuerte. El pullup fuerte se borrarán cuando el próximo 1-Wire subrutina se emite. |
Volver a compilar Procedimiento
Resumen
1-Wire es una marca registrada de Maxim Integrated Products, Inc. HyperTerminal es una marca registrada de Hilgraeve, Incorporated. ISE es una marca registrada de Xilinx, Inc. PicoBlaze es una marca comercial de Xilinx, Inc. PMod es una marca comercial de Digilent Inc . Spartan es una marca registrada de Xilinx, Inc. Windows es una marca registrada y marca de servicio registrada de Microsoft Corporation. Windows XP es una marca registrada y marca de servicio registrada de Microsoft Corporation. Xilinx es una marca registrada y marca de servicio registrada de Xilinx, Inc.
Piezas relacionadas | ||
DS1821 | Termostato programable digital y termómetro | Muestras gratuitas |
DS1825 | Resolución programable 1-Wire Termómetro Digital Con ID 4-Bit | Muestras gratuitas |
DS18B20 | Resolución programable 1-Wire Termómetro Digital | Muestras gratuitas |
DS18B20-PAR | 1-Wire Parasite-Power Termómetro Digital | |
DS18S20 | 1-Wire Parasite-Power Termómetro Digital | Muestras gratuitas |
DS18S20-PAR | Parasite-Power Termómetro Digital | |
DS1920 | Temperatura i Botón ® | |
DS1990A | Número de serie i Botón | Muestras gratuitas |
DS1990R | Número de serie i Botón | Muestras gratuitas |
DS2401 | Número de serie del silicio | Muestras gratuitas |
DS2406 | Interruptor Dual Plus Memoria direccionable 1Kb | Muestras gratuitas |
DS2408 | 1-Wire 8-Channel Conmutador Direccionable | Muestras gratuitas |
DS2411 | Silicon Serial Number con V CC de entrada | Muestras gratuitas |
DS2413 | 1-Wire conmutador de canal de Direccionable Dual | Muestras gratuitas |
DS2431 | 1024-Bit 1-Wire EEPROM | Muestras gratuitas |
DS28EA00 | 1-Wire Termómetro digital con la secuencia de detección y PIO | Muestras gratuitas |
MAX31826 | 1-Wire sensor de temperatura digital con 1Kb cerradura EEPROM | Muestras gratuitas |
No hay comentarios:
Publicar un comentario