Need Help with USB using PIC18F2455


Closed Thread
Results 1 to 18 of 18
  1. #1

    Default Need Help with USB using PIC18F2455

    I use EasyHID to generate both PICBASIC code and visual basic code, I connected the cicuit as shown in various posts and schematics, but evey time I plug the usb cable in our laptop or my PC I have a problem "USB Device Not recognized" , I sure that I'm connected the circuit well with 470nF capacitor but the same problem , I think there are a driver I must install or something else.
    I attached my photos for clearing
    Attached Images Attached Images   

  2. #2
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898

    Default

    Most problem comes with the ConfigFuse setting, then the code. Is it me.. or i don't any of those here?

    You'll also need to tell us which crystal/resonator speed you have.

    I saw you looked at USBDemo... you didn't find anything to use in?
    Last edited by mister_e; - 14th April 2008 at 20:34.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  3. #3

    Default

    Oky here is my code which I use 4MHZ crystal:

    ' Pic Configuration
    ' =================
    asm
    __CONFIG _CONFIG1L, _PLLDIV_1_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L
    ; ; ; USB clock source comes from the 96 MHz PLL divided by 2
    ; ; [OSC1/OSC2 Src: /1][96 MHz PLL Src: /2]
    ; No prescale (4 MHz oscillator input drives PLL directly)


    __CONFIG _CONFIG1H, _FOSC_XTPLL_XT_1H & _FCMEN_OFF_1H & _IESO_OFF_1H
    ; ; ; Oscillator Switchover mode disabled
    ; ; Fail-Safe Clock Monitor disabled
    ; XT oscillator, PLL enabled, XT used by USB

    __CONFIG _CONFIG2L, _PWRT_ON_2L & _BOR_ON_2L & _BORV_2_2L & _VREGEN_ON_2L
    __CONFIG _CONFIG2H, _WDT_OFF_2H
    __CONFIG _CONFIG3H, _MCLRE_ON_3H & _LPT1OSC_OFF_3H & _PBADEN_OFF_3H & _CCP2MX_ON_3H
    __CONFIG _CONFIG4L, _STVREN_ON_4L & _LVP_OFF_4L & _XINST_OFF_4L & _DEBUG_OFF_4L
    endasm

    DEFINE OSC 48
    ;DEFINE LOADER_USED 1
    symbol led=portb.7
    output led
    USBBufferSizeMax con 8 ' maximum buffer size
    USBBufferSizeTX con 8 ' input
    USBBufferSizeRX con 8 ' output

    ' the USB buffer...
    USBBuffer Var Byte[USBBufferSizeMax]
    USBBufferCount Var Byte

    ' ************************************************** **********
    ' * main program loop - remember, you must keep the USB *
    ' * connection alive with a call to USBService every couple *
    ' * of milliseconds or so... *
    ' ************************************************** **********
    low led
    usbinit ' initialise USB...
    ProgramStart:

    gosub DoUSBIn
    toggle led
    pause 100
    gosub DoUSBOut
    toggle led
    pause 100
    goto ProgramStart

    ' ************************************************** **********
    ' * receive data from the USB bus *
    ' ************************************************** **********
    DoUSBIn:
    USBBufferCount = USBBufferSizeRX ' RX buffer size
    USBService ' keep connection alive
    USBIn 1, USBBuffer, USBBufferCount, DoUSBIn ' read data, if available
    return

    ' ************************************************** **********
    ' * wait for USB interface to attach *
    ' ************************************************** **********
    DoUSBOut:
    USBBufferCount = USBBufferSizeTX ' TX buffer size
    USBService ' keep connection alive
    USBOut 1, USBBuffer, USBBufferCount, DoUSBOut ' if bus available, transmit data
    return

  4. #4
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898

    Default

    this section will cause you a problem
    Code:
    gosub DoUSBIn
    toggle led
    pause 100
    gosub DoUSBOut
    toggle led
    pause 100
    goto ProgramStart
    Why? because of this section
    Code:
    ' ************************************************** **********
    ' * main program loop - remember, you must keep the USB *
    ' * connection alive with a call to USBService every couple *
    ' * of milliseconds or so... *
    ' ************************************************** **********
    The easy way will be to use Darrel's instant interrupts. Here's the famous POST 148
    http://www.picbasic.co.uk/forum/show...&postcount=148
    Last edited by mister_e; - 14th April 2008 at 21:14.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  5. #5

    Default

    Iam from begining not include delay of 100ms but I added them to give indication for led about where the code stuck and find that It's stuck in DousbIn subroutine. now I'm removed the delay time and the same problem , I don't know where is the problem ????????????

  6. #6
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898

    Default

    Code:
    DoUSBIn:
            USBBufferCount = USBBufferSizeRX ' RX buffer size
            USBService ' keep connection alive
            USBIn 1, USBBuffer, USBBufferCount, TimeOut ' No data?, Getout of here
    TimeOut:
    return
    Do you still have the USB connection error?

    Maybe better to begin with USBDemo and work around with? There's a load of information in that thread (ok ~180 post to read but)
    Last edited by mister_e; - 14th April 2008 at 21:38.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  7. #7

    Default

    I have the same problem I can't use your USBDEMO since I don't have pic18f4450 but I have pic18LF445, so in microcode when I switch to this model I have compile error

    ERROR: Macro USBINIT? not found in macro file.
    ERROR: Macro USBSERVICE? not found in macro file.
    ERROR: Macro USBIN?CBBL not found in macro file.
    ERROR: Macro USBOUT?CBBL not found in macro file.

  8. #8
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898

    Default

    You must mean 18F4455, so just use the files in attachment. Tested and work as expected here. i just forgot to change the device name in the top comments...

    @Darrel... link to this one too
    Attached Files Attached Files
    Last edited by mister_e; - 14th April 2008 at 22:39.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  9. #9

    Default

    There is an error:
    ERROR Line 78: Syntax error. (USBDemo_4455.pbp)

    this line : UCFG = %00010100 ' enable internal USB pull-up, Full speed USB


    but when I comment it , it's compiled without any errors

  10. #10
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898

    Default

    HA! so that mean you may use V2.47 of the compiler right?

    I thought i would remove the
    Code:
    UCFG    var byte EXT
    line because some had 'Redefinition of VAR' problem with V2.50.. anyways, it should work, unless you know what else to add

    I'm a bit mixed-up... your thread name is Need Help with USB using PIC18F2455
    Last edited by mister_e; - 14th April 2008 at 22:53.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  11. #11

    Default

    yes I'm use PBP247 , oky I compile and load the hex file but the same problem

    I have some questions:
    1)Can I use any type of the 470nF capacitor because I'm not use ceramic I use mica
    2) Does I need special way to load my hex file to pic or any programmer, I use superpro 280U programmer.

  12. #12
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898

    Default

    You shouldn't have any problem with mica cap.

    In your device programmer software you may have an option to program the config fuses setting or not. I don't have this specific programmer and seems their software refuse to install on my machine... so i can't really help you on that.

    Have you already program other PICs with this one?
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  13. #13

    Default

    I don't have any problems with this programmer , I used it many times and it has a high performance , and you can set config fuses using programmer software or from PICBASIC , and here we add them using picbasic so it's updated automatically in programmer software
    I will attach the configuration fuses photos

    ' Pic Configuration
    ' =================
    asm
    __CONFIG _CONFIG1L, _PLLDIV_1_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L
    ; ; ; USB clock source comes from the 96 MHz PLL divided by 2
    ; ; [OSC1/OSC2 Src: /1][96 MHz PLL Src: /2]
    ; No prescale (4 MHz oscillator input drives PLL directly)


    __CONFIG _CONFIG1H, _FOSC_XTPLL_XT_1H & _FCMEN_OFF_1H & _IESO_OFF_1H
    ; ; ; Oscillator Switchover mode disabled
    ; ; Fail-Safe Clock Monitor disabled
    ; XT oscillator, PLL enabled, XT used by USB

    __CONFIG _CONFIG2L, _PWRT_ON_2L & _BOR_ON_2L & _BORV_2_2L & _VREGEN_ON_2L
    __CONFIG _CONFIG2H, _WDT_OFF_2H
    __CONFIG _CONFIG3H, _MCLRE_ON_3H & _LPT1OSC_OFF_3H & _PBADEN_OFF_3H & _CCP2MX_ON_3H
    __CONFIG _CONFIG4L, _STVREN_ON_4L & _LVP_OFF_4L & _XINST_OFF_4L & _DEBUG_OFF_4L
    endasm
    Attached Images Attached Images     

  14. #14

    Default

    anyone can help ??

  15. #15

    Wink

    Oky now It's working fine , I discover the problem is from connector is not soldering perfectly with wires so I cut the connector cable and connect it directly and working fine

  16. #16
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898

    Default

    yeah it happen

    Since it's a high level programmer (645$) I was a bit worried about why on earth it doesn't work... Glad to hear you find it!
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  17. #17

    Default

    thanks mister but I want to ask why using assembly code in PICBASIC code for usb , is't not possible to do this without assembly code

  18. #18
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898

    Default

    Why... personal choice i guess, i had fun... (yes Darrel... i was in a good MOON... happy now )

    But yes it's possible, the only few line of asm you need to keep are the config fuses... the others can be replaced with regular PBP lines.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

Similar Threads

  1. USB CDC Communications for Dummies!
    By Squibcakes in forum USB
    Replies: 104
    Last Post: - 15th January 2014, 13:43
  2. USB Bootloader.
    By HenrikOlsson in forum USB
    Replies: 22
    Last Post: - 2nd May 2013, 02:46
  3. Simple USB Comms Problem
    By awmt102 in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 6th January 2010, 20:17
  4. One USB keyboard to Two USB Ports
    By picnaut in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 11th June 2009, 00:04
  5. USB PIC without USB Connection
    By Tissy in forum mel PIC BASIC Pro
    Replies: 9
    Last Post: - 26th December 2005, 17:39

Members who have read this thread : 1

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts