Argon SPI SCLK pin Voltage

I have a Argon and I’m trying to communicate with a chip that I have working on a Arduino Uno which is using Bitbanging.

@peekay123 helped me convert the library to use the Hardware SPI interface on the Argon.

One thing I noticed when troubleshooting is that the SCLK line starts off at 3.3-3.2v but once communication starts it drops down to 1.6v. Is this normal for this pin to operate at this voltage?

The MISO, MOSI and SS/CS pin all operate at 3.3-3.2V. It’s just the SCLK line that’s operating low.

When I pull the SCLK line from the shield I’m connecting to the SCLK pin stays at 1.6v.

Any ideas? I’m going to try on a Photon also to see if there are any differences.

In the screenshot below you see the SCLK line starts off at 3.255v but then operates at 1.6v in the next screenshot.

MISO, MOSI, SS/CS pins all operate at 3.3v?

Update: I just tested another project using a Argon with a device over SPI and the voltage on the CLK line is also 1.62V. So seems to be normal on the Argon.

I’m off to see if I see the same issue on the Photon.

Which device OS are you running?
Previous versions did not have the push/pull current set to low. With the most recent versions that got boosted.

Interesting…

I’m using the latest version 2.0.0 RC2

@peekay123 Helped to switch to Bit-Banging and that worked just fine.

The SCLK line is now operating at 3.3v.

I’m not sure what’s going on exactly yet.

I’m going to try SPI at slower speeds as recommended by Paul and see if I can get this working without the bit-banging.

Are there any downsides to using Bit-banging vs Hardware SPI?

What devices are your talking to?
Normally an SPI device should not put a considerable load on the communication pins.

This should be the respective PR - maybe try setting the drive strength manually

Downside of bit-banging is that it keeps the controller core occupied while communicating where HW SPI can offload that to a dedicated circuitry which can also do DMA.

Even with the SCLK pin not connected to the shield the SCLK voltage started at 3.3v but then drops to 1.6v and stays there as shown below.

One theory is that the Saelea Logic 4 I’m using can read the voltage on SCLK because of the Bus speed being higher than it’s capable of sampling accurately? Somebody else would have to verify that.

The Screenshot below shows the Analog sample rate set to 6 MS/s. The SPI bus speed was set in code for 2 Mhz same as the Arduino version of the code which the Analog voltage reads correctly. I’m not sure if the Arduino uno can run it’s SPI bus at a real 2 Mhz or if it could be slower than the Argons SPI speed running the same code.

The Logic analyzer I have is this:

Here is the specs if somebody thinks the 1.6v I’m seeing on SCLK is due to the bus speed being quicker than it can handle.

Maybe you can try to capture the analog signal on that pin with an oscilloscope instead.

If only I didn’t sell my scope to @nrobinson2000 last year :grinning:

As I pointed out to @RWB in another thread, I believe the problem is with the bandwidth limited Salea and not with the Argon SCK pin.

Your right again!

We switched back to Hardware SPI and lowered the speed to 1Mhz and all is good now.

Guess the Saleae can’t measure Analog voltage at the higher SPI Bus speeds.

I learn something new everyday :grinning:

2 Likes