power good GPIO3 pull-up resistor

  • Using GT863-PY as a replacement for GX110-Py.


    The GX110 has an internal pull up resistor at GPIO 3 (power good signal at power connector) and I can measure 2.7 V. Pulling it to ground changes the input state which is detected by SW.


    But now I have several GT863 that show zero voltage at an open GPIO 3.


    Is an electrical failure of some modules or is it a general change in design wich has not been noticed?

  • Yes, I found the Notice in the manual. I also found different ranges of command parameters for different firmwares.


    #CGMR: 10.01.020
    #GPIO: (1-10),(0-4),(0-4),(0-1)


    #CGMR: 10.00.027
    #GPIO: (1-10),(0-2),(0-3)


    The older firmware does support setting the pull-up and pull-down and it works (almost) fine. Almost, because it works if you use AT commands.


    "Easy script python" manual states that GPIO.setIOdir( ) does support out (1), alternate (2), input (0) and input with pull-down (3) but the required pull-up is missing. The pull-down mode actaully works, the 0,06 V that I can measure at an open GPIO is pulled to 0,000V when using the pull-down mode.


    Please notice to avoid confusion: the command for "input with pull-down" is either AT#<pin>,4,0 is or GPIO.setIOdir(<pin>,<value>,3). Not only the numbers 3 and 4 have swapped their meaning the parameter order has changed as well.


    Is 10.00.027 the latest firmware? Since the firmware download section has been taken offline I'm not up to date anymore. If you read older posts you'll find most answers form support starting with the question "Are you using the latest firmware?". Which sounded almost like "Have you tried turn it off and on again?"


    What do you say to that mess. I urgently need a solution for a 100+ modules. Can you update the firmware either to take the parameter to support pull-up or set the pull-up and pull-down status exactly the same way as in the replaced GM862. In my particular case I want the pull-up at GPIO3 back.

  • Yes, I've mixed xx.00.xxx and xx.01.xxx.


    As mentioned above, the pull-up is available via AT-commands. The GPIO library does support pull-up only pull-down, see AT-reference r23 page 296


    Using the AT command at this point of SW would spoil the whole class-design.

  • Hi uli,


    from our Telit Support:


    AT_reference pag. 296 shows AT#GPIO command for the Interface Style (SELINT 0/1); 10.01.020 fw version operate with SELINT 2 by default, so you have to look at #GPIO command of page 298:
    AT#GPIO = 3,3,0 //sets gpio 3 as input with enable Pull-Up
    AT#GPIO = 3,4,0 //sets gpio 3 as input with enable Pull-Down
    Python doesn't allow to set pull-up, however you can always use the MDM module, e.g.:
    a = MDM.send('AT#GPIO = 3,3,0', 0)
    b = MDM.sendbyte(0x0d, 0)
    As additional informations:
    The GPIO3 is internally connected from the module inside to the Power connector outside with a 4,7K resistance in series. The internal pull-up of the GE864-QUAD-V2 is around 80K. The sum of 80 and 4,7K provide the total pull-up resistance to 2,8V.
    Are you using an AC adapter provided by Telit? Some of them has GPIO3 bridged to GND.


    Do AT Commands reported below work?




    Regards,


    Hüseyin

  • Hi Hüseyin,


    You're right with the page and I use selint 2 otherwise things I described above wouldn't have worked:


    Quote

    The older firmware does support setting the pull-up and pull-down and it works (almost) fine. Almost, because it works if you use AT commands.


    "Easy script python" manual states that GPIO.setIOdir( ) does support out (1), alternate (2), input (0) and input with pull-down (3) but the required pull-up is missing. The pull-down mode actaully works, the 0,06 V that I can measure at an open GPIO is pulled to 0,000V when using the pull-down mode.


    With your last post you are confirming this, but MDM.send() is exactly what I don't want to do!


    Easy Script in Python is meant to be easy but it's not if you have to do workarounds like this here or that in "GPIO.getIOvalue() occasionally returns 5 or crashes". I'm quite disappointed from that "easy" stuff.


    Can't you just add the pull-up parameter to GPIO.setIOdir() as you have done it for pull-down, Please?

  • Hi uli,


    unfortunately the request
    of adding a parameter is not possible.




    [font=&quot]Regarding
    GPIO.getIOvalue() what did you mean with
    "crashes"? The command is not executed? The script stops executing?
    The whole module stop working? [/font]




    Regards,


    Hüseyin

  • Hi uli,


    I understand your frustration. Changes require e.g. many internal processes and new certifications. Not every change is suitable for every customer. Telit provides a great support and deserves respect.


    Regards,


    Hüseyin