Pulling this back on topic, I see FTDI have a new device FT260.
No FTDI drivers needed on this one
This has higher Icc than FT231X, (Icc similar to FT51A) but is still Full Speed only, and has a strange eFUSE (OTP?!) Vcc of 3.8V which is less flexible than their FT51A, but aside from the eFUSE, looks like a FT51A variant.
OTP seems a blast from the past...
Besides HID, the other interesting detail, is a change in how they manage Baud
The UART can support baud rates from 1.2 Kbaud to 12 Mbaud defined by the following function.
Baud = 48MHz / BaudDivisor.Fract
The baud divisor is used to divide the operating clock frequency to the desired baud rate.
It can take any value between 4 and 40000 with the added option of adding a fractional component in the order of 1/8ths.
Example 115200 -> 48MHz/( 416+5/8) = 115,211.5212
(numeric precision of 100 ppm)
This means they have improved to now cover the same Baud Granularity as EXAR, and like EXAR you can set 12MBd (but FS USB sustains something over 9 Mbd)
Unlike EXAR, FTDI have no user-9th bit support, but they do allow 7,8,P,1,2 for frames of 8,9,10,11,12 bits
If P2 gets the 'NCO with edge reset on start' for Baud (as well as USB), that should give the same Baud formula at 48MHz.
FT260 buffer sizes are vague, (64?128?) but seem a lot less than FT231X, so while they can set 12MBd, the sustained flow is likely to be much lower.
Interesting. USB serial without drivers sounds great.
Can P2 do 12 Mbaud with smart pins?
Do you mean Full Speed USB ? Yes, I believe that is the target, with pins doing the bit-level stuff, and bytes & above done in a COG.
Hopefully Device and Host support will be possible.
HID don't need a driver, and there many HID libraries source code to make a direct data connection easy for your C# program etc https://simplehidlibrary.codeplex.com/
Oh, I see now they do it as a HID... That's why they don't need a driver.
Didn't know that was possible...
Reading the finer details in the DOCs, I see they can do both i2c & UART at the same time,
as HID Interface-0 and Interface-1.
P2 software layers should be able to do something similar.
wait a minute... If you treat the connection as HID, that must mean you can't connect to it as if it were a COM port... Must need to use some special API...
As someone said, "In most countries you have laws. In America you have lawyers."
And then they came to Australia too.....
How a case can take 8 years in the Supreme Court, you win both the case and appeal, and at the end be $2M out of pocket is beyond my comprehension. Believe me, I know this to be true.
Job security for lawyers, and since most politicians are lawyers this is unlikely to change. When deciding who to vote for being a lawyer is a big black mark against a candidate for me.
How true!
And the judges are ex-baristers! Nothing like keeping it in the family
yep, one big happy incestuous family.
I've heard that it's important to clean fish immediately after catching them. Otherwise, the parasitic worms that are in the stomach will begin eating their way out, right into the flesh.
This is true (anisakis), but only if you eat them raw. If you freeze them below -20 degrees for 96 hours (or -35° for 24h or cook above 60° internal temp for 1 minute) than its OK ... take care when you eat sushi.
Comments
No FTDI drivers needed on this one
This has higher Icc than FT231X, (Icc similar to FT51A) but is still Full Speed only, and has a strange eFUSE (OTP?!) Vcc of 3.8V which is less flexible than their FT51A, but aside from the eFUSE, looks like a FT51A variant.
OTP seems a blast from the past...
Besides HID, the other interesting detail, is a change in how they manage Baud
The UART can support baud rates from 1.2 Kbaud to 12 Mbaud defined by the following function.
Baud = 48MHz / BaudDivisor.Fract
The baud divisor is used to divide the operating clock frequency to the desired baud rate.
It can take any value between 4 and 40000 with the added option of adding a fractional component in the order of 1/8ths.
Example 115200 -> 48MHz/( 416+5/8) = 115,211.5212
(numeric precision of 100 ppm)
This means they have improved to now cover the same Baud Granularity as EXAR, and like EXAR you can set 12MBd (but FS USB sustains something over 9 Mbd)
Unlike EXAR, FTDI have no user-9th bit support, but they do allow 7,8,P,1,2 for frames of 8,9,10,11,12 bits
If P2 gets the 'NCO with edge reset on start' for Baud (as well as USB), that should give the same Baud formula at 48MHz.
FT260 buffer sizes are vague, (64?128?) but seem a lot less than FT231X, so while they can set 12MBd, the sustained flow is likely to be much lower.
Can P2 do 12 Mbaud with smart pins?
Hopefully Device and Host support will be possible.
Present FPGA design has 80MHz SyCLK and /N ( N >= 3) so it can do
13.33333 MBd or 11.4285 MBd etc
If Chip gets fractional Baud into the next build, (likely?) then it could do
80/(6+5/8) = 12.0754MBd
Fractional Baud will allow Video & USB related Clocks, to give better Baud coverage.
Even then, you will need handshake control as USB cannot sustain 12MBd, but the P2-Bridge link can fill the buffers at that.
I see EXAR XR21B1421 HID UART has 512 byte FIFOs
Didn't know that was possible...
https://simplehidlibrary.codeplex.com/
Reading the finer details in the DOCs, I see they can do both i2c & UART at the same time,
as HID Interface-0 and Interface-1.
P2 software layers should be able to do something similar.
If you used a API that is on top of HID.dll that is made for data_over_hid, it would look something like this:
using HIDTOUART_DLL;
if (HIDTOUART.HidUart_GetNumDevices(ref j, vid, pid)==0) {
Console.Write("Found " +j+ " counts of _name_ HID devices. ");
}
HIDTOUART.HidUart_Write(device, TXbuffer, 1, ref j) // send data
As data is sent over HID's reports, it would not be to hard to directly use hid.dll for something basic
https://msdn.microsoft.com/en-us/library/windows/hardware/jj126202(v=vs.85).aspx
example what has to be done on the P2 side and Widows/Linux side:
https://github.com/obdev/v-usb/tree/master/examples/hid-data
This is true (anisakis), but only if you eat them raw. If you freeze them below -20 degrees for 96 hours (or -35° for 24h or cook above 60° internal temp for 1 minute) than its OK ... take care when you eat sushi.