2
\$\begingroup\$

I'm currently messing with the Microchip 23LC1024 SPI RAM chip, and trying to read the datasheet to understand how to work with it. I'm not an electronics engineer or something like that, I'm a software developer, so I don't quite understand everything that's written or sketched in the datasheet.

I see in the figures the "High-Impedance" written above the SO line. What does it mean?

enter image description here

\$\endgroup\$
2
  • 1
    \$\begingroup\$ Does this answer your question? What does high impedance value mean? \$\endgroup\$
    – Mitu Raj
    Jul 15 at 19:20
  • \$\begingroup\$ It means the chip is not sending any values out on the SO pin during that time. It's not sending a 0, it's not sending a 1, it's just not driving the pin at all. Sometimes people will add pull-down resistors either on the schematic or by enabling them on the microcontroller pin interface to make undriven pins have a repeatable 0 value instead of something "random". \$\endgroup\$
    – Justin
    Jul 15 at 19:32
2
\$\begingroup\$

'High Impedance' in this context means that the SO (chip data out) line is not being driven by the chip. This is represented in the diagram as a line at mid-level. In reality the SO pin is floating; the actual signal state is undefined and can't be counted on as a valid logic level.

Good system design will ordinarily resolve this by adding a pull-up or pull-down to the SO line, so that it will not be floating when it's undriven. If it's a pull-up the SPI host will see the incoming SO 'high-impedance' time as all 1's on its MISO/DIN pin.

For the example read command shown, with a pull-up on SO (host MISO/DIN) you will see the raw sequence FF FF FF FF, followed by the data bytes. The host SPI controller might be programmed ignore these bytes (e.g., with a 'read latency' setting), or they can be discarded by software.

Why do they do this? It allows multiple SPI devices can share the same host MOSI and MISO pins, each one being selected by its own CSn pin from the host. In a multi-chip SPI system, only the device activated by its CSn pin will drive the host MISO line, the other unselected devices will remain in high impedance.

A quick SPI nomenclature note:

  • MISO/DIN = Master In, Slave Out. Connects to device SO
  • MOSI/DOUT = Master Out, Slave In. Connects to device SI
\$\endgroup\$
1
\$\begingroup\$

It means low current (negligible) or high resistance (ideally infinite). If an input is high impedance it will float to whatever the source is. If an output is high impedance it could float to any value, since it will be determined by the load and any leakage current that the loads transistors leak. (if there are any pull up or pull down resistors it will float to those values).

In that case we call it "high impedance" and that it could be any value and in most cases doesn't matter.

An especially useful function of high impedance outputs is we can tie several outputs together (ensuring that only one is active at a time) because only one will be pulling the line high or low (if two or more outputs are active it could cause a 'bus contention' as one output could be high and the other low, which could result in damage to the outputs or a lot of current being sourced and indeterminate digital values. Only one output should be active on any digital bus)

\$\endgroup\$
0
\$\begingroup\$

High impedance means it has a high resistance. This means it will not source or sink current easily. You can often treat a high impedance node as if it were disconnected.

In this specific case, it means that pin isn't driving anything on the line, and other sources can affect it.

\$\endgroup\$
4
  • \$\begingroup\$ What should I as a user do with this information? (I admit I only partially understand what you wrote anyways lol) \$\endgroup\$
    – YoavKlein
    Jul 15 at 19:24
  • \$\begingroup\$ And why is it only this line that's marked as High-Impedance across all the data sheet? \$\endgroup\$
    – YoavKlein
    Jul 15 at 19:25
  • \$\begingroup\$ Perhaps because there might be more than one slave connected to that data line, and this is telling you that is ok because by being high impedance it won't pull down or up or otherwise affect data that the other connections are trying to send. \$\endgroup\$ Jul 15 at 19:58
  • 1
    \$\begingroup\$ Because it's the only output so it's the only wire that can either drive the data out high or low or not drive at all. The other pins are inputs so those wires can't be driven at all by the chip so they are high impedance inputs all the time. \$\endgroup\$
    – Justme
    Jul 15 at 20:46
0
\$\begingroup\$

It means just what it means, pin are having high impendence and is not sourcing or sinking any significant current. If you apply a HIGH or LOW external logic voltage level the whole line will stay in that state as this chip won't affect it having high internal resistance.

As this is the SPI Slave Out pin it's left in that state when the slave aren't transmitting any data. You don't need to read it's state during that time from the master so it just leaves it in that state and doesn't drives it to any logic level itself. You don't usually have to do something about this as you actually don't need to read this line state during this period.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.