I2C-SPI Bridge - SC18IS606 use SS2 as GPIO => SS0 SS1 broken

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

I2C-SPI Bridge - SC18IS606 use SS2 as GPIO => SS0 SS1 broken

1,177 Views
ottelo
Contributor II

I have a own created pcb with SC18IS606 and try to use SS2 as GPIO output. Previously I used a SC18IS602B with 4 SS outputs and used SS3 as GPIO output without any problem. No I change the layout and want to use SS2 as a push-pull output as I wrote. But if I send the command F6h with data byte 0x04 (SS2 enable), SS0 and SS1 goes from 3.3V to 2.1V and doesnt react to any further SPI communication action. SS2 works perfect. If I comment out the config line (dont use GPIO) SS0 and SS1 works. I dont know why ... Maybe IC is broken? I have ~8kOhm resistance from SS0 / SS1 pin to ground.

Do I have to put a Pullup or Pulldown resistor to any of the SPI pins?

0 Kudos
8 Replies

319 Views
nsimon
Contributor I

Sorry to bump an old thread, I ended up here on a google search and this might help someone else. The documentation says:

"GPIO Configuration - Function ID F7h"

"The SSn pins defined as GPIO, for example SS0.0 and SS0.1, may be configured by software to one of three types"

The documentation is WRONG. This section obviously suggests that this command only affects outputs configured as GPIO, however that is not the case. I was trying to configure SS1 as GPIO while using SS0 for SPI and observed that writing 0b11_00 to register 0xF7 caused SS0 to stop doing anything. In order to fix it, I had to reconfigure the SS# output as well, in my case writing 0b11_11 to configure SS0 as open drain.

Adding to the confusion, I have code from a card using SC18IS602B which did not have this behavior; so this seems to be a regression between the SC18IS602 and SC18IS606

0 Kudos

1,026 Views
micah_d
Contributor I

I am having the same issue on the SC18IS602.   The issue does not exist on the SC18IS606.

 

I first set the SPI options by writing to xF0 with a value of x0F.

I am trying to use all SS as GPIO. As I understand I need to write to xF6, set as GPIO, write to xF7, set output type and write to xF4 to set the level.

After writing these values the SPI bus no longer reponds. If I do not send the commands to set up the SS as GPIO, the SPI bus acts normally.

0 Kudos

1,017 Views
TomasVaverka
NXP TechSupport
NXP TechSupport

Hello Mike,

Your understanding is correct, first you need to write 0x0F to the GPIO Enable register to configure all SS as GPIOs. Then write 0x55 to the GPIO Configuration register to select push-pull configuration. And finally the required output levels by writing to the GPIO Write register.

“After writing these values the SPI bus no longer responds.” – Since all SS are configured as GPIOs, there is no SS for the SPI bus. Is not it possible to leave one SS for slave select output and not GPIO?

Best regards,

Tomas

0 Kudos

1,013 Views
micah_d
Contributor I

Hello Tomas,

I am driving the SS of my devices in another manner and do not require the SS on the SC18IS606.

What I mean by "the SPI bus no longer works" is that I am observing the SPI lines on a scope. After I turn the pins to GPIO, I try to talk to a device on the SPI bus. What I see is that the SCK line is driven low and there is no activity after that on any line.

0 Kudos

1,008 Views
ottelo
Contributor II

Yes this was exactly my problem. But I needed one pin as SS and one for GPIO.

I wrote with the support team and they want to fix the manual. I solved my problem, I configure one pin as a GPIO and then configured all pins as pushpull (not only the one GPIO pin!), then my other pin works as a SS for SPI communication.

0 Kudos

1,172 Views
TomasVaverka
NXP TechSupport
NXP TechSupport

Hello Hans-Christian,

I have not heard of such a problem yet.

Do you see the same behavior when you set SS0 (0x01) or SS1 (0x02) as GPIO?

How many SC18IS606 bridges have you tested so far? If more than one, do you see this issue on all of them?

Best regards,

Tomas

0 Kudos

1,141 Views
ottelo
Contributor II

Hello Tomas,

I tested it on another bridge and the same results! If I config SS2 as GPIO, SS0 and SS1 have a weird voltage level (1-2V), seems that the internal pullup is switched off. I tested it with SS0 as GPIO and the same results. SS1 and SS2 level = ~2V and dont react to any SPI communcation.

0 Kudos

1,140 Views
ottelo
Contributor II
My commands to the bridge are these:
- send 0xF6 + 0x04 (GPIO enable register + use SS2 pin as GPIO)
- send 0xF7 + 0x10 (GPIO config register + SS2 = push-pull)

=> SS0 and SS1 internal pullups seems off ~ 2V level
=> SS2 as GPIO output, this works! SS0 and SS1 dont do anything.
0 Kudos