SPI signal levels: voltage lower than expected

I set up a a Nano BLE board to talk to a sensor via SPI and I noticed that the SPI signal levels do not go up to the full 3.3V. This is even after disconnecting the signals from the sensor board. The levels are ~2.8V. The comm frequency can be ruled out as that happens at 1kHz as well as 1MHz.

I don't think it's my probes.

Has anyone else noticed this?

Can you post a picture of your oscilloscope showing this please.

What are you measuring with and is it in calibration? I see this a lot if I probe with a multimeter.

I measured it with both, the scope as well as a meter.

Here is a scope trace showing the high clock signal (yellow trace) at 2.80V, and, as an illustration a 3.3V square wave.

The clock is at ~2.8V regardless of whether I have a SPI peripheral connected or not. Nothing else is connected to the Arduino board.

That clock signal is idle... anyway quite normal to not reach rail voltage.

Did you separately measure Vcc?

Yes, VCC reads 3.26V on my uncalibrated meter. The same meter reads ~2.8V on the idle SPI clock - that value is confirmed by the scope trace.

Does anybody know why the clock doesn't go to the full 3.3V?

If you look at the schematic for the Nano BLE you'll see the SCK pin also drives a yellow LED via a 330 ohm
resistor. Perhaps that is causing the pin voltage to droop 0.5V?

Checking the datasheet for the NINA-B3X/nRF52840 shows that it supports drive-strength control on the output
pins, so this might very well be configured for low current drive by default (about 2mA). Setting high
drive strength would up this to 10mA or so.

If the SCK pin is left at the default it will definitely struggle to light an LED through 330 ohms.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.