Post Go back to editing

CN0540 IEPE Acquisition Board evaluation tips


We are about t evaluate CN0540 in factory environment. The system consists of a CN0540 board fitted on a STM32429ZI Nucleo board. The IEPE sensor is a CMSS2100 from SKF. So far we have a firmware controlling the CN0540 (RESET_ADC, etc.) and the ADC driver to communicate and get data from AD7768. The firmware sets Fs=16kHz and can calculate FFT on board using ARMs FFT library. The output of the FFT calculations is forwarded t a Linux PC via UART. We are considering to forward the raw data to the PC if this setup is not satisfactory.

Since we don't have much expertise in this field, I'd like ask a couple of questions:

1.  What would be your recommendations on FFT bin size, Fs, etc. with the above setup for the initial measurements on a CNC machine?

2. Is there anything which should be controlled on CN0540? (setting DACs voltage bias, jumpers we did not notice?)


  • FormerMember
    0 FormerMember

Hi JustGreg2,

The FFT size is really going to be dependent on the sensor you are using, the vibrations you are trying to capture, sampling rate of the converter, and any digital filtering you are doing. The AD7768-1 can run up as high as 256ksps so Nyquist says you can get signals up to128kHz at its maximum throughput, but there is a 54kHz single pole RC filter on the CN0540.  I'd say play around a bit here and look to see if there are any examples with your use case.

There are several things you can control on the CN0540.  The DAC bias is something that you must control in the system, as this is going to set the full scale input range into the differential amp and ultimately into the AD7768-1, and this value is different for various sensors. 

There are a few nice to have controls in the software as well but these aren't required, ADC shutdown, protection switch indicators, current source enable/disable, amplifier power mode.

If you end up with the flow from raw ADC codes directly into your PC for processing, I'd highly recommend using the software ADI has created because this is based on Linux and might help streamline your development.  The only major difference is that the platform being used is an FPGA not an MCU but for sake of system testing it'll get you to that step much faster.  The other benefit here is that it might help you with your FFT question, since we have some examples of streaming raw data directly into MATLAB or Python

Here's a link if you'd like to check out more on how that is put together.

CN0540 and the CoraZ7-07s [Analog Devices Wiki] 

And a link to the MATLAB and Python guides

Streaming Data from the CN0549 into Python Tools [Analog Devices Wiki]

Streaming Data from the CN0549 into MATLAB [Analog Devices Wiki]

  • Hi Brandon,

    thank you for your help.

    1. Can I use dual core CoraZ7 board instead of single core?
    2. Is it normal that I measure zero volts on P1/VIN, no matter logic HI or LO is applied on SW_IN (P10 is installed with a jumper, and 25.4V can be measured on the jumper)

    Thank you!

  • Reply Children
    • FormerMember
      0 FormerMember
    in reply to JustGreg2

    Hi JustGreg2,

    So you have to use the single core CoraZ07s.  In theory the dual core is possible but the current software doesn't boot that board.

    So if you measure across the P1 connector you should see some voltage if the P10 is installed and the software has the constant current enabled (sw_cc net node).  The other important aspect of this is to make sure the input voltage isn't to high because U1 will trip and not allow that voltage to be seen downstream.  When I connect my CN0532 sensor to the CN0540, I see 11.8V measured across P1.

    Hope this helps.


  • FormerMember
    0 FormerMember in reply to JustGreg2

    Hi JustGreg2,

    Looks like there was a second question you sent, but it's not displaying here, so I copied it from my email below.

    P1 is actually not a jumper but rather another way to connect your sensor to the CN0540.  If you place a jumper across that you are effectively shunting VIN to GND, so please remove the jumper across this.  Instead you want to place a volt meter across the two terminals of P1 and that is going to tell you what DC voltage is coming into the system.

    And unfortunately the fault LED was tied to the wrong logic level and stays on all the time.  This was a schematic oversight, so this is normal.  

    Hi Brandon,

    thank you for your help. The only board which is available at the moment is CoraZ7 dual core, see here. Is it okay to use this instead of the single core one?

    In the meantime I did a couple of tests with the CMSS2100 sensor connected to CN0540 via P1. Our code can switch SHDN pin on/off and can control the DAC's output via I2C.

    Initially, I connected two scope probes to J2 and J3 but could not see any changes in the scope signal when moving the sensor. Then I noticed 2 things:

    - P1 jumper was not installed by default (or fallen off at some point) so I placed one

    - I measured zero volts on VIN pin, no matter SW_IN was high or low (I can change from sw)

    - FAULT LED is constantly on.

    Is this normal?

  • Hi Brandon,

    thank you for your help. Placing jumper on the P1 was actually a typo, I wanted to write P10 originally. Anyway, I did more tests and I found that U1 is not switching as I only measure zero on P1, no matter what logic state I set on SW_IN. My measurements:

    - 26V on C2 VDD side, so U1 is supplied

    - on P10 I can measure 25.4V, which means U1 D1/D2 pins are supplied.
    - on R6 (on one side) I can measure constant 3.2V, independent of the state of SW_IN. This must be the IO_REF voltage, coming from the devboard.

    - on R6 (other side) I can measure 0...3.2V depending on the state of SW_IN. This proves that my SW_IN handling firmware is correct.

    Now I'm clueless. Maybe I should install R61 to bypass the analog switch completely?

  • What is sw_cc net node in this case? Please note that we can't test your recommended hardware setup (those FPGA boards) as there is global shortage on them and it's not gonna change too soon :( So we have to stick to an Arduino compatible Cortex-M4 devboard, with our firmware.

  • FormerMember
    0 FormerMember in reply to JustGreg2

    So the sw_cc node is the "constant current" enable/disable (controlled from software) to the U1 switch.  SW_CC and SW_IN in theory should both be able to enable/disable that switch so it's important to control both of those, because if something is floating you don't really know which level those control pins will be at.

    I've asked another colleague to take a look and see if there is anything else he can see that I might be missing here.

  • I could not find SW_CC in the schematic. The schematic I have is Rev A. from CN0540 Circuit Note, the board has Rev. B printed on it.

  • FormerMember
    0 FormerMember in reply to JustGreg2

    Please download the CN0540 Design files here to get the Rev B schematic.