10 Replies Latest reply on Feb 10, 2017 5:00 PM by Intel Corporation

    The value of ISH_GPIO pins are not able to be changed

    ningxin.hu

      I setup a Joule and boot to Reference Linux OS for Joule.

       

      By following Intel® Joule™ Expansion Board Breakout Definition for Linux* I try to change the value of ISH_GPIO pins.

       

      For example, for ISH_GPIO_4, I execute following command on Linux console:

       

      $ mraa-gpio set 27 1

      $ mraa-gpio set 27 0

       

      The voltage of ISH_GPIO_4 doesn't change. It is always 1.8V. Other ISH_GPIO pins have the same issue, I tested ISH_GPIO_0 ~ ISH_GPIO_6.

       

      BTW, I can change the value of ping 100 to toggle the LED on board by:

       

      $ mraa-gpio set 100 0

      $ mraa-gpio set 100 1

       

      I tried at least 2 Joule boards, both have the same issue.

       

      Please help. Thanks!

        • 1. Re: The value of ISH_GPIO pins are not able to be changed
          floydg

          Preliminary review, need verification from Intel. Why is the value 1.8v on J12 pin 27 when the level translator should be 3.3V n this pin.

           

          intel-joule-expansion-board-schematic.pdf

           

          Tuchuck dev board

          Page 20:

          J12 pin 27: ISH_GPIO 4 LS

           

           

           

          Page 19:

          Level converter EU18 translates bidirectionally "ISH GPIO 4" pin 4 -  "ISH GPIO 4 LS" pin 17

           

          I am also always reading 1.8V for J12 pin 27

          Even when the bit is successfully cleared, and verified with read() as "zero" value

           

          root@intel-corei7-64:~# mraa-gpio list

          01        GPIO: GPIO

          02      SPP1RX: GPIO SPI

          03     PMICRST:

          04      SPP1TX: GPIO SPI

          05     19.2mhz: GPIO

          06     SPP1FS0: GPIO SPI

          07     UART0TX: UART

          08     SPP1FS2: GPIO SPI

          09       PWRGD:

          10     SPP1CLK: GPIO SPI

          11     I2C0SDA: I2C

          12     I2S1SDI: GPIO

          13     I2C0SCL: I2C

          14     I2S1SDO: GPIO

          15     I2C1SDA: I2C

          16      I2S1WS: GPIO

          17     I2C1SCL: I2C

          18     I2S1CLK: GPIO

          19     I2C2SDA: I2C

          20     I2S1MCL: GPIO

          21     I2C2SCL: I2C

          22     UART1TX: UART

          23     I2S4SDO:

          24     UART1RX: UART

          25     I2S4SDI:

          26        PWM0: GPIO PWM

          27     I2S4BLK: GPIO

          28        PWM1: GPIO PWM

          29      I2S4WS:

          30        PWM2: GPIO PWM

          31     I2S3SDO:

          32        PWM3: GPIO PWM

          33     I2S3SDI:

          34        1.8V:

          35     I2S4BLK: GPIO

          36         GND:

          37         GND:

          38         GND:

          39         GND:

          • 2. Re: The value of ISH_GPIO pins are not able to be changed
            Intel Corporation
            This message was posted on behalf of Intel Corporation

            Hi Ningxin,
             
            Thanks for contacting us.
             
            I appreciate all the information provided. I have tested ISH_GPIO pins and I have got the same results you have mentioned. However looking at the Mraa documentation I believe those pins are occupied in other functions, and for that reason we are not able to use them. Please take a look at the Mraa Pin Mapping for that information.
             
            Hope this information helps.
            Regards,
            -Yermi
             

            • 3. Re: The value of ISH_GPIO pins are not able to be changed
              floydg

              Yermi,

               

              Please provide some additional insight into investigating this issue, which would be greatly appreciated.

               

              Your answer appears vague, and minimalistic.

               

              You also did not answer the question regarding the voltage translation values. Please read the information carefully in the future. Thanks in advance.

               

              The pin mapping for mraa states: 27     I2S4BLK: GPIO

              which means that the pin is configurable as a GPIO, correct? Is there another document you are aware of which states otherwise?

               

              If this is not the case, please state which document, or additionl information, states that other "specific" functions do not allow this pin to be used as a GPIO.

               

              If this pin is being used for another function, then that function should be capable of being inhibited, and GPIO config and setup for the pin, as an output should work fine, tested, documented to allow others to perform this operation.

               

              .

              • 4. Re: The value of ISH_GPIO pins are not able to be changed
                Intel Corporation
                This message was posted on behalf of Intel Corporation

                Hi Floydg,
                 
                Let me investigate a little bit more regarding your question. Thanks for your patience during the meantime.
                 
                Regards,
                -Yermi
                 

                • 5. Re: The value of ISH_GPIO pins are not able to be changed
                  floydg

                  Yermi,

                   

                  it has been a while, no status?

                   

                  We are integrating SPI with OSTRO, and Ubuntu Core, and OSTRO readings for SSP1_FS0 Chip select are 1.8v. This output pin should be 3.3volts!

                   

                   

                   

                  The Tuchuck board has 1.8v to 3.3v  "level shifters" (LSF0108RKSR -bidirectional), why are we reading 1.8 volts instead of 3.3 volts?

                   

                   

                   

                  http://www.ti.com/lit/ds/symlink/lsf0102.pdf

                   

                  Schematics for Tuchuck pullup "EN", as required.

                   

                   

                  VREF_B when measured is 2.6v, should be 3.3v

                   

                   

                  does the BIOS control the VSYS voltage levl, or is there an API to set the VSYS?

                  http://www.ti.com/lit/ds/symlink/bq25890.pdf

                   

                  Are we on the threshold for:

                  Vref_B reference voltage (B) Vref_A + 0.8 5.5 V

                   

                  2.6v measured for VrefB. Why was 2.6 Volts selected for VRefB?

                   

                  VrefA 1.8v + 0.8v = 2.6v!!! No margin! What happens if minimum voltage is not provided, does the system fall back to VrefA?

                   

                   

                   

                  Intel-Joule-expansion-hardware-guide.pdf:

                   

                  13 SPI interface

                  The Intel Joule expansion board routes two SPI interfaces from the module, through a level translator to convert the module 1.8 V logic levels to those required by the breakout board. The breakout board should include appropriate pullup values to the desired voltage, but not to exceed 3.3 V.

                   

                   

                  1. 13.1 SPI level transitions

                  All of the SPI interface lines are level transitioned (shifted) between the breakout connector 3.3 VDC levels and the Intel Joule compute module, which operates at 1.8 VDC levels.

                  Level translation is performed by a Texas Instruments* LSF0108RKSR open drain translator.

                  The expansion board uses a 200 kΩ pullup resistor from the +V3P3V supply to enable EU17 when the expansion board is active.

                   

                   

                   

                  Please re-direct to the hardware and embedded experts at Intel, and answer ASAP.

                  • 6. Re: The value of ISH_GPIO pins are not able to be changed
                    Intel Corporation
                    This message was posted on behalf of Intel Corporation

                    Hi Floydg,

                    Thank you for all the details provided, we would like to let you know that we are still investigating regarding why we are getting 1.8V instead of 3.3V as well as in your other case:  Need mrra SPI CS ("Chip Select") configured to "active high", so as soon as we have useful information we’ll let you know. 

                    ningxin.hu, we would like to update this case regarding changing the ISH_GPIO_0 ~ 6 values, we have updated the Mraa library version to Version v1.5.1-24-g2ea6810 on Intel GT Tuchuck, and we didn't have any issues changing the GPIO value, here you can find how to update the library: Installing and updating middleware libraries and you can use this command to get the Mraa version: mraa-gpio version.

                    Hope this information helps.

                    Regards,
                    -Yermi A.

                    • 7. Re: The value of ISH_GPIO pins are not able to be changed
                      ningxin.hu

                      Thanks Yermi. It solves my issues.

                      • 8. Re: The value of ISH_GPIO pins are not able to be changed
                        floydg

                        Thanks.

                         

                        Are the "level translators" just switches and not bi-directional drivers?

                         

                        Such that pull-up resistors are required on the Tuchuck GPIO to obtain the 3.3v?

                        • 9. Re: The value of ISH_GPIO pins are not able to be changed
                          floydg

                          ningxin.hu, And Yermi

                           

                          I have tested ISH-_IO0  thru ISH_IO6, and they appear to be controllable using mraa-gpio set [pin] [lvl] successfully, using the latest version of mraa. Thanks for the update.

                           

                          1) There are still a number of other GPIO pins which fail. Can you verify all of them, and fix the ones that do not work? Do you need a list?

                           

                          2) Also the syntax/naming convention for using mraa-gpio list does not match the  mraa: Intel Joule pin labels (mraa: Intel Joule)

                           

                          For Example: Pin 26 ISH_IO5: GPIO  is I2S4SDI

                           

                          mraa-gpio list

                           

                          (mraa: Intel Joule)

                           

                           

                          3) the SPI0 Clock  (SPICLKB) appears to be located on J13.25, which is labelled SPP0FS3: GPIO SPI?

                          • 10. Re: The value of ISH_GPIO pins are not able to be changed
                            Intel Corporation
                            This message was posted on behalf of Intel Corporation

                            Hi Floydg,
                             
                            Thanks for your patience, we would like to let you know that ISH_GPIO signals require pull-up resistors on the 3.3V side of the level shifter to achieve the target level. This is required due to the open-drain nature of the level-shifter design. The information for pull-ups is provided in the Joule Expansion Board Hardware Guide in section 10: http://www.intel.com/content/www/us/en/support/boards-and-kits/intel-joule-kits/000023394.html.
                             
                            Additionally, we would suggest you to open a new thread in case you have additional questions. Also, please open another one in order to help you with your last questions, if it is possible, post a list with the GPIO pins that fail.
                             
                            Hope this information helps,
                             
                            Regards,
                            -Yermi A.