uControl
Enero 20, 2017, 06:52:47 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1] 2 3   Ir Abajo
  Imprimir  
Autor Tema: Inalambrico USB 12F675  (Leído 18563 veces)
0 Usuarios y 1 Visitante están viendo este tema.
DML
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 30


« : Marzo 28, 2014, 01:59:25 »

Hola a todos, voy a compartir el codigo del transmisor inalambrico USB con PIC12F675, el receptor y el programa para la PC mas los diagramas de conección.
El codigo es adaptable a cualquier otro PIC, lo he probado en los PIC 12F629, 12F683, 16F84A, 16F628A, solo hay que modificar la configuración de cada pic, si es PORT o GPIO, las direcciones donde empieza la ram y las tablas. Funciona overclockeado a 24Mhz, no funcionara con otro cristal que no sea de 24Mhz, fijense bien que el pic no esta conectado directamente a la fuente del USB, pasa primero por dos dioditos para bajar la tensión, lo unico que se alimenta directamente con los 5v del bus es el transmisor inalambrico, aviso que no me hago responsable si queman el puerto USB de su compu.
A los PIC12F675 o PIC12F629 les entra casi justo este programa (solo le entran 10 instrucciones mas Tongue) mas adelante voy a publicar algun ejemplo con otro pic mas grande que sea entrada/salida este programa es solo salida.
Los diodos que salen de D+ y D- hacia GP3 son muy importantes sin estos el pic no detecta el fin del paquete USB (SE0)
Aviso que no soy de lo mas prolijo programando traté de poner el codigo lo mas entendible posible.

Diagrama del transmisor:


Diagrama del receptor:


Los leds en el transmisor son: el de GP5 es que recibio un paquete valido, el de GP4 se enciende cuando el paquete recibido es diferente al paquete anterior.
Se pueden usar mas de un receptor, si arman mas de un receptor tienen que cambiarle el valor que figura como "llave" en la linea 103 de RX.ASM

Código:
MOVLW 0x97 ;Cargo la llave de acceso en este caso 0x97
MOVWF Llave

Este valor (0x97 en este caso) tiene que ser el mismo que en el edit con el label "Dirección" del programa de la PC.
Modificando el valor en el edit del programa le hablaremos a otro receptor diferente

El transmisor se alimenta del bus USB, pero el receptor necesita una fuente de 5v aparte.
El programa de la PC esta en Delphi, y este necesita tener el archivo DMLHID.dll en su misma carpeta va con codigo fuente tambien.

El tipo de tranferencia USB es Interrupt.

El transmisor USB no necesita drivers extra, por lo menos en win7 que es lo que tengo yo

La idea es que si le hacen alguna modificación, tambien compartan

Saludos
Diego

* USB12F675_src.zip (86.36 KB - descargado 330 veces.)
* RX.zip (55.48 KB - descargado 273 veces.)
* Delphi PIC USB.zip (367.1 KB - descargado 261 veces.)
* USB.HEX (6.22 KB - descargado 239 veces.)
* RX.HEX (1.63 KB - descargado 225 veces.)
En línea
Leon Pic
Moderator
dsPIC
***
Desconectado Desconectado

Sexo: Masculino
Mensajes: 5688


Cumulonimbus


WWW
« Respuesta #1 : Marzo 28, 2014, 05:31:21 »

Muy interesante el proyecto.
Mirándolo muy por encima, no veo una encriptación o algo por el estilo de la información transmitida y recibida ¿puede ser? Si es así; está muy suceptible a las interferencias y al receptor le llegará cualquier cosa.

Yo he echo un trabajo con estos módulos; y tuve que recurrir a la encriptación para poder discriminar de los datos verdaderos a las interferencias.
En línea

Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.
Ariel
Global Moderator
dsPIC
****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 10751



WWW
« Respuesta #2 : Marzo 28, 2014, 07:43:04 »

Hola Diego!

Gracias por compartirlo  bang

PD: ¿Con que soft haces esos diagramas?
En línea

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert
soymoe
PIC12F
**
Desconectado Desconectado

Sexo: Masculino
Mensajes: 115


¡Si, se puede!


WWW
« Respuesta #3 : Marzo 28, 2014, 10:50:08 »

No entiendo mucho que es lo que hace este circuto y cual podria se la utilidad.Como hiciste para hacer una conexion directa usb con el pic sin usar adaptador?
En línea

SoYmOe
DML
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 30


« Respuesta #4 : Marzo 28, 2014, 03:20:46 »

Bueno..., primero buen dia
respondo a Leon Pic encriptación no tiene o por lo menos nada conocido, esta forma de comunición la invente con prueba y error como me funcionó mejor..., explico, para mandar un 1 logico mando 1 por un tiempo determinado y 0 el mismo tiempo y para mandar un 0 lo opuesto osea 0 y 1
El transmisor manda al principio de todo un 1 luego un 0 y 1 de nuevo, esto es para que el receptor mida los tiempos lo guarde en una variable el tiempo de 1 y 0 son iguales y se configuran desde el transmisor (esto lo hice porque noté con un osciloscopio que aunque mande un 1 y un 0 con el mismo tiempo estos modulos varian los tiempos dependiendo de la distancia) entonces el receptor mide el tiempo y digamos se calibra con los tiempos.
Con los cambios de 1 a 0 para el bit "1" y 0 a 1 para bit "0" tiene forma de verificar cada bit.
Finalmente el byte (Dato) enviado esta intercalado con el byte (llave) es decir si mando un dato 11111111 con llave(address) 00000000 seria 1010101010101010 con un sicronismo cada 4 bits, si no coincide la llave con lo que se espera en el receptor descarta el paquete. Hasta ahora nunca me recibió un paquete erroneo a lo sumo no lo recibe, y eso que probé acercarle el celular llamando al lado del receptor. podes probarlo tiladando donde dice test en el programa (va a transmitir continuamente)

Ahora respondo a Ariel, los diagramas los hago con proteus (isis) con los colores cambiados, vas al menu template y todos los menues set varian los colores y las fuentes.

Finalmente a soymoe, este circuito es como un puerto paralelo pones en un programa en la compu 0xFF o 11111111 y en la plaquetita receptora si le pones 8 leds se prenden todos, le pones 0xAA o sea 10101010 eso aparece en los leds, modificando un poco el programa se puede hacer que mande mas de 8 bits y en el receptor se pueden poner mas CD4094 en cascada para tener mas bits de salida 16 bit con dos, 24 bits con tres, 32 bits con cuatro CD4094, no tiene ningun uso especifico mas que mandar bits inalambricamente a una plaquetita.
La conección usb fue mucho tiempo de experimentar, investigar, y devorar la hoja de datos de especificaciones usb, lo hice solamente para entender como funciona esa comunicación, pero mas de una comunicación USB 1.1 no se puede tener con los pic mid-range (USB 1.1 --> overclockeado)
Pero igual no te puedo describir la felicidad que se siente cuando lo ves funcionar por primera vez, lo enchufas y escuchas el ta-ran de windows y ves el nombre en la esquinita de tu dispositivo.

Saludos
« Última modificación: Marzo 28, 2014, 03:27:04 por DML » En línea
Leon Pic
Moderator
dsPIC
***
Desconectado Desconectado

Sexo: Masculino
Mensajes: 5688


Cumulonimbus


WWW
« Respuesta #5 : Marzo 28, 2014, 06:57:37 »

¡Ah!, si tiene un encriptación.
Me parecía que me lo había pasado por alto.
Gracias.
En línea

Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.
andrew16F628A
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 28



WWW
« Respuesta #6 : Marzo 28, 2014, 08:49:50 »

 shocked Waoo!!! Gracias DML  por compartir un exelente trabajo. Realmente ignoraba que se podía realizar una coneccion usb con un microcontolador sin este periférico. Pues no la había visto en ninguna web o libro. La probare con un pic16f628 y en una pc viejita, pero no entendí bien ¿se puede realizar con el usb 2.0?
En línea
DML
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 30


« Respuesta #7 : Marzo 29, 2014, 03:44:54 »

Hola andrew16F628A, funciona en cualquier puerto USB pero se conecta a una velocidad maxima de 1,5 mbps

Saludos
En línea
andrew16F628A
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 28



WWW
« Respuesta #8 : Abril 01, 2014, 03:44:26 »

funciona en cualquier puerto USB pero se conecta a una velocidad maxima de 1,5 mbps

Aun así no esta nada mal. Me gustaría usar esta técnica para encender-apagar un led y leer el valor de una entrada, pero en el compilador CCS (si es posible). De igual manera para entender mas a fondo como funciona el puerto USB, por lo que he buscado información respecto al tema pero no encuentro mucho  Sad. Podrías compartir las referencias en las que te guiaste?

Gracias de nuevo.

PD: Espero tu próximo ejemplo.
En línea
HJ
Moderador
dsPIC
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 5653



« Respuesta #9 : Abril 01, 2014, 03:55:31 »

Aun así no esta nada mal. Me gustaría usar esta técnica para encender-apagar un led y leer el valor de una entrada, pero en el compilador CCS (si es posible).
Es imposible hacer una pila USB si no es en ASM, es una cuestión de tiempos y optimización del código.

Por lo poco que vi, aparentemente está basado en los trabajos de Emanuel Paz (16FUSB) y de IgorPlug (con micros AVR), pero esto es una conjetura mía.

edito: Acá tenés para leer al respecto.
« Última modificación: Abril 01, 2014, 04:29:40 por HJ » En línea

"si te lo dicen se te olvida, si lo lees lo aprendes; pero si lo haces realmente lo entiendes"
"Cuando llegue la inspiración, que me encuentre trabajando" [Pablo Picasso]
soymoe
PIC12F
**
Desconectado Desconectado

Sexo: Masculino
Mensajes: 115


¡Si, se puede!


WWW
« Respuesta #10 : Abril 01, 2014, 08:55:27 »

Me alegro de que hayas puesto en donde se puede leer estoy, sino la cosa no pasa alardear de los logros personales.
En línea

SoYmOe
andrew16F628A
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 28



WWW
« Respuesta #11 : Abril 01, 2014, 09:11:47 »

Aun así no esta nada mal. Me gustaría usar esta técnica para encender-apagar un led y leer el valor de una entrada, pero en el compilador CCS (si es posible).
Es imposible hacer una pila USB si no es en ASM, es una cuestión de tiempos y optimización del código.

Es lo que sospechaba  Sad. Entonces tendré que trabajar en ASM para hacer unas aplicaciones sencillas pues aunque se trate de la útil conexion USB, supongo que se quedara en un enfoque didáctico debido a las bajas prestaciones que se logran con el USB por software.

GRACIAS HJ por la informacion  bang.
En línea
E_Blue
PIC24F
*****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 2226


Electric Blue


« Respuesta #12 : Abril 03, 2014, 05:02:40 »

¿En la PC como se visualiza el dispositivo, COM emulado, HID? duda
En línea

U2kgZXN0YXMgbGV5ZW5kbyBlc3RvIGVyZXMgdW4gTkVSRCEhIQ ==
Procesando...

Si quieres ayuda con tu proyecto recuerda agregar información del mismo, y no seas haragán y esperes tener todo servido, esto es un foro, no una bolsa de trabajo.
DML
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 30


« Respuesta #13 : Abril 04, 2014, 08:56:49 »

¿En la PC como se visualiza el dispositivo, COM emulado, HID? duda

Se visualiza como HID



Saludos
En línea
DML
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 30


« Respuesta #14 : Abril 05, 2014, 08:01:57 »

Buen dia a todos,
Acá posteo como prometí otro programa pero esta vez lo modifiqué para que sea salida y entrada de 8 bits (sin inalambrico), y en un PIC16F628A.
el programa manda y recibe 4 bytes (32 bits) desde la PC (solo uso un byte de entrada y uno de salida), para usar los 4 bytes hay que agragar 3 CD4021 y 3 CD4094 mas,... y modificar un poquito el programa.

Posteo link de video de como funciona, se puede ver en HD Tongue

<a href="https://www.youtube.com/v/i2dsaEIi-AA" target="_blank">https://www.youtube.com/v/i2dsaEIi-AA</a>

https://www.youtube.com/watch?v=i2dsaEIi-AA

Diagrama


Y adjunto los programas...


Editado para incrustar el vídeo.
HJ

* USB16F628A.zip (99.28 KB - descargado 260 veces.)
* USBProject.zip (369.83 KB - descargado 254 veces.)
* USB.HEX (5.89 KB - descargado 207 veces.)
« Última modificación: Abril 05, 2014, 10:15:33 por HJ » En línea
Páginas: [1] 2 3   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines
SMFAds for Free Forums
XHTML 1.0 válido! CSS válido!
Página creada en 0.08 segundos con 25 consultas. (Pretty URLs adds 0.011s, 2q)
loggkey