03-16-2022 06:33 PM
Hi NI Forum,
I've recently purchased the NI 6570 and have taken the digital pattern instrument class associated with it. I'm new to the world of digital logic and the class was a huge help.
To further my progress I've purchased a sensor, the BME280, here's its datasheet:
https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme280-ds002.pdf
I've linked the datasheet for anyone's review but all I'm trying to do is read a static value from the DUT. The process should be to send 0xD0 and I should get back 0x60.
I tried to bit-bang this using only 1s and 0s in the pattern (left image) as well as use the template to do a read command (right image), but neither yielded 0x60.
If I make the number of steps higher I can see that the clock has the potential for an issue:
First stage:
Zooming in to the falling edge of the clock, where there's a second rise that might be seen by the device. (the datasheet says the sensor can work work at 10MHz so I fear this really could be a potential issue):
Another potentially linked problem is that I can't do TDR calibration. The 6750 is connected to an SHC68-68-EPM cable (2m lenghth) and from there a SCB-68A break out box which is for sure in direct feed mode. But when I try to short the respective pins to ground for TDR it complains that things aren't actually hooked up to ground. I'm sure physically things are okay, and even when I choose the open option it still complains!
I've been working at this for days tweaking parameters and checking grounds, but I can't understand what's causing this to happen. I'm able to get this working with an Arduino, so I know the sensor is fine.
I really do appreciate anyone's time or advice. Best,
Chris
03-16-2022 07:06 PM
Waveforms look good and you're using CPOL = CPHA = 0 which is supported by the DUT.
I would recommend trying the CPOL = CPHA = 1 shown in the datasheet,
TDR would not make a significant impact at the slow speeds you're operating (100kHz).
03-16-2022 08:00 PM
Thank you Santhosh,
Especially for looking over the datasheet.
Here's my latest attempt at mode 3, pretty much the same output:
03-16-2022 09:45 PM
At least from the pattern side, the implementation is good.
Few questions,
03-16-2022 09:53 PM
I would recommend giving SDC Addon a try, it provides out of the box functionality for many common protocols using 657x.
03-16-2022 10:26 PM
Ah, you caught me with some debugging parameters in place.
Like I showed with the picture, I was worried about there being an extra rising edge and was hoping to avoid those oscillations with a bigger separation between high and low. I run this device at a VCC of 3.3V. I know I keep mentioning oscillations but when I use 3.3V and 0V as the high and low. Here's the pattern I get, so increasing the separation seemed to be a step in the right direction:
The Arduino actually has a high of 5V and a low of 0V. For the same Clock, MOSI, and Chip Select pins.
The sensor datasheet was only used for the SPI information. The sensor is actually on a board provided by waveshare: https://www.waveshare.com/wiki/BME280_Environmental_Sensor
Currently, the board is powered up via an NI 4144 SMU to 3.3V, it's also controlled by the digital pattern editor.
There are 5 connections of the board:
03-16-2022 10:27 PM
Thank you, I'll poke around with this program..
03-17-2022 08:09 AM
Thanks Santhosh,
I thought I replied to this last night so I'll try to rewrite it now. (It's weird because even the images appear in my profile but the posts don't show up here)
I had forgotten the settings I had left the program in because I've been debugging. There's some important information in why I drive with that as well. If I drive with 3.3V and 0V I get the following:
So I thought increasing the voltage between high and low would help with the false clock reading I mentioned before. And it seemed to help, after all, I get something that seems better as shown in my original post, and I had been going with that. What's more, is the Arduino uses 5V for these pins with a 3.3V supply. Even though it's not best practice to go higher than rail.
In this case, the DUT is not only the sensor but also includes the board the sensor lives on, which is made by waveshare:
https://www.waveshare.com/wiki/BME280_Environmental_Sensor
That being said I'm not powering the component but the board on which the sensor sits, but I am powering it with a 3.3V suppy from an NI 4144 SMU.
The board has 6 connections, all with female jumper cables:
I can provide pictures but really all I do is turn the SMU on to 3.3V and try to send patterns, I've tried to do the reset command right before as well, with no luck.
Best,
Chris