Proyecto con 8051 y comunicación USB

Buenas

primero de todo gracias por vuestro tiempo. Soy nuevo en este foro, pero no en la electronica.

Hola estoy en un proyecto en el cual tenemos que controlar un antiguo robot SCARA con un micro de la famila8051 (concretamente 89C5131). El robot ha de poder ser movido des del pc, o des de una consola externa conectada al uC (con un joystick o algo por el estilo, todavia sin definir).

Mi idea es que el uC pueda ser programado por USB sin sacarlo de la placa del circuito.

para controlar el robot des del pc, la idea que tengo es programar una interficie en VB que interactue con el uC.

Cómo puedo hacer el "protocolo" para comunicar el programa en VB con el uC?necesito crear un driver USB para el uC?Cómo?

How Can I do the "protocol" to comunicate VB with uC? I need create a driver USB for uC?How?

He visto que hay adaptadores serie para emular el USB, es más fácil?

Hay mucha cosa para PIC, pero nunca los he usado, es mas faicl? ventajas y inconvenientes respecto a Atmel?

Gracias!
 
Mira yo tambien estoy interesado en el manejo del puerto usb por medio de un 8051, pero por lo poco que se, no es tan sencillo como si lo es el rs-232.

En mi caso, estoy usando un Atmel 89s52 (uno de los modelos mas baratos del 8052) y usando un adaptador serie-usb no tengo inconvenientes a la hora de comunicarme, y se que los modelos que pueden programarse a traves del puerto serie no tiene problemas de usar estos adaptadores (en el caso del 89s52, es programable por puerto paralelo).
 

Hola Tecnogirl, haciendo lo de la búsqueda no aparece ningún tema relacionado con lo que pregunto..

Mira yo tambien estoy interesado en el manejo del puerto usb por medio de un 8051, pero por lo poco que se, no es tan sencillo como si lo es el rs-232.

En mi caso, estoy usando un Atmel 89s52 (uno de los modelos mas baratos del 8052) y usando un adaptador serie-usb no tengo inconvenientes a la hora de comunicarme, y se que los modelos que pueden programarse a traves del puerto serie no tiene problemas de usar estos adaptadores (en el caso del 89s52, es programable por puerto paralelo).

Buenas

A esa conclusión he llegado, que es más fácil por serie que por USB, pero preferiria utilizar el puerto "moderno" en vez de emularlo con los adaptadores.

Tienes enlaces a tutoriales/guias para los Atmel?


Saludos!
 
Última edición:
Al final usaré el puerto serie y pondré un adaptdor 232 a USB, la programación del PC continuará siendo e n Visual Basic,

ahora estoy intentando mandar y recibir 3 bytes, pero no acaba de funcionar, solo funciona correctamente en 1, pero esto no se si es mejor ponerlo en el foro especifico de programacion.

Saludos!
 
La empresa FTDI Chip fabrica chips que hacen de puente entre un puerto USB y una UART por ejemplo el FT232RL USB to UART Converter, en este caso no hace falta escribir ningún driver porque ya te los provee FTDI.
Otra solución sería usar un micro de la familia 8051 de atmel que ya posea puerto USB como el AT89C5131A, AT89C5132, Etc.
 
La empresa FTDI Chip fabrica chips que hacen de puente entre un puerto USB y una UART por ejemplo el FT232RL USB to UART Converter, en este caso no hace falta escribir ningún driver porque ya te los provee FTDI.
Otra solución sería usar un micro de la familia 8051 de atm el que ya posea puerto USB como el AT89C5131A, AT89C5132, Etc.

el micro que uso es el 5131 pero la comunicacion la haré haciendo el puente, ahora el problema es enviar y recibir bien, :LOL:D
 
Al final usaré el puerto serie y pondré un adaptdor 232 a USB, la programación del PC continuará siendo e n Visual Basic,

ahora estoy intentando mandar y recibir 3 bytes, pero no acaba de funcionar, solo funciona correctamente en 1, pero esto no se si es mejor ponerlo en el foro especifico de programacion.

Saludos!

Antes que nada te recomiendo probar el uC con el hyperterminal o algun programa parecido.

Si seguis teniendo problemas, subi el codigo para ver como manejaste las interrupciones del puerto.
 
Buenas!

Para mandar campo no tenemos problema, le ponemos letras y las manda, le ponemos numeros y tambien.

El problema nos surge cuando queremos mandar 3 campos (que tendrian que ser 3 bytes)

En el VB:
Como tengo que hacerlo para mandar?

en el uC:
enviar y parar para cada byte y entonces moverlo a un registro en funcion de un contador? o como?

en VB como le digo que lo que tengo en un campo me lo pase a un byte?
 
Última edición:
Nunca programe en Vb, pero si en java, y con ir levantando de a un byte va sin inconvenientes.

Igualmente te recomiendo trabajar el puerto serie por interrupciones (ya sea TI o RI), y usar tramas. Por ej. si quisiera mandar 8 bytes, agregaria una señalizacion de inicio y una de finalizado:

0xAA (Señalizacion de inicio) - 1er byte -......- 8vo byte - 0xFF (Señalizacion de finalizacion)

Con eso te aseguras que tipo de datos recibis y si en principio estan bien.

Subi el codigo de como manejas los puertos en el 8051.
 
Hola
Te recomiendo usar el FT232, que convierte el USB a RS232, de esta manera te evitas código adicional.
Yo lo uso hace tiempo y funciona perfectamente

Saludos
Dipesa
 
hola disculpen yo estoy realizando un proyecto de controlar un motor,displays y leds con un 89s52, mi pregunta es.. que si lo pruebo con una fuente de computadora usando el cable de +5V,32A... no se dañara el micro porque uso 32A... sq quiero estar seguro antes de probarlo y eso me tiene dudando

saludos
 
Última edición por un moderador:
Atrás
Arriba