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:
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.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
Any suggestions?




Bookmarks