Saludos expertos
Despues de un largo tiempo volvi a tratar de solucionar mi problema con el USB del PIC18F2450 que me dio tantos problemas hace unos meses atras, y al parecer tuve exito en solucionar el problema, ya que, ahora logre hacer que la PC reconosca y enumere el PIC en cualquier puerto USB, esto solo en CDC por ahora, la PC me provee con un COM x y hiperterminal muestra los caracteres que envia el PIC, pero ahora tengo un problemas mas y es que no logro enviar caracteres del PC al PIC, el usb_cdc_kbhit() responde bien pero no veo se ve el caracter enviado el codigo es el siguiente:
si alguien tiene alguna idea o la solucion?
NOTA: la solucion para que el PIC trabajara esta en el cristal de cuartzo, el PIC funciona en PLL con cristales de 4M, 8M, 16M o 24MHz para cualquiera que tengo un problema de comunicacion, tambien es recomentable instalar el USB sobre una placa solida que evite el movimiento del USB. Yo utilize un cristal de 8MHz con dos capacitores de 20pF en el osilador primario.
Despues de un largo tiempo volvi a tratar de solucionar mi problema con el USB del PIC18F2450 que me dio tantos problemas hace unos meses atras, y al parecer tuve exito en solucionar el problema, ya que, ahora logre hacer que la PC reconosca y enumere el PIC en cualquier puerto USB, esto solo en CDC por ahora, la PC me provee con un COM x y hiperterminal muestra los caracteres que envia el PIC, pero ahora tengo un problemas mas y es que no logro enviar caracteres del PC al PIC, el usb_cdc_kbhit() responde bien pero no veo se ve el caracter enviado el codigo es el siguiente:
PHP:
#include <18F2450.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES HSPLL //Crystal/Resonator with PLL enabled
#FUSES NOBROWNOUT //No brownout reset
#FUSES PUT //Power Up Timer
#FUSES VREGEN //USB voltage regulator enabled
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOLVP //No low voltage programing, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOWRT //Program memory not write protecte
#FUSES MCLR //Master Clear pin enabled
#FUSES PLL2 //Divide By 2(8MHz oscillator input)
#FUSES USBDIV //USB clock source comes from PLL divide by 2
#FUSES CPUDIV2 //System Clock by 4
#use delay(clock= 48000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#include <usb_cdc.h>
#include "usb_desc_cdc.h"
#define on output_high
#define off output_low
#define led (pin_a0)
void main (){
char character;
usb_cdc_init();
usb_init();
while(true){
if (usb_enumerated()){
if (usb_cdc_kbhit()){
usb_Cdc_putc("caracter recibido\n\r");
character = usb_cdc_getc();
usb_cdc_putc (character);
}
}
}
}
si alguien tiene alguna idea o la solucion?
NOTA: la solucion para que el PIC trabajara esta en el cristal de cuartzo, el PIC funciona en PLL con cristales de 4M, 8M, 16M o 24MHz para cualquiera que tengo un problema de comunicacion, tambien es recomentable instalar el USB sobre una placa solida que evite el movimiento del USB. Yo utilize un cristal de 8MHz con dos capacitores de 20pF en el osilador primario.