Shop OBEX P1 Docs P2 Docs Learn Events
SmartPin USB (was: SmartPin state machine modes) - Page 12 — Parallax Forums

SmartPin USB (was: SmartPin state machine modes)

167891012»

Comments

  • jmgjmg Posts: 15,140
    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.
  • RaymanRayman Posts: 13,797
    Interesting. USB serial without drivers sounds great.

    Can P2 do 12 Mbaud with smart pins?
  • jmgjmg Posts: 15,140
    Rayman wrote: »
    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.

  • RaymanRayman Posts: 13,797
    Sorry, I meant using that FTDI UART chip...
  • jmgjmg Posts: 15,140
    Rayman wrote: »
    Sorry, I meant using that FTDI UART chip...
    Ah, that depends...

    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
  • RaymanRayman Posts: 13,797
    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...
  • tonyp12tonyp12 Posts: 1,950
    edited 2016-02-26 23:13
    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/
  • jmgjmg Posts: 15,140
    Rayman wrote: »
    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.
  • RaymanRayman Posts: 13,797
    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...
  • tonyp12tonyp12 Posts: 1,950
    edited 2016-02-27 17:12
    Yes you will use a API, or if you really want you could go one step lower and use Windows USB HID.dll

    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
  • cgracey wrote: »
    kwinn wrote: »
    Cluso99 wrote: »
    kwinn wrote: »
    Cluso99 wrote: »
    cgracey wrote: »
    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.
Sign In or Register to comment.