CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

USB fuse bits in 18F45K50

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
dileep



Joined: 24 Sep 2013
Posts: 2
Location: ERANAKULAM

View user's profile Send private message

USB fuse bits in 18F45K50
PostPosted: Tue Sep 24, 2013 10:30 pm     Reply with quote

Can anybody tell the USB fuse bits in PIC18F45K50 ?
I am using 16MHz crystal ...
I used the fuse bits as follows,
Code:
#fuses NOCPUDIV, PLLEN, PLL3X, HSH, PRIMARY, NOIESO, NOFCMEN
#use delay(clock=48MHz)

I checked it in hardware. But it didn't work.

Also I can't simulate it in proteus ver 8. The Proteus library does not contain PIC18F45K50.

Is there any different solution to real time simulation!!!!
oxo



Joined: 13 Nov 2012
Posts: 219
Location: France

View user's profile Send private message

PostPosted: Wed Sep 25, 2013 12:47 am     Reply with quote

I looked it up in CCS IDE, and the fuses I see there for the 45K50 - USB are

LS24MHX
LS48MHZ
Ttelmah



Joined: 11 Mar 2010
Posts: 19559

View user's profile Send private message

PostPosted: Wed Sep 25, 2013 2:14 am     Reply with quote

The LS24/LS48 bits are only used for low speed USB. Provided the code is setup to use full speed, the FSEN bit will be set, and these do nothing.

Question obviously is to post the rest of the first few lines of the main code (where you load whatever USB driver you are using).

Have you done a basic 'flash an LED' test, and verified that the CPU is running, and running at the expected rate?. What voltage are you running?. How have you powered Vusb?. Are you using the internal regulator?. You don't have NOMCLR selected, so is the MCLR pin pulled high?. What compiler version?.

Best Wishes
dileep



Joined: 24 Sep 2013
Posts: 2
Location: ERANAKULAM

View user's profile Send private message

USB fuse bits in 18F45K50
PostPosted: Wed Sep 25, 2013 5:24 am     Reply with quote

Thanks for the valuable replies......


I got the code from google search,
It is for PIC18F4550, and as per the code I downloaded usb HID terminal ver1.0

For PIC18F45K50 I changed the fuse bits...
I changed the crystal to 12MHz ............

It detects my USB device and can send data,
But the Reset function is not working.....

Please help me to correct the fuse bits....
How can i change VID and PID ?
which are the fuse bits to give internal ref volt ?

My compiler version is 5.010
The code is as follows
Code:
#include <18F45K50.h>
#device ADC=8

#fuses NOCPUDIV,PLLEN,PLL4X,HSH,PRIMARY,NOIESO,NOFCMEN //12mhz crystal, 48mhz clock for pic and usb
#use delay(clock=48MHz)

//////#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN////////////

#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//#include "term.c"

#define LED1 PIN_B4
#define LED2 PIN_B6
#define LED3 PIN_B5

//Transmit and Receive Packet Size
#define USB_CONFIG_HID_TX_SIZE 1
#define USB_CONFIG_HID_RX_SIZE 8

/*******VENDOR ID AND PRODUCT ID********/

#define USB_CONFIG_PID 0001         //Chnage Vendor Id and Product Id
#define USB_CONFIG_VID 4660         //So that they will work with my Application
/***************************************/

/*******LCD Pin Configuration******/
#define LCD_ENABLE_PIN PIN_E2
#define LCD_RS_PIN PIN_E0
#define LCD_RW_PIN PIN_E1
#define LCD_DATA4 PIN_A1
#define LCD_DATA5 PIN_A2
#define LCD_DATA6 PIN_A3
#define LCD_DATA7 PIN_A5
/***********************************/

#include<pic18_usb.h>
#include<usb_desc_hid.h>
#include<usb.c>
#include<lcd.c>
//#include "USBdsc.c"
//Macro Definition for LED ON and OFF
#define LED_ON(x) output_low(x)
#define LED_OFF(x) output_high(x)

void usb_debug_task(void)
{
        static int8 last_connected;
       static int8 last_enumerated;
       int8 new_connected;
       int8 new_enumerated;

       new_connected = usb_attached();
       new_enumerated = usb_enumerated();

       if (new_enumerated)
          LED_ON(LED1);
       else
          LED_OFF(LED1);

       if (new_connected && !last_connected)
          printf("\r\n\nUSB connected, waiting for enumaration...");
       if (!new_connected && last_connected)
          printf("\r\n\nUSB disconnected, waiting for connection...");
       if (new_enumerated && !last_enumerated)
        printf("\r\n\nUSB enumerated by PC/HOST");
       if (!new_enumerated && last_enumerated)
        printf("\r\n\nUSB unenumerated by PC/HOST, waiting for enumeration...");

       last_connected=new_connected;
       last_enumerated=new_enumerated;
}

void main(void)
{
   
    unsigned char in_data[8];
   // unsigned char c[6]="hello";
    unsigned char table[40]="Hello how are you";
    unsigned int i,s;
   
    lcd_init();       
    lcd_putc("\fWELCOME");
    usb_init_cs();


    while(1)
    {
        usb_task();
        usb_debug_task();
        if(usb_enumerated())
        {
            if(usb_kbhit(1))
            {
                lcd_gotoxy(1,2);
                lcd_putc("          ");
                usb_get_packet(1,in_data,8);
                printf("\r\nReceived Data: ");
                for(i=0;table[i];i++)
                {
                usb_put_packet(1,&table[i],1,USB_DTS_TOGGLE);             
                delay_ms(10);
                }
               
                for(i=0;in_data[i];i++)
                {
                    printf("%c",in_data[i]);   
                    //Send the Recevied Data to Serial Port
                    lcd_gotoxy(1+i,2);
                    lcd_putc(in_data[i]);
                }
                for(i=0;i<8;i++)
                {
                    in_data[i] = '\0';   
                }

            }
        }         
    }

 

Thanks.....
DARS_23



Joined: 31 Oct 2015
Posts: 1

View user's profile Send private message

PostPosted: Sat Oct 31, 2015 3:32 pm     Reply with quote

You must use #fuses MCLR
and for 12Mhz crystal need #fuses PLL3X //instead pll4x see datasheet oscillator modes
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group