USB CDC Communications for Dummies!


Results 1 to 40 of 105

Threaded View

  1. #29
    Join Date
    Nov 2008
    Posts
    12

    Default USB to Serial

    Hi Guys

    I'm pretty new to all of this, but here's my attempt.

    I've attached a schematic of the device i am using.

    What i am attempting to make here is some sort of USB to Serial Port Converter.

    The code i loaded onto the chip is as follows:

    Code:
    '****************************************************************
    '*  Name    : UNTITLED.BAS                                      *
    '*  Author  : [select VIEW...EDITOR OPTIONS]                    *
    '*  Notice  : Copyright (c) 2009 [select VIEW...EDITOR OPTIONS] *
    '*          : All Rights Reserved                               *
    '*  Date    : 2009/01/02                                        *
    '*  Version : 1.0                                               *
    '*  Notes   :                                                   *
    '*          :                                                   *
    '****************************************************************
    @   __CONFIG	_CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L
    @	__CONFIG	_CONFIG1H, _FOSC_HSPLL_HS_1H & _FCMEN_OFF_1H & _IESO_OFF_1H
    '_CONFIG1H, _FOSC_XTPLL_XT_1H 
    @	__CONFIG	_CONFIG2L, _PWRT_ON_2L & _BOR_ON_2L  & _BORV_28_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
    
    ' ****************************** Configure Hardware *********************************************
    trisb = %11111100
    trisc = %10111111       	' Set TX (PortC.6) to out, rest in
    spbrg = 25            		' Calculate ((CPU speed mhz/Baud)/16)- 1  25 = 115200 baud  EX:((48000000/115200)/16)-1
    rcsta = %10010000       	' Enable serial port and continuous receive
    txsta = %00100000       	' Enable transmit and asynchronous mode/brgh = 0 bit 2
    baudcon =%00001000			' Bit3 = 1: High speed usart 16 bit  
    
    '***************************** Variables ******************************************
    USBBufferTX Var Byte[1]
    USBBufferRX var Byte[1]
    USBBufferCount Var Byte
    SerBufferTX Var Byte
    SerBufferRX var Byte[1]
    BufferRX var Byte
    SerBufferCount Var Byte
    Indexer var byte
    Xmit_Start var bit									' Start serial data transmission
    Status_Bits var byte								' Status bits to Pc
    Data_Delay var word									' Delay for dataout
    Data_Out var word									' Data 
    
    Status_Bits = 0
    
    LED	Var	PORTB.1
    
    Define  OSC     48
    
    	USBInit
    	high led
    	pause 1000
    	Low LED		' LED off
        USBService
    
        for Indexer = 0 to 0
    	   USBBufferRX[Indexer]= 0
        next
    
        usbbuffercount = 1
        
        
    main:
        goSUB usb_rx
        goSUB com_rx
    goto main    
    
    	' Transmit USB Data     
    USB_TX:
    					' TX buffer size
    USBService 
    USBOut 3, serBufferrX, USBBufferCount, main 			' Transmit data		
    RETURN
    
    	' Receive USB Data 
    USB_RX: 
    USBService 											
    USBIn 3, USBBufferRX, USBBufferCount, exitsub 		' Receive data if available,then exit
    serbuffertx=usbbufferrx[0]
    goSUB com_tx
    return
    'GOSUB Main
    
    
    'Serial Receive
    
    COM_RX:
    hserin 1, exitsub, [bufferrx]
    serbufferrx[0]=bufferrx
    goSUB usb_TX
    goSUB main
    
    'Serial Transmit
    COM_TX:
    hserout [serbuffertx]
    RETURN
    
    exitsub:
    return
    Now this code compiles and i can connect via a hyperterminal to both the USB virtual and the physical Serial port. However if i enter anything in either of hyperterminals, it gives nothing and after a while of constant typing the hyperterminals start freezing on me. So i take it i've done something horrifically wrong.

    Any suggestions?
    Attached Images Attached Images  

Similar Threads

  1. Simple USB Comms Problem
    By awmt102 in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 6th January 2010, 20:17
  2. One USB keyboard to Two USB Ports
    By picnaut in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 11th June 2009, 00:04
  3. USB CDC help..
    By jchandir in forum USB
    Replies: 6
    Last Post: - 22nd November 2008, 21:23
  4. Replies: 4
    Last Post: - 5th November 2008, 16:21
  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 : 2

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