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