GPIO pins not working (PicoCOM 1.2 and StartInf1)

  • Hello,

    I am trying to get a starterkit for linux development working. The kit consists of a PicoCOM 1.2 and a StartInf1 board v.1.10.

    Looking at the documentation provided at F+S website, things do not match.


    The main cause is from my understanding that the StartInf board is the one for the (old) PicoCom (please see attached photo).


    My problem is that I cannot get certain GPIO pins running.


    Examples:
    1) PicoCOM 1.2. GPIO reference card says pin 69 is GPIO_G and is accessible through /sys/class/gpio/76. This pin connects to StartInf J11_13 and works as expected.

    2) PicoCOM 1.2. GPIO reference card says pin 70 is GPIO_H/PWM and is accessible through /sys/class/gpio/4. I can export this gpio, assign direction "out" and set values, but the voltage on J11_14 does not change.


    Questions:

    1) Is the routing of pins different for this special combination of Picocom 1.2 and old startinf board?

    2) If not, what could be the reason for not getting pin 70 to work?


    Thanks and best regards,

    Alex

  • Hi ALex,

    I'm sorry about the wrongly linked documentation.

    I have send you an EMail with the correct documentation. We will update download area soon.

    Does the new documentation answer your questions?


    Regards,

    Holger

    F&S Elektronik Systeme GmbH

    As this is an international forum, please try to post in English.

    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hello and welcome to the forum,


    which release are you currently using? The newest release is the Buildroot Release fsimx6ul-B2022.04 and the Yocto Release fsimx6ul-Y2020.03.1.


    If you take a look at the device tree in the source code of the Linux kernel, you will see some defines at the beginning. These define which devices are enabled (and therefore can not be used as GPIO).


    arch/arm/boot/dts/picocom1.2.dts:

    Code
    1. /* PWM: PWM_A on pin 74, PWM_B on pin 75, PWM_C on pin 76, PWM_D on pin 70 */
    2. #define CONFIG_PICOCOM1_2_PWM_A
    3. #define CONFIG_PICOCOM1_2_PWM_B
    4. #define CONFIG_PICOCOM1_2_PWM_C
    5. #define CONFIG_PICOCOM1_2_PWM_D

    E.g. CONFIG_PICOCOM1_2_PWM_D defines that pin J11_14 is used as PWM_D. To use this pin as a GPIO, you will need to comment out the define CONFIG_PICOCOM1_2_PWM_D:

    Code
    1. /* PWM: PWM_A on pin 74, PWM_B on pin 75, PWM_C on pin 76, PWM_D on pin 70 */
    2. #define CONFIG_PICOCOM1_2_PWM_A
    3. #define CONFIG_PICOCOM1_2_PWM_B
    4. #define CONFIG_PICOCOM1_2_PWM_C
    5. //#define CONFIG_PICOCOM1_2_PWM_D

    This will set the IOMUX pad from the pin to GPIO mode.

    Afterwards, set the correct config

    Code
    1. make fsimx6ul_defconfig

    and build the device-tree.

    Code
    1. make picocom1.2.dtb


    Flash this device-tree onto the board and you should be able to use the pin J11_14 as GPIO.

    For every other pin the process is the same.



    Your F&S Support Team