Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

06/06/2012 #1

Avatar de mnicolau

Interfaz de control para PICs USB-BULK (LabVIEW - C#)
En esta ocasión vamos a realizar una interfaz de control y adquisición de datos mediante puerto USB (modo "BULK Transfer") utilizando un PIC 18F2550 (puede usarse cualquier otro con función USB). A través de esta interfaz pueden realizar instrumentación virtual que les permita llevar a cabo el control de procesos externos mediante una PC, registro de datos, etc.

No voy a explicar en detalle cómo funciona la comunicación USB en modo BULK ya que hay mucho información en la web sobre el tema. Este modo se utiliza para la transmisión masiva de información, sin pérdida de datos y sin la necesidad de emular un puerto serie, como hace el modo CDC.

La idea es que puedan tener como ejemplo las distintas posibilidades de entradas y salidas (analógicas y digitales), para luego utilizar tantas como deseen en cada caso en particular. El proyecto que les voy a mostrar a modo de ejemplo presenta:
  • 2 Entradas digitales.
  • 1 Entrada analógica (10 bits).
  • 2 Salidas digitales
  • 1 Salida analógica (PWM + DAC R-C)

El esquema del mismo está incluido en el archivo adjunto y fue realizado en Proteus. Para utilizar mayor cantidad de I/O, sólo es necesario adaptar el firmware siguiendo el ejemplo dado y luego el software de acuerdo a las operaciones a realizar deseadas.

En el adjunto pueden encontrar lo siguiente:
  • Esquema básico del proyecto presentado
  • Driver
  • Firmware
  • Software LabVIEW
  • Software Visual Studio 2010 (C#)

El firmware está escrito en lenguaje C, mediante PICC (CCS) y para el software de control voy a dar 2 ejemplos, uno escrito en C# (Visual Studio 2010) y otro en LabVIEW. Ambos utilizan la dll “mpusbapi” para el control de las funciones del puerto (para LabVIEW se creó un Subvi específico para tal fin) y llevan a cabo las mismas tareas de leer las entradas (digital y analógica); y activar las salidas digitales, además de asignarle un valor al PWM de la salida analógica. Por otro lado, es requerido un driver para que el sistema operativo reconozca la interfaz, el cual también es provisto.

Vista del software de LabVIEW:



Vista del software de Visual Studio:



BulkUSB_MN (SubVI LabVIEW):



Interfaz ejemplo mostrada en este proyecto:



Les debo para la próxima el video del funcionamiento (no tengo la cam), todo lo posteado está probado y funcionando correctamente. Espero realicen sus propios proyectos de instrumentación virtual y comenten los resultados.

Saludos!
06/06/2012 #2

Avatar de Rigeliano

Excelente aporte.
Sino es mucha molestia podrías guardar el archivo de labview en versiones anteriores a la 2011.
07/06/2012 #3

Avatar de mnicolau

Rigeliano dijo: Ver Mensaje
Excelente aporte.
Sino es mucha molestia podrías guardar el archivo de labview en versiones anteriores a la 2011.
Hola, no hay molestia... en qué versión lo necesitás?
07/06/2012 #4

Avatar de Rigeliano

En la 2010 o anteriores, gracias.
08/06/2012 #5

Avatar de mnicolau

Rigeliano dijo: Ver Mensaje
En la 2010 o anteriores, gracias.
Acá te lo adjunto para LabVIEW 2010.

Saludos
Archivos Adjuntos
Tipo de Archivo: rar Control USB-BULK MN (LabVIEW 2010).rar (333,7 KB (Kilobytes), 1717 visitas)
10/06/2012 #6

Avatar de Rigeliano

Excelente gracias, ahora solo estoy esperando a que subas el vídeo
13/06/2012 #7

Avatar de cristian76

hola mnicolau gracias por el aporte , quise simularlo pero me dio un problema estoy probando en el visual c sharp express 2010 y me sale un mensaje de error hay un problema con el usbapi , si fueras tan amable de revisarlo pero aun haci se agradece la dedicacion que le das a tus proyectos.
13/06/2012 #8

Avatar de mnicolau

Hola Cristian, cuando abras el proyecto (el de Visual Studio), no trates de ejecutarlo y simularlo ahí mismo (a mi también me tira el error de esa manera), sino directamente compilalo ("generar solución", con F6 en Visual Studio). Luego vas a la carpeta bin/release, ahí está el .exe compilado que funciona correctamente.

Saludos
17/06/2012 #9

Avatar de mnicolau

Desconozco todas las capacidades de Pinguino, pero creería que para un proyecto como el que proponés necesitás mayor control sobre el código. Yo programaría el 18F2550 directo con PICC (incluso podrías llegar a necesitar algunas líneas en ASM) y luego el software en el lenguaje qué desees (podría ser VB.NET, adaptando el que publiqué en C#).

Cuando vayas adelantando algo, lo subís así te damos una mano entre todos (yo no manejo VB.NET).

Saludos
17/06/2012 #10

Avatar de cristian76

gracias por la respuesta mnicolau , estos dias obtengo los componentes y me armo la placa para probar el software , gracias .
21/06/2012 #11

Avatar de dinoelectro

gracias mnicolau por este excelente aporte!!! gracias a ti he podido realizar mi sueño de construir una tarjeta DAQ con el PIC18F2550... el driver me fue de mucha utilidad y el firmware me sirvio de inspiracion para programar mi propio sistema..

te invito a que le des una revizada en el siguiente link

http://www.forosdeelectronica.com/sh...909#post672909

saludos cordiales
23/06/2012 #12

Avatar de mnicolau

Me alegro te haya sido útil dino! gracias por comentar

Saludos
23/06/2012 #13

Avatar de dinoelectro

tengo otra consulta, de pronto tu sabes como podria utilizar este sistema con visual basic 2010... ya que no tengo muchos conocimientos de C#... aunque en realidad tambien sale un error en el programa que subiste y no he podido solucionarlo..

gracias otra ves mariano que estes bien..
21/07/2012 #14


MNICOLAU muchisimas gracias, estoy probando. (Me recomendaste tu link desde mi tema, comun pic-usb).
Te aviso como me va
21/07/2012 #15


Perdón, pero se puede simular todo sin la necesidad de montarlo en la protoboard??? Ayuda please!!
22/07/2012 #16

Avatar de dinoelectro

yo lo simule con ISS 7.8 SP2, en sistemas operativos de 64 bits tendras que utilizar ISIS 7.9
23/07/2012 #17


Perdona, yo tengo windows 7 64 bit, dices que necesito Proteus 7.9 en adelante??
Yo tengo 7.6 quizás por eso, cuando simulo el diseño en proteus no pasa absolutamente nada. El pc no me pide buscar el driver ni nada
24/07/2012 #18

Avatar de dinoelectro

asi es felipe, la simulacion USB para 64 bits esta disponible desde proteus 7.9... puedes descargarte la version demo en la pagina de labcenter y ver los ejemplos que trae el software, luego cargas el .hex en uno de esos ejemplos y veras que funciona bien
25/07/2012 #19


en la misma pagina de labcenter sale que el driver usb del proteus para 64bit son incompatible
alguna solucion, ??
aparte de maquina virtual?¡¡
25/07/2012 #20

Avatar de dinoelectro

ya existe el driver para win7 de 64 bits descarga la version 7.9
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.