March 28, 2024, 04:08:12 PM

SPI select signal

Started by Tele, November 15, 2017, 12:28:39 AM

Previous topic - Next topic

Tele

Hi all,

Sorry for the noob question, is SSEL signal positive active ? Its an H when SPI is selected? I would guess that yes it is because it's not marked in other way, but its a little strange a positive chip select or device select so I just want to make this sure.

And one more thing is not clear.
https://en.wikipedia.org/wiki/UEXT
This wiki page says that I2C pins are open-drain, then its states that "all pins conform to 3.3 volt digital logic" - which is weird because an open-drain or an open-collector output has no logic level, the user must pull it up to the power, it can be 3.3 or 5 or even higher voltage. If its pulled already up internally to 3.3V, then its not open-collector/drain anymore. This is confusing.

Regards,
Laci

LubOlimex

Hey,

1) Sorry for the noob question, is SSEL signal positive active ? Its an H when SPI is selected?

No. SSEL should be low when SPI is selected. It is not marked properly.

2) "which is weird because an open-drain or an open-collector output has no logic level, the user must pull it up to the power, it can be 3.3 or 5 or even higher voltage"

In the general case you have a point, but here specifically the text "Open-Drain logic, all pins conform to 3.3 volt digital logic" is proper. The reasoning is 1) some of the shields that can be attached to the UEXT would get damaged by 5V signals and 2) each microcontroller has own specification for the I2C. So in order to avoid trouble with certain chips we took precaution with this description. Some of the specifications for different interfaces are not equal between ARM, MSP430, AVR, PIC32, PIC etc. chips.

Best regards,
Lub/OLIMEX
Technical support and documentation manager at Olimex

Tele

Hi Olimex,

Thank you for your answer.
Its OK I understand both response, but one thing is still confusing, unfortunately.
Now I understand that the I2C pins must work on 3.3V logic, if I don't wanna bake some slave devices.
But you forgot to answer to the other question.
Is it open-drain indeed and I have to pull it up to 3.3V with some 4k7 ... 10k resistor, or it's already pulled up internally, I don't have to do that ?

Regards,
Laci

PS: change SSEL naming to \SSEL or something because this is a huge naming error. Probably not many people care about UEXT signals, they just use the modules, and thats it. If no one asked/cared about that naming.

LubOlimex

Usually we pull it up on the host boards. We don't place it on slave boards (these are usually boards with suffix "MOD-" in the name). For example, in OLIMEXINO-328 (ATmega328p) the SCL and SDA are pull-up to either 3.3V or 5V (controlled by jumper) via 4.7k resistors. If using Olimex-made 3.3V only shields with the board, it is mandatory to set the 3.3V/5V jumper to 3.3V position. Refer to the schematic here: https://www.olimex.com/Products/Duino/AVR/OLIMEXINO-328/resources/OLIMEXINO-328-schematic.pdf

Which board(s) exactly do you have (or have in mind)?

P.S. Added "/" in front of SSEL in the wiki article.
Technical support and documentation manager at Olimex

Tele

Hi Olimex,

Thank you I think everything is clear now.

Quote from: LubOlimex on November 15, 2017, 04:10:11 PM
Which board(s) exactly do you have (or have in mind)?

I have my own i.MX6 board, not Olimex one, and I was thinking of realization of UEXT interface (as a HOST board), because I could use your thousand mini modules, they are cheap and fine to test things and learn things.
But as I see now, UEXT is not so strictly defined, there are jumpers and exceptions and special cases. And this is a little problem. Next time when you wanna create a standard interface, define it very strictly and precisely, I recommend so.
Because at the moment I can believe that your UEXT modules would work any of your UEXT host boards, but its doubtful whether they work with a foreigner UEXT host board.

I can't blame you though, because everything is Opensource, there are schematics, anyone can check anything what he/she wants. You shared this for free because you are a good man, and you have good heart. (and maybe helps the business a little)

Thanks for your answers !

Regards,
Laci

LubOlimex

Well, to be honest all UEXT modules that I have seen, have been made by Olimex. Not many adopters outside of Olimex. We were exposing I2C, SPI, UART on each chip and each board that we made and just thought we can place a separate connector for these interfaces, for easier hardware connection. Furthermore, usually every general-purpose chip has at least one hardware I2C, SPI, UART.

If you are going to make the UEXT on your i.MX6 board, place the pull ups on your board since our modules might not come with pull ups. Most (99%) of the expansions modules in this category would work with 3.3V UEXT: https://www.olimex.com/Products/Modules/

Probably you know, that we also have open source i.MX233 boards with UEXTs like iMX233-OLinuXino-MAXI and iMX233-OLinuXino-NANO, that can be used as a reference:

https://www.olimex.com/Products/OLinuXino/iMX233/iMX233-OLinuXino-MAXI/open-source-hardware

https://www.olimex.com/Products/OLinuXino/iMX233/iMX233-OLinuXino-NANO/open-source-hardware
Technical support and documentation manager at Olimex