Re: PIC18F14K50 and USBin
The USBIN command returns the number of bytes received in the cnt variable.
You should use that variable for the number of bytes to be sent by USBOUT.
Code:
USBOut 3, buffer, cnt, outloop
Otherwise, if it only receives 1 byte, and sends 3 bytes, 2 of them will be garbage characters left over in the buffer.
Re: PIC18F14K50 and USBin
I seem to explain badly.
The command USBIN doesn't write bytes to the buffer one after another.
I send 3 bytes and hope that all of them would be sent into the buffer (array of 3). But really after the first received byte the program writes something to the other 2 buffer bytes and begins receiving next byte. Then adds to it 2 its own etc...
One fact is clear: all those nowhere bytes are the same every time they are written. So I think there is some cause why those strange bytes appeared.
Re: PIC18F14K50 and USBin
Quote:
Originally Posted by
ybosco
I send 3 bytes and hope that all of them would be sent into the buffer (array of 3). But really after the first received byte the program writes something to the other 2 buffer bytes and begins receiving next byte. Then adds to it 2 its own etc...
With CDC, you have no control over how many bytes are received at a time. That depends on the operating system of the PC.
You may get 3 bytes, or you may only get 1, you have to account for the number of bytes received.
Your belief that USBIN is writing characters that it didn't receive, is completely incorrect.
Those characters are already in the buffer array.
If you clear the array before doing the USBIN you will see the difference.
Read Post #2 again, which will fix your sample code.
Re: PIC18F14K50 and USBin
Hi Derrel,
I would like to use the USB connection to the PC for the first time since I do not have the serial port available to me anymore.
I am asking if there is a complete sample program that shows me everything on the USB usage to exchange data to and from the PC.
Are there some hardware advices ? or just use d+ and d- to the PIC ?
The pic is the 184550 and the compiler is PBP 2.50.
Thanks in advance for the assistance on the matter.
Best regards,
Ambrogio IW2FVO
Re: PIC18F14K50 and USBin
To replace a COM port with USB, you'll want to use the CDC protocol.
Start with this thread ...
USB CDC Communications for Dummies!
http://www.picbasic.co.uk/forum/showthread.php?t=5806
Re: PIC18F14K50 and USBin
Thanks Derrel,
I red a lot of posts as indicated.
I am asking if there is a "final summary "available in which the final hardware and software configuration is described.
In my personal case I shall use the 18f4455 device and the crystal oscillator that could be 20 Mhz or 4 MHz. No bus power will be used.
What will be the configuration set up ? ( include, define ... etc )
What is the program to callup every cycle in my PBP program to comunicate and to receive USB data?
I am sorry but reading all the above posts I still not have a clear understanding.
Thanks for any help.
Best regards,
Ambrogio
iw2fvo
Re: PIC18F14K50 and USBin
Quote:
Originally Posted by
Darrel Taylor
I have to note that that thread doesn't write anything useful about clock settings. The line "DEFINE OSC 48" looks very naively. :-) It is not enough.
By the way I managed partly to solve my problem. I found that if I set the system clock as high as 48 MHz then the CPU functions unstable. I got some other problems with another type of operations besides the USB interface.
Now my setting are the following:- clock frequency- 12 Mhz;
- 4xPLL -enabled;
- CPUDIV=10;
That is the system clock is 16 MHz and USB clock is 48 MHz.
But I had no time to check USB operations at these conditions. I'll check and will report lately.
Re: PIC18F14K50 and USBin
Quote:
I have to note that that thread doesn't write anything useful about clock settings. The line "DEFINE OSC 48" looks very naively. :-) It is not enough.
Maybe it would help if you read the whole thread, or at least to post #14
http://www.picbasic.co.uk/forum/show...8359#post68359
And the data sheet is VERY helpful too.
Re: PIC18F14K50 and USBin
Quote:
Originally Posted by
mackrackit
And the data sheet is VERY helpful too.
Of course, it is very helpful!
Still not checked USB with new clock settings... It might happen tonight.