I have an EVAL-AD7284TMSDZ (master module) evaluation board, and I can't get it to respond to any command.
The thing is, while RESET signal is enabled, the VREG5 regulator output seems to work, but when RESET signal is disabled, and before starting the communication, the regulator output stops working. I have searched for short-circuits but any of the pins of the AD7284 seems to be in short with VSS.
The procedure for the communication is as follows:
Modifications to the EVAL board to meet microcontroller requirements
Eight resistors of the same value are connected in series to a 24 V power supply unit. From the terminal of each resistor, one wire is connected to the measure input connector P13, as indicated in the figure 1, so the BMS should measure a differential 3 V between each pin of the connector. Also, the positive terminal of the PSU is connected to BAT+ and the negative to BAT-, giving the required power to supply the AD7284.
Figure 1. Resistor connection to simulate the voltage of 8 battery cells in series.
P7 “10-way connector”
An STM32F103C8T6 microcontroller is used for this test. Its SPI1 module is connected through pins A5-A7 to the P7 SPI communication pins SDI, SDO and SCLK. The CS pin is connected to A4 but not connected to SPI1, it is controlled by software. Also, pin 5 (RESET), 6 (Control signals enable) and 9 (VDRIVE enable) are connected to other GPIO pins.
The “Cold Side” has been powered by the 9 V power supply unit included in the evaluation pack to the P5 power connector.
A logic analyzer is connected to the “Hot side” test points of SDI, SDO, SCLK, RESET, VDRIVE and referenced to VSS.
Powering the board
P5 and BAT power supplies are switched on. The board is powered and the corresponding LEDs are bright.
Initializing communication ports
The SPI1 peripheral is initialized and set to idle (no comms, all pins set to HIGH). RESET is set LOW to avoid resetting the unit. Control signals enable is set HIGH to enable communication through U4-U9 to the “Hot side”. VDRIVE is set HIGH to enable the board circuitry to power the AD7284 through the isolation IC to VDRIVE pin.
At this point, the DS1 LED turns off. This means VREG5 output is near 0 V. If RESET is set HIGH, then the LED is switched ON again.
For the communication test part, the standard protocol of SPI is followed. Pulling down CS, then sending MOSI and SCLK outputs, then pulling up CS. For reception, the CS pin is pulled down, then SCLK signal is enabled.
Some communication from the microcontroller to the "Hot Side" can be seen in figure 2, corresponding to the AD7284 datasheet Example 1 frame. This means the data is reaching the pins of the AD7284. Otherwise, no signal is seen in the MISO pin when trying to receive data (this is not represented in the figure).
Figure 2. Successfull transmission of data from "Cold side" to "Hot side"
I would like to know if I am missing any step in the hardware preparation or software initialization
Thank you very much,José Manuel
You could try disabling the watchdog timer immediately after performing a hardware reset (toggle reset low-high-low) - see Table 37 of the datasheet.
I had tried that one before with the same result, so I had to work it a bit more. Finally, the real problem was the CS pin was being pulled HIGH too soon after sending a command, so any of them was really being recognized by the AD7284. The solution is to add a minimal delay between the command and the CS state change.
After that, the watchdog is disabled and VREG5 keeps working, and then I can receive the response to the ID request example.
Again, thank you very much for your time,José Manuel