This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

GPIO to USB EVM Adapter

Other Parts Discussed in Thread: TLC59116

 Hello,


I have recently purchased the GPIO to USB EVM Adapter and am having trouble configuring the 8 GPIO signals as inputs using the provided "USB Interface Adapter GUI-v1.10" application.  Toggling the different checkboxes in the GPIO group box section and hitting Read/Write either changes the signals from an output driving high or an output driving low.  I have yet to get the signals to tri-state as an input.  What do I need to do to configure the 8 pins as inputs?

Also, any help on using the “USB Adapter Driver.dll” library to configure the device would be appreciated too.  Are the following routines “gpioReadWrite()”, “setControl ()”, or “getControl()” correct for setting the pins as inputs an reading the values?.

Sincerely,

Matthew

  • Matthew,

    The USB-TO-GPIO Reference GUIs and Libraries, which it sounds like you have, are about all the documentation we have on the USB-TO-GPIO; the original developers have moved on and we can't ask them for more information. 

    It does seem that the GUI you reference appears to support GPIO, but in fact doesn't, really. Your time is probably better spent trying things out with the DLL and seeing what works. I'll dig around some more to see if I can find any examples that use the GPIO, and if I find something, I'll post it here.

    Sorry I can't offer more at this time - 

  • Rick,

    A small usage document on the library or example code would have have gone a long way.  I have been using the Visual Studio Object browser to look at the class members and make a best guess how to use them.

    Thank you for investigating the issue and please post any more finding,

    Matthew

  • Yeah, I know - unfortunately, as the README says, "At this point, there is not any further documentation on this library."

    I'll see what I can find...

  • Hi Rick,

    We are also facing the same issue. We are not able to set the GPIO pins as input through the EVM GUI or through the dll calls. Has the issue been sorted?  If yes can you elaborate on how to solve this. 

    Thanks,

    Atul Srivatsan

  • Unfortunately, no, the issue remains. Suggestion given above is the best I can offer, or suggest you consider a commercial device that is supported for this type of usage.

  • I'm having a similar problem, but with trying to set outputs.

    Nothing I do seems to make the IO lines wiggle. Which for a GPIO wiggler is pretty crap TBH.

    Since the DLL has no documentation I have rewritten it to use the windows USB HID functions, which is working great for talking over I2C.

    I have based my commands on this document: http://www.ti.com/lit/ml/sllu093/sllu093.pdf linked from http://www.ti.com/tool/usb-to-gpio

    To send I2C, I write 0x00 (needed for all HID writes), 0x14 (I2C write command code), 0x20 (device address), 0x00 (register address), 0x01 (num bytes), 0xA5 (data).

    In response I get 0x00 (HID thingy), 0x94 (I2C write ack), 0x00 (success) As expected, and scoping the bus shows me the I2C transaction.

    However when trying to set GPIO outputs I send: 0x00 (windows HID thingy), 0x16 (read/write port 0 command code), 0x03 (all outputs except 0 and 1 (I2C lines)), 0x88 (outputs 3 and 7).

    In response I get 0x00 (HID thingy), 0x8F (Expecting 0x96 here), 0x00 (success), 0x07 (expected inputs here), .... (no idea)

    This is all with firmware version: 1.0.10, I managed to update to 2.0.19, but in that the device does not respond at all to the read/write port 0 command code.

    Is there any more documentation for 1.0.10 / 2.0.19? Or is the firmware code available? If it is can I either see it / have a TI engineer have a look and tell me what command codes to send to get GPIO to work correctly?

    Thanks,

    Andrew

  • Does the lack of documentation on this device mean that any new EVMs will not use this?  Is there any source code for any of the programs that are provided with the EVM.  The source code for the program that came with my TLC59116FEVM would be a good starting point. 

    Regardless if the software could be useful to learn how to write code for the USB to IIC/GPIO converter, this program (TLC59116 EVM Software.exe) has several bugs and resembles some internal test program more than it does a finished product for public use.  I am somewhat mystified as to why TI would distribute such second rate software with a module that is intended to demonstrate an IC.  This code seems to indicate that the product engineer for the 59116 is not interested in demonstrating his or her product in the best way possible.  This software does not raise my confidence that the product being demonstrated is produced by a company that cares to do the best it can do.

  • Hello,
     
    We are using a USB-to-GPIO adaptor, and are facing the same problem.
    We are not able to read the GPIO pins through the EVM GUI.
     
    The command '0x16' seems to be sent to the adaptor correctly, but the wrong response code '0x8F' is returned by the adaptor.
     
    About this problem, was there progress during six months?
    Or, does it have still the same problem?
     
    Thanks,
     
    Tsuneo Danno
  • I'm afraid there has been no progress. TI seem to have no idea and aren't willing to look into it. As far as I'm concerned they're selling a product that doesn't work.

    We contacted TI regarding this, they informed me that the developers had left and so they had no idea.

    We are currently using a bus pirate to do this: http://dangerousprototypes.com/docs/Bus_Pirate Which is much better documented and actually works.

  • Hello Andrew,

    I understood that the problem had not been improved. I am expecting a little bit that problem be improved because it is active product.

    Thank you for information about a bus pirate. I will take a look.

    Thank you for your advice.

    Tsuneo Danno

  • Just for reference:

    I succeeded in wiggling the outputs programatically.  The gpio input function seems to be broken in the dll, so output control only works when all lines are set to be outputs.  In the absence of any meaningful documentation, I use the notion that because a 1 looks like an I, it represents 'input' & a 0 looks like a O, then it represents 'output', and the ReadMask parameter sets the port bit direction.  Accordingly:

    status = myobject.gpioReadWrite(&H0, &HFE, AdapterRead)

    sets all lines as outputs & pulls bit 0 low.  Even then, having achieved what we want to achieve, status = driveError{5}.  

    I wanted to use the USB adapter to simulate button presses on a test harness so this works OK.  

    I have also used the I2C routine & that seems to work OK.