Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Ningxin_H_Intel
Employee
1,814 Views

The value of ISH_GPIO pins are not able to be changed

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

By following http://www.intel.com/content/www/us/en/support/boards-and-kits/000022494.html 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!

0 Kudos
10 Replies
FGold
New Contributor II
104 Views

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:

idata
Community Manager
104 Views

Hi Floydg,

 

 

Let me investigate a little bit more regarding your question. Thanks for your patience during the meantime.

 

 

Regards,

 

-Yermi

 

FGold
New Contributor II
104 Views

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 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 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.

idata
Community Manager
104 Views

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 https://github.com/intel-iot-devkit/mraa/blob/master/docs/grossetete.md 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

 

FGold
New Contributor II
104 Views

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.

.

idata
Community Manager
104 Views

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: /thread/111022 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: https://software.intel.com/en-us/updating-libraries-for-joule 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.
Ningxin_H_Intel
Employee
104 Views

Thanks Yermi. It solves my issues.

FGold
New Contributor II
104 Views

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?

FGold
New Contributor II
104 Views

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 (https://iotdk.intel.com/docs/master/mraa/grossetete.html mraa: Intel Joule)

For Example: Pin 26 ISH_IO5: GPIO is I2S4SDI

mraa-gpio list

(https://iotdk.intel.com/docs/master/mraa/grossetete.html mraa: Intel Joule)

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

idata
Community Manager
104 Views

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 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.

 

Reply