# Implementación de comunicación USB con un PIC16C765



## Altair (Oct 30, 2005)

Hola a todos
He estado leyendo sus mensajes y son muy interesantes, se ve que todos tienen muchos conocimientos y sobre todo que les apasiona la electrónica y que investigan por su parte y en su tiempo libre. Los felicito de verdad.
Yo estoy trabajando en mi tesis con un PIC16C765, lo acabo de programar para hacer pruebas de comunicación via USB con mi pc y no funciona. Usé el software de prueba que está en la página de microchip pero al parecer algo estoy haciendo mal. Les adjunto la liga:
http://ww1.microchip.com/downloads/en/DeviceDoc/usb125asm.zip

Si alguno de ustedes ha usado este microcontrolador antes por favor hecheme una mano para hacerlo funcionar. Mañana voy a probar la versión 2.0 que acaban de subir a la página en la liga:
http://ww1.microchip.com/downloads/en/DeviceDoc/usb200as.zip
Les aviso si funciona.

Gracias


----------



## maunix (Nov 2, 2005)

No, yo no he usado USB aún, aunque está en mis planes hacerlo en breve.
De todas formas, te queria consultar, estas usando un PIC OTP ?

No has considerado una opcion flash?


----------



## Marcelo (Nov 2, 2005)

Solo como un aporte adicional pues a veces podría ser algo difícil implementar el stack del protocolo USB. 

Existe un módulo que permiten agregar fácilmente USB a los proyectos con microcontroladores. Su modelo es el FT245BM (http://www.myplace.nu/mp3/files/ds245b10.pdf)

Lo que hace este módulo es establecer una comunicación bidireccional Paralela - USB y es muy fácil de usar y programar, además de que sus drivers están más que probados.

La salida/entrada del PIC se haría como si se tratase de la conexión hacia un puerto paralelo de un PC y de allí, se interconectaría con el módulo.

Desde el firmware, todo lo que hay que hacer es leer y escribir el módulo y monitorear sus banderas de status para saber si el dispositivo está listo o si el buffer está vacío.

Ojo, este módulo es para conectar dispositivos USB a los desarrollos y no al revés. Para eso hay otras soluciones en la página del proveedor.

Saludos,
Marcelo


----------



## carlosj (Nov 3, 2005)

hola colegas, soy nuevo en el foro, y en realidad estoy investigando la utilizacion de algun micro para realizar mi tesis a traves del usb.
e encontrado unas notas de aplicación en www.atmel.com, donde se puede observar como se realiza un firmware utilizando los AVR de atmel como lo son el ATMEGA8 y el AT90S2313, pueden obtener la dll y los ejemplos el delphi, visual, etc, yo todavia no lo e probado debido a que esta otra semana voy a santiago donde comprare los componentes para poder realizar las pruebas, ademas de trabajar con el 16C745 que comenzare la sema subsiguiente a realizar las pruebas...
se ve bien bueno lo que dice atmel, lo unico es que el codigo en asm esta un poco complicado pero bueno, a aperrar no mas...


carlosj


----------



## maunix (Nov 8, 2005)

carlosj dijo:
			
		

> hola colegas, soy nuevo en el foro, y en realidad estoy investigando la utilizacion de algun micro para realizar mi tesis a traves del usb.
> e encontrado unas notas de aplicación en www.atmel.com, donde se puede observar como se realiza un firmware utilizando los AVR de atmel como lo son el ATMEGA8 y el AT90S2313, pueden obtener la dll y los ejemplos el delphi, visual, etc, yo todavia no lo e probado debido a que esta otra semana voy a santiago donde comprare los componentes para poder realizar las pruebas, ademas de trabajar con el 16C745 que comenzare la sema subsiguiente a realizar las pruebas...
> se ve bien bueno lo que dice atmel, lo unico es que el codigo en asm esta un poco complicado pero bueno, a aperrar no mas...
> 
> ...



Si eres nuevo en los microcontroladores y tus aplicaciones serán pequeñas y de control básico, te aconsejo que utilices los Pics de Microchip.  Son los mejores microcontroladores de 8 bits el mercado y a un costo realmente competitivo.

Has leído del PIC18F4455 ? Yo no lo he utilizado pero tiene muy buenos comentarios y hay código en la pagina para utilizarlo, si no me equivoco incluso en C.


----------



## carlosj (Nov 14, 2005)

en realidad ya e trabajado con alguno de los micros de microchip como los son el 16f84, pero como tu dices que utilizaste el 16c745 y no pudiste tener alguna prueba convincente...bueno tengo un amigo que es maestro en esto, asi que donde mi tio no mas...si encuentro algo te aviso...

pero si tienes alguna novedad con el 16c745 avisame porfa para que pueda avanzar y compartir experiencias, no se en cual codigo programas tu los pic, pero yo los programo en assembler...

no vemos colega.


----------



## Altair (Dic 1, 2005)

Hola Colegas.

Pues creo que ya pasé a una segunda etapa.... la autocompasión.. jajaja no, no es cierto. Resulta que el microcontrolador PIC16C765 que estaba usando era OTP, lo descubrí como 5 minutos después de publicar mi mensaje en el foro, entonces compré unos que son borrables por UV, los /JW. Implementé con éxito el firmware de prueba que viene en la página de Microchip: http://ww1.microchip.com/downloads/en/DeviceDoc/usb200as.zip

Sin embargo, mi aplicación será controlada desde LabView por NI-VISA y ayer descubrí que los dispositivos que reconoce NI-VISA de forma casi automática son los que cumplen con la especificación de USB Test & Measurement Class (USBTMC), que por cierto, se incluyó hasta la revisión 2.0 de USB.... en otras palabras, solo puedo usar PICS de la familia 18F2245 ó 18F4455, que cumplen con la norma 2.0.

Ahora mismo voy a hacer pruebas con un PIC18F4455, trataré de implementar el mismo firmware que menciono arriba y modificarlo para que sea un USBTMC device.
Si alguien tiene un firmware que sea compatible con los USBTMC agradecería que me dejara verlo para acondicionarlo a mi aplicación.

Suerte a todos con sus proyectos.


----------



## atorne (Ene 5, 2006)

Marcelo dijo:
			
		

> Solo como un aporte adicional pues a veces podría ser algo difícil implementar el stack del protocolo USB.
> 
> Existe un módulo que permiten agregar fácilmente USB a los proyectos con microcontroladores. Su modelo es el FT245BM (http://www.myplace.nu/mp3/files/ds245b10.pdf)
> 
> ...



Yo utilizo también bridges USB<->RS232 de ftdi y creo que son una opción a considerar cuando se tiene poca idea del protocolo USB


----------



## 426ivan (Ene 24, 2006)

Hola, soy de Catamarca (argentina) y no se consiguen todos los PICs que yo quisiera. Tengo varios 16F84 y 16F877, quiero implementar una interface con USB para poder conectarme a la PC con cualquiera de estos micros que no tienen puertos USB. Alguien tiene algo de código y esquemas para estos micros?

Muchas gracias!!
Saludos, Iván.-

PD: existe algun PIC con usb versión flash?


----------



## maunix (Ene 26, 2006)

426ivan dijo:
			
		

> PD: existe algun PIC con usb versión flash?



Claro,  aunque son de los PIC18xxx

18F2455
18F2550
18F4455
18F4550


----------



## LoCo_O (Feb 6, 2006)

HOLA ALTAIR, JUSTO LO QUE ESTAS DESARROLLANDO ME INTERESA MUCHO, ME GUSTARIA SABER SI TIENES MSN O ALGO PARECIDO PARA COMUNICARNOS DIRECTAMENTE, YO COMUNICO EL PIC 16F877A CON EL LABVIEW, COMO UNA TARJETA DE ADQUISICION DE DATOS DIGITALES Y ANALOGOS. PERO PARA MEJORAR LA VELOCIDAD Y COMPARARLO A UNA TARJETA DE NATIONAL, SE NECESITA LA COMUNICACION POR USB, ME GUSTARIA QUE ME AYUDES.


----------



## zoniko (Feb 6, 2006)

Altair, quisiera ver si me podias enviar documentacion sobre como hacer pruebas con micros para utilizar el protocolo usb.


----------



## lalosoft (Mar 4, 2006)

> Existe un módulo que permiten agregar fácilmente USB a los proyectos con microcontroladores. Su modelo es el FT245BM



Use el FT245BM primero en desarrollo y luego en produccion con un ATMEGA 8515, en el PC un programa que hice en C# y la verdad es que esta opcion de USB es brillante y 100% viable para quien no tiene tiempo en estudiar el tedioso protocolo USB.


----------



## Carlos Escalona (Mar 9, 2006)

Soy nuevo en el foro y estoy trabajando en tesis implementando un sistema de adquisicion de datos utilizando el micro AT89C5131 que posee un manejador de puertos USB y ya he realizado pruebas de transmision exitosas pero utilizando la clase HID. Ya que la interfaz de usuario la estoy haciendo en Labview es necesario que la subclase del dispositivo sea Test & Measurement y actualmente estoy conociendo este tipo de clase, y quisiera saber si existe alguien que haya trabajado con esa clase asi sea con otro microcontrolador y me pueda facilitar un firmware para esta clase.

Gracias por la ayuda que me puedan dar.


----------



## raticelli (Mar 15, 2006)

Estimado Sandro:
                           Si es posible me podrías mandar el codigo fuente para probar como es una conexion de USB con PIC.

 saludos

Daniel


----------



## raticelli (Mar 15, 2006)

Hola LoC:
                     Tengo que realizar una practica para una materia de instrumentacion y la misma consiste en realizar una interfase entre el Labview y el PIC (para que sense una temperatura, voltaje y corriente de una bateria). Recién estoy comenzando con el tema de Labview y la verdad que estoy un poco mareado, porque estoy acostumbrado a programar en Visual o C++ y la programacion gráfica no es lo mio, pero bueno habrá que aprender.

Mi pregunta es la siguiente: ¿Tenes algun archivo *.vi para poder ver como se realiza la interfase con el PIC?

Desde ya te agradezco y todo lo que me puedas recomendar me será factible para realizar dicha práctica.

Saludos

Daniel (raticelli@yahoo.com.ar)


----------



## Guglelmo (Mar 24, 2006)

Hola a todos.

Para aquellos que necesiten VIs de LabVIEW con interfaz a un micro pueden tomar mis datos y solicitarme lo que necesiten, esperando porsupuesto tener aquello que necesitan.

Soy TSU en Electronica y Automatización.

Saludos


----------



## TeenSpirits (Mar 24, 2006)

Altair dijo:
			
		

> Hola Colegas.
> 
> Pues creo que ya pasé a una segunda etapa.... la autocompasión.. jajaja no, no es cierto. Resulta que el microcontrolador PIC16C765 que estaba usando era OTP, lo descubrí como 5 minutos después de publicar mi mensaje en el foro, entonces compré unos que son borrables por UV, los /JW. Implementé con éxito el firmware de prueba que viene en la página de Microchip: http://ww1.microchip.com/downloads/en/DeviceDoc/usb200as.zip
> 
> ...





no se de que se trata tu aplicación, pero lo que si es cierto es que el pic te lo reconoce el pc como dispositivo hid. Bien sea el 1.1 o el 2.0. ¿qué es lo que tienes que hacer con el labview?


----------



## Pedro Diaz (Jul 4, 2006)

Hola Guglelmo, estoy haciendo una interfaz con serial , paralelo y usb pic de la serie 18, y me serviria de mucha ayuda tus VIs ya que es una tarjeta de adquisicion de datos que estoy realizando y la que captura los datos es una pc con un programa hecho en lab view para su luego almacenaje, pero no tengo idea como trabaja la captura de datos en lab view, te agradeceria en el alma todoa la ayuda que me puedas prestar, en este problema.

Agradeciendote de antemano toda la colaboracion prestada


----------



## Plaza2009 (Jul 4, 2006)

hola a todos saben para establecer comunicacion con labview tienen que tener
de preferencia el LABVIEW 7.1 porque en el 8 no funciona y a demas los controladores de VISA tienen que ser el 3.6


----------



## Pedro Diaz (Jul 15, 2006)

buenas soy de venezuela, lalasoft, estoy muy interesado en la comunicacion con usb, donde podria conseguir el ft 245 bm y el ft 232 bm, se que esta en la pagina de ftdchip, pero a venezueal no envian


----------



## darkbits (Ago 6, 2006)

saludo te cuento q yo trabaje en un proyecto con PIC y atmel  y lo programe por  puerto de comunicacion MAX 232 y me comunique con el DB9 , y  me consegui un conversos de db9 a USB y lo conecte Funciono perfectamente.. ahora trabajo directamente con usb.. lo unico q tienes q saber del USB es el cable de IN y OUT y tierra.. nada mas y veras q no tendras problema.  logico tienes q  usar un max

DarK


----------



## fab (Ago 9, 2006)

holas, tngo un 18f4550 y no se si alguien podria darme alguna idea sobre como utilizar el usb, como empzar a usarlo, consideracion, que posh, toy algo ..muy..perdida :S y tngo q hacer un trabajo, y no se ni por donde empezar.... mientras toy leyendo el manual del pic


----------



## fab (Ago 9, 2006)

holas, yo otra vez  ops:  no se si podrian darme una descripcion rapida y super sencilla de la forma en que se envia o recibe datos por USB, ya q con las justas si use la serial, y quieren q use USB


----------



## leo_programer (Ago 9, 2006)

hola fab, quisiera ayudarle pero no tengo un pic 18f4550, no lo he podido adquirir y desde hace rato he querido comprar uno, por que le puedo ayudar del computador para afuera, mas no del pic al computador, por ahi encontre unos proyectos interesantes en esamblador con pic 18f4550 manejando el puerto usb, lo voy a buscar y lo posteare, aunque no se si ya lo hicieron por que me da pereza leer las 3 hojas, en todo caso posteare la url y luego me cuentas, cuidese...


----------



## RACH (Oct 3, 2006)

HOLA Daniel, soy RACH de Mexico, estoy haciendo un proyecto de controlar un modulo mediante Labview y una tarjeta de adquisicion de datos con un PIC 16F877A y bueno tras pelearme con la comunicacion serial entre mi pic y LAbview estoy realmente DESESPERADA!!!   quisiera ver si podrias mandarme información q tengas hayas conseguido sobre esto, realmente me seria de muchisima utilidad... 

POR FAVOR!!!!!!

agradezco d ante mano tu respuesta


----------



## LEONARD (Mar 29, 2007)

Soy nuevo en el foro.

Que tal, le agradeseria su ayuda, ya que tengo que hacer un proyecto con una tarjeta de adquisición de datos y con un micro por un USB, no se cual seria el mejor para utilizarlo y no tengo la menor idea de como hacer este proyecto
Necesito Ayuda!!!!!!!!!!!
Por Favor.


----------



## miguelopez (Abr 13, 2007)

sandro534 dijo:
			
		

> Hola , soy de lima Perú , yo si he logrado la comunicación usb con un pic16c765 . si tienen alguna consulta me la hacen para poder aprender un poco más de ustedes.
> 
> Sandro



Hola sandro.
Yo he trabajado con el 18f4455, me gustaria que intercambiaros el codigo, porque no he trabajado con PIC16.


----------



## miguelopez (Abr 13, 2007)

LEONARD dijo:
			
		

> Soy nuevo en el foro.
> 
> Que tal, le agradeseria su ayuda, ya que tengo que hacer un proyecto con una tarjeta de adquisicion de datos y con un micro por un USB, no se cual seria el mejor para utilizarlo y no tengo la menor idea de como hacer este proyecto
> Necesito Ayuda!!!!!!!!!!!
> Por Favor.



Hola Leonard.
Te recomiendo el 18f4455, que tiene 12 canales analogicos y tiene comunicacion serial via RS232 y USB. El firmware del pic lo puedes bajar de mi pagina afrodita.unicauca.edu.co/~mlopezortega, en la seccion ayudas. Lo subo en estos dias


----------



## andresgz (Abr 22, 2007)

Hola

En mi caso necesito visualizar en la PC una señal (gráfica de señal análoga- previamente digitalizada )proveniente y adaptada por el puerto USB, y no se por donde empezar, y que es lo más conveniente usar. Porfavor me podrían orientar sobre que usar y como, ya que no tengo conocimiento de como manejar el puerto USB, ojalá todo sea orientado a desarrollarse en C++, java, o visual basic.

Desde ya les agradezco su valiosa ayuda.

Saludos.


----------



## kimale (Jul 4, 2007)

Hola!! 

Soy nuevo usuario y me inquieta esto del usb y microcontroladores, lo que quiero realizar es lo siguiente: poder controlar las señales de los cables usb que van de la PC a un micro, y por lo pronto prender un led o algo sencillo. 
No se cual pic usar, ni como empezar. Espero me recomienden algo. 

Estuve leyendo la especificacion del usb 2.0 pero me parece algo confuso que los modes de transferencia, las velocidades, los pipes, en si quiero algo sencillo y practico para empezar a moverle a esto. 

Gracias.


----------



## electra26 (Jul 4, 2007)

hola! yo te recomiendo este link donde encontraras algo sencillo como lo quieres y q funciona de una 
http://www.hobbypic.com/index.php?option=com_content&task=view&id=14&Itemid=32
saludos.


----------



## kimale (Jul 6, 2007)

Hola Gracias por el link. Lo cheko  y te cuento


----------



## aparco (Ene 8, 2008)

Marcelo tu comentas acerca del FT245 pero me gustaria si puedes me envias un diagrama para comunicar el PIC16F877 con el FT232RL es comunicacion serial yo lo quiero hacer directamente al pic no se si es posible, cual es tu opinion gracias.Saludos


----------



## jorgealexvilla (Nov 27, 2008)

Por favor quien tenga codigos de ejemplo o cualquier ayuda con Pic18f4455 y usb seria de mucha ayuda. si ademas tienen información de conexion de éste con labview mejor aun. Gracias.


----------



## Moyano Jonathan (Nov 27, 2008)

Yo estoy aprendiendo a trabajar con las clases HID,CDC y bulck transfer (Full speed 12mb/s) y las aplicaciones de control las hagos mediante visual basic. Lo que les quiero comentar es que el tema del usb es algo bastante largo de desarrollar, debido a que no es una comunicacion directa donde el host le envia datos a la aplicacion de forma directa como es en el control del puerto paralelo, sino que la comunicacion se da por varias capas ( driver de la pc - firmware del pic - software del pc - librerias , etc)

Yo estoy comenzando desde lo mas basico utilizando un pic 18f2550 y un entrenador multiproposito que publique aca. Lo mejor es utilizar (al principio) la clase CDC (CDC Communications Devices Class) que crea un puerto serie virtual en la pc que es mas facil de controlar.

Luego se puede utilizar un api proporcionado por microchip : mpusbapi.dll a traves de esta api se puede comunicar el micro a full speed (12mb/s). Este tipo de comunicacion es un poco mas complicada de implementar pero los resultados son muchos mas satisfactorios.  Un ejemplo de este tipo de comunicacion esta en la pagina de hobbypic.com

la clase hid es la mas lenta de todas , (no la comprendo del todo todavia) pero no necesita driver para funcionar ya que windows xp ya lo trae. Esta clase es muy buenas para correr aplicaciones a baja velocidad como controlar motores , reles , luces , etc. Un ejemplo de esto es el mouse y el teclado usb utilizan este tipo de comunicacion.

En fin para comenzar recomiendo buscar información para la comunicacion CDC . El compilador para el pic , yo recomiendo el c de ccs ya que hay mas ejemplos de comunicacion usb en la red para este compilador , sino el c18 de microchip , que tambien tiene información muy completa.

El mejor micro para trabajar,  es el pic18f2550  (por experiencia propia) aunque se puede usar cualquiera que tenga un modulo usb 2.0

En las aplicaciones utilizo visual basic , aunque he visto mucho del matlab. Yo personalmente nunca lo he usado ni conosco como se usa. Aunque en el foro  todopic hay mucha información (no me parece mejor que este foro ni peor)

PD: Si me esperan un tiempo puedo postear algunas aplicaciones del usb 2.0 con el pic18f2550


----------



## oscarcito_ale (May 17, 2009)

hola colegas como les va espero que bien bueno estoy necesitando programar un pic 16c745  que opciones tengo sera que me pueden ayudar para programarlo estoy buscando como y no encuentro nada tengo un programador armado pero no se si me servira es el gtpusblite sera que me sirve?


----------



## Moyano Jonathan (May 17, 2009)

yo puedo ayudarte a programarlo. Una cosa este micro es USB 1.1 osea el firmware del PIC lo podés escribir en C de CCS ese soft ya viene con las librerias de usb para ese micro


----------



## oscarcito_ale (May 17, 2009)

ok entonces me sirve el gtpusblite? ya baje el soft winpic800 y todo hoy mismo me pongo en campaña en fabricar el impreso y demas los componentes los comprare mañana me servira este es el que estoy por utilizar. el pic 18f2550 que utiliza este ya viene programado o hay que realizarle auguna modificacion?


----------



## jmvega550 (Feb 25, 2011)

Marcelo dijo:


> Solo como un aporte adicional pues a veces podría ser algo difícil implementar el stack del protocolo USB.
> 
> Existe un módulo que permiten agregar fácilmente USB a los proyectos con microcontroladores. Su modelo es el FT245BM (http://www.myplace.nu/mp3/files/ds245b10.pdf)
> 
> ...



ola no entiendo dispositivos usb a los desarrollos que quiere decir eso, necesito hacer esto pero con un atmel que tiene comucicacion usb por medio del at90usb y otro microcontrolado mas potente ud tiene algo de la programacion


----------

