Control de dispositivos a través del módulo USB del PIC18F45/2550

Ayuda por favor

Hola a todos, he estado leyendo varias páginas de este extenso tema y no me queda más que felicitarles por el gran aporte que están brindandol, porfavor Moyano, meta o alguien que sepa del tema ayuda.

Por otro lado soy nuevo en esto de proyectos con USB, pero algo he avanzado; justamente por lo novato que soy estoy realizando un proyecto emulando el puerto serie con comunicación USB (CDC)(me inicio en esto porque es lo más fácil, luego iré subiendo en complejidad), de hecho gracias a sus aportes ya logro conectar el PIC a la PC y me reconoce en el puerto serial, mi inquietud es la siguiente:

Quisiera desarrollar una interfaz en visual Basic 2008 para mi proyecto, el tratamiento del puerto en VB bajo comunicación CDC es para puerto serial??? o para USB???, soy nuevo en VB; se necesita de alguna librería especial para los puertos??? o alguna dll????
Porfa necesito su ayuda como les dije para VB 2008; si alguien tiene algún programa para este tipo de comunicación con VB2008 le agradecería mucho que los suba porfa.
muchas gracias
 
Buenas:

La información está a lo largo de este tema. Puedes pulsar aquí para buscar. Se está preparando un buen manual básico para hacer los primeros pinitos con el USB como:

8 Entradas digitales
8 Salidas digitales
algunas entradas analógicas

Se hará con Visual Basic .net 2008. Hemos quedado que lo pasaré al Visual C#, este lenguaje se usa cada vez más.
 
Buen día Moyano Jonathan y usuarios de este foro

Tengo una pequeña inquietud la cual quisiera me ayudaran a despejar…

Según la nota 1 Datasheet dice:


El Ciclo de instrucción (búsqueda y ejecución) del periodo (Tcy) es igual a cuatro veces la frecuencia de operación del oscilador de entrada para todas las configuraciones excepto el PLL. Todos los valores especificados se basan en datos de caracterización para ese tipo particular de oscilador bajo estándar de operación para el dispositivo en condiciones de ejecución de código.

Exceder estos topes especificados puede dar como resultado una operación inestable del oscilador y / o un alto consumo de corriente. Todos los dispositivos son probados para funcionar en "mínimo".

Valores con un reloj externo aplicado al pin OSC1/CLKI. Cuando una entrada externa del reloj es usada, "Su ciclo límite máximo de tiempo" es “DC”, es decir, sin reloj para todos los dispositivos.


¿Quiero saber cuánto es el tiempo de retraso para un ciclo de instrucción o mejor dicho cuantos ciclos de reloj utiliza la ejecución de una línea de código para la serie PIC18FXXX ?

concretamente la frecuencia del PLL se divide tambien???????
 
Última edición:
@natouio

Quisiera desarrollar una interfaz en visual Basic 2008 para mi proyecto, el tratamiento del puerto en VB bajo comunicación CDC es para puerto serial??? o para USB???, soy nuevo en VB; se necesita de alguna librería especial para los puertos??? o alguna dll????
Porfa necesito su ayuda como les dije para VB 2008; si alguien tiene algún programa para este tipo de comunicación con VB2008 le agradecería mucho que los suba porfa.
muchas gracias

Hola como estás, la aplicación la tenés que hacer para controlar un puerto serie..ya que el PIC al conectarlo a la PC te está generando un puerto serie. En las primeras páginas del post están los programas de ejemplo que puedes probar.

¿Quiero saber cuánto es el tiempo de retraso para un ciclo de instrucción o mejor dicho cuantos ciclos de reloj utiliza la ejecución de una línea de código para la serie PIC18FXXX ?

concretamente la frecuencia del PLL se divide tambien???????

T = 1/F (periodo es igual a 1 divido la frecuencia) ....para una frecuencia máxima de trabajo de 48Mhz (PIC18F2550) te va a resultar un periodo de 2 x 10 e - 8 seg.

La frecuencia del PLL se divide por programación mediante un divisor de frecuencia programable....

Todo lo que necesitas saber está en la hoja de datos en la parte de configuración de reloj.
 
Hola, soy un entusiasta de los pics y ahora me adentro en el mundo de los 18f´s y dspic´s con CCS, quiero hacer un porgama sencillo de CAD con el 18f4550 y mostrarlo en la LCD , con el proteus simulo el programa pero he notado que cuando con el potenciometro llega a su tope y la salida es 1022 (salida binaria) al bajar de nuevo el potenciometro salen numeros muy grandes y se van haciendo mas grandes aun, intente poner a ´0´ la variable que almacena en adc?read pero nada. saludos



#include <18f4550.h> //archivo de cabecera
#DEVICE ADC=10 // cad a 10 bits, justificación a a la derecha
#fuses XTPLL,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,NOVREGEN,NOPBADEN
#use delay(clock=48000000) // el clock que tendremos a la entrada del CPU
#include <lcd.c>

void main() {
long value=0;
lcd_init();
int ADC_ACQT_2TAD=0x1;

setup_adc_ports( AN0 || VSS_VDD );
setup_adc(ADC_CLOCK_DIV_64 || ADC_ACQT_2TAD );
set_adc_channel(0);
while(1){ // bucle infinito
value = read_adc(); // toma el resultado del CAD
lcd_gotoxy(1,1);
printf(lcd_putc,"Valor = %Lu",value);
}
}
 
Hola, prueba agregando espacios antes de cerrar las comillas en el printf, a mi solía pasarme algo similar, por ejemplo si mostraba el numero 1023, y luego quería bajar a 900, el lcd marcaba 9003, parece que quedaba almacenado el ultimo dígito del 1023, asi que para solucionarlo agregue un espacio, con lo que terminaba sobreescribiendolo y asi mostraba el mensaje como yo deseaba
Entonces, prueba escribiendo:

lcd_gotoxy(1,1);
printf(lcd_putc,"Valor = %Lu ",value);
 
Hola a todos!!!
he estado probando los programas de moyano y dejenme comentar que son muy buenos, pero tengo un problema, cuando compilo los programas para generar el .hex mo me funciona, creo saber cual es el problema, lo que pasa es que nose usar el CCS ya que yo programo en ASM y recien comienso a migrar al C, si alguien puede ayudarme con ese problemilla tal ves con algun tutoria le estare muy agradecido, saludos a todos.
 
Hola, saludos a todos, quisiera saber si alguien a trabajado con el modulo reforzado ECCP del pic18f4550, quisiera saber como sacar dos señales PWM una normal y la otra el inverso de la primera, esto es para el control de velocidad y direccionamiento de un Robot tipo tanque que estoy construyendo, les agradezco la ayuda que me puedan brindar.

Disculpá, pero este hilo no coincide con tu pregunta. Por favor abrí un hilo propio.

Muchas gracias y saludos !

lo que pasa es que nose usar el CCS ya que yo programo en ASM y recien comienso a migrar al C, si alguien puede ayudarme con ese problemilla tal ves con algun tutoria le estare muy agradecido, saludos a todos.

En este hilo se tratan temas referente al USB solamente. Si necesitas aprender C , en el foro hay muchos manuales y tutoriales.

Saludos !
 
Última edición:
Moyano. ¿Sigues con el manual o sigues descansando?
De paso adelanto para pasarlo a C# algo. Si ya tienes de alguna manera para que funcionen las 8 In y salidas digitales más In analógicas me avisas.
 
Estoy con otras cosas Meta en este momento, acuerdate: "la paciencia es una virtud". La semana que viene armo el hardware que les mostré anteriormente y comienzo con la programación.

Un saludo !
 
AJjaaj, por Dios, me olvidé que estabas con el HardWare, disculpe usted.

Tan pronto como lo entienda, lo paso o lo pasamos a C18 que cad avez se usa más y Visual C#. Ya me encargaré del C#. Ahora mismo estoy dando Java en clase y se parece mucho a C#, en el cual me estoy reforzando mejor las sintaxis del lengueje. El próximo año daremos .net, se sospecha que con el VB .net. No me gusta mucho ese lenguaje pero por lo menos se usa mucho por internet.

En España salió en el telediario que Java es el rey indiscutible, se usa mucho en empresas. Lo que preocupa ahora que Java pertenece a una empresa privada Oracle, tiene fama de hacer desaparecer lo que compra, otras veces ponerlo de pago, por ahora le tocó MySQL y Java lo más probable que haga algo similar. Así que hay alternativas como Visual Studio de pago.

Viendo la estructura interna y a fondo (en realidad me queda mucho que mirar), .net está por encima del Java ya que han corregido errores de otros lenguajes. De todas formas, de alguna manera o otra se peude hacer muchas cosas relacionada con la electrónica.

todavía hay gente pidiéndome que les haga un manual sobre Visual Basic 6 y puerto RS232, puse una propuesta en este tema y comprobé que no. No hay quien les entienda. Por si acaso, les traigo el tema.
https://www.forosdeelectronica.com/f26/usar-visual-basic-6-a-36801/

Muchos ánimos.
 
:aplauso: Grosso papa, llevo tiempo buscando informacion algo comprensible para quienes no conocemos mucho de comunicaciones con el pc ni de electronica, hasta que lo encontre en este post.

Muchas gracias por dedicar ese tiempo a subir toda esa valiosa informacion, que la verdad la necesitaba...(y)
 
buenos días a todos amigos


Tengo una inquitud, he programado ya mi PIC 18f4550 con emulación de puerto serial es decir CDC, y me va super bien en la simulación con proteus, pero cuando lo implementé ya en hardware al momento de conectarlo al puerto de la PC me sale un mensaje que dice que no se reconoce el dispositivo USC y que tiene un problema etc...; porque puede ser esto??? (ojo en la simulación si funciona), para grabarlo utilizo WINPIC800, puede ser algo de los fuses??? o que puede ser?? porfavor necesito su ayuda los más pronto posible
 
En realidad pueden ser varios los problemas, entre los más comunes podés revisar:

- Cables D+ y D- invertidos.
- Capacitor Vusb no conectado.
- Cristal erroneo o estropeado.
- Mala configuración de los fuses , especialmente del PLL con respecto al cristal utilizado.
- Tensión USB insufiente debido al uso de HUB's sin alimentación auxiliar.

....el problema lo más seguro que esté en el hardware. Ahora puede ocurrir que estés configurando algo mal en el winPIC800, fijate de ponerme una captura de pantalla en la configuración de los fusibles de dicho programa.

PD: Ya tengo montado el entrenador USB con el que haré el manual por lo que en el transcurso de la semana que viene estaría comenzando con la programación de la aplicación de control.

Un dato importante es que la librería easyHID.dll corre bien en Windows 7 usando Visual Basic 6.0 o Visual Basic 2008....por lo que las aplicaciones tendrían que ser compatible en cualquier sistema operativo Windows.
 
En primer lugar felicitaciones por el trabajo.

En el Pcb que subiste, realizado con Eagle, se aprecian unos pad cerca de los potenciometros, me imagino que seran puentes pero no aparecen en lado de componentes del documento Pdf.

Por otro lado seria muy interesante que pudieras subir el esquema asi como unas fotos del prototipo terminado.

Creo que hablo por todos al decirte que estamos deseando empezar con la programacion.

Muchas gracias por tu aporte.
 
Atrás
Arriba