Analog Devices Evaluation Boards

Introduction

Analog Devices, Inc. is an American electronics specialist company founded in 1965 that is known for its expertise in analog and digital processing. They feature a wide range of chips, sensors, kits, and boards, and offer the EngineerZone technical community support zone and Circuits from the Lab reference designs.

The Analog Devices site is at:

http://analog.com/

The company also produces a magazine, Analog Dialogue, which you can view at:

https://www.analog.com/en/resources/analog-dialogue/archives.html

Featured on my page are various Analog Devices kits I've come across and my experiences using them. Note that the images on this page are available for download at the bottom of the page.

EVAL-ADT7470EBZ

Overview

I got the EVAL-ADT7470EBZ kit by Analog Devices from eBay for just £0.99, which was a bargain considering it was virtually brand new and retails for new for ~$118 as of 2024 - the product appears to have been first available in 2006. The EVAL-ADT7470EBZ primarily allows testing and evaluating of Analog Devices' ADT7470 Temperature Sensor Hub and Fan Controller, providing on the evaluation board the chip along with four TMP05 temperature sensors, two heating elements (resistors), two fans, GPIO, and test points. The product page can be found at:

https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/eval-adt7470.html#eb-overview

A summary of the kit's features:
On-board and remote temperature sensing
On-board and remote fan control
No calibration necessary
Programmable over/under temperature limits
USB serial interface
Supports SMBus Alert

The ADT7470 datasheet:

https://www.analog.com/media/en/technical-documentation/data-sheets/ADT7470.pdf

The user guide:

https://www.analog.com/media/en/technical-documentation/user-guides/EVAL-ADT7470EB.pdf

Note that in the user guide is for Rev A, and it states that the software will run on Win 2000+. Included in the user guide are schematic drawings and silkscreen, which is much appreciated to understand how the kit works and to act as a reference design. Unfortunately the user guide is quite lacking and you will find a lot more information about using the board on this page from my own experimenting.

Software Installation

In the box you get the evaluation board, software CD (my one was labelled as ADT7470 Evaluation Kit CD Version 2.0 January 2022), and an USB A-to-B cable. It was just as well the CD was included as I couldn't find the software for download online. Speaking of the software, it's claimed by Analog Devices that it doesn't run on Windows 8 or Windows 10 due to the USB driver being non-compliant with Windows 8 and above, however, as I will talk more about later I got it working on my Surface Pro running Windows 10.

I will now go over how I got the kit working and the issues I faced. On the included CD is setup.exe, which I ran on my Surface Pro running Windows 10, as below:

During the install I got this message warning of a version conflict with RICHTX32.OCX:

I clicked Yes. After that part installs it will then install the ADI PAD Drivers, once that has finished the setup will be complete and you will have the ADT7470 Evaluation Software app. Next I plugged the evaluation board into my Surface using the USB connection, the +3.3V LED turned on (its located near the power connectors). I then opened the evaluation software and it detected the board while loading.

Evaluation Software

When the app opens you will see something like this:

Notice at the bottom of the window it will report 'Firmware download successful', and the date and time are also displayed.

By selecting Board->Evaluation Board Information we can get various information including Board revsision (A), device address and whether various voltages and fans are present. If you click the Free Wheel Test button with 12V connected to the board it will report if the fans are present (the first two fans are the on-board fans).

Various other windows can be opened within the app using the View menu or the shortcut buttons under the menus to access the board's features and readings, the options are:

Register Map
Graphing
Limits, Interrupts

Here you can see I've opened the various windows:

In the Graphing window you can drag the handles in the Temperature and Fan Speed sections to change the zoom, and you can change the Graph Type using the drop-down to alter what is displayed.

To be able to control the fans 12V power needs to be connected to the board through either the barrel jack connector (centre negative), screw terminals, or Molex PSU power connector. I couldn't see in the user guide the required current rating of the 12V supply but had at hand a 12V 1.5A PSU, which has proved to be suitable. Then is no stated procedure for connecting the 12V, I connect it after plugging the board into USB and remove it before disconnecting from USB. With the 12V plugged in the +12V and +5V LEDs will be lit (the +5V is dimly lit for some reason), both on-board fans switch on, and D15 and D14 LEDs lit up.

The fans can be controlled manually (see below) with Fan Control->Manual Fan Control. The required PWM channel related to the fan you want to control can be selected and then the slider moved down toward 0 and up to 100% to control the speed. Note: there is a second or so delay before the adjustment has an effect.

If a fan isn't connected or is turned to 0%, or the 12V power isn't connected then it will show as 82RPM, which isn't an error it seems and just a minimum reported value even though the fan isn't running. With 12V power connected and manually controlling the fans (note the first two are the on-board ones) the reported readings were higher the more I turned the fan speed down unless set to 0%, which showed as 82RPM.

I found a solution through using the Register Map but first lets talk about using the feature.

The Register Map can be accessed with View->Register Map and is essentially a more low level way of interfacing with the board - see the  ADT7470 datasheet for more details about the purpose of the individual registers. As can be seen in the following screenshot I've expanded the Configuration section and selected Configuration 1:

I don't know why Temperature and Fan are listed at the bottom as clicking on them does nothing.

You can click on a bit in the Bit Display section to toggle the register state (it takes a few seconds to update),  note that bit 0 is on the right. Or you can enter a hex or decimal value using the provided boxes and click the Write button. Of course you can only update writable registers. These changes to the registers are only temporary, they will be reset after power cycle but you can save and recall the state, which will be covered later on.

Now for the fix for the incorrect fan RPM values being displayed:

Select Configuration 1 in the Register Map and click H/LF (bit 6) to change from 0 to 1. Now the RPM values should be displayed correctly and as an added bonus it will also decrease fan noise.

Another way to control the fans is through the Fan Configuration window, which can be accessed through Configuration->Fan Configuration, as seen in the following screenshot:

This gives a lot of control over the four fans.

Another problem I had, which can be seen in the earlier screenshots, is that the temperatures were always showing as 0°C. Looking through the user guide I found how to get the temperature readings to display correctly:

Go to Configuration->General Configuration: in the Pin13 Setup drop-down change from 'Full Speed Input' to 'TMP05 Start Output', then click the OK button. Seems odd that the correct option wasn't selected by default.

The on-board TMP05 temperature sensors are labelled as U9, U10, U12, U11 for Temp1, Temp2, Temp3, and Temp4 respectively. U9 is located under resistor R35, U10 under resistor R36, U11 is located at PCB top-right (to the right of connector J8), and U12 PCB bottom-right (below connector J14). I'm not sure of the reasoning of the placement of U12 and U11 since they don't have any fans associated with them but they can be tested by exposing them to heat/cold in a controlled manner.

The heater control can be accessed with Board->On-Board Heater Control (below), move the sliders to control the temperature. Heating is provided by the large resistor in front of each of the on-board fans (R35 and R36); since the resistors can get very hot it's not recommended to touch them. The user guide says to put jumper J19 in position B for temperature monitoring but I found its position had no affect.

While adjusting the heaters you may see the SMBALERT LED come on, simulating a fault.

We can set limits: go to View->Limits, Interrupts. Select a temperature channel or fan using the drop-downs and move the sliders to set temperature and fan limits. In the example below the Temp1 upper limit is set to 42°C, once exceeded (which it has using the heater) the SMBALERT LED lights and the normally green icon will change to orange when a limit is exceeded.

A temperature or fan limit can be ignored by clicking the appropriate Mask checkbox and clicking Apply, which will cause the SMBALERT LED to not light when the limit is exceeded.

I don't know what the 'NORM' entry is for, it's not mentioned in the user guide and is always orange.

Settings can be saved and recalled using File->Save/Recall Configuration. You can also log data to file using File->Log Data to File, so that, for example, the speed of the fans can be recorded over time.

As seen above, I've selected to log Temp1, Temp2, Tach1, and Tach2. The Interval can be changed if needed, and then Start Logging button needs to be clicked, allowing a folder location and filename to be entered. Then click the Open button and logging will begin, click the Click to stop logging button to stop logging.

There isn't really any spare GPIO that can be used but the GPIO that the ADT7470 provides can be manipulated either through the dedicated GPIO Configuration window, accessed through Configuration->GPIO Configuration or the shortcut button, or through the Register Map. The GPIO Configuration window is as follows:

As can be seen, there are four GPIOs, GPIO1 to GPIO4, each with its own Enable checkbox, Direction (Input/Output), Polarity (Active Low/Active High), and Status. If a GPIO is set to Input then the Status will indicate the input state, if set to Output it will become a drop-down, with  Set and Clear options. Oddly, I found that the Status drop-down had no affect on the GPIO as outputs, instead changing the Polarity altered the GPIO state.

The four GPIO control the speed of the four fans, labelled as PWM1 to PWM4 respectively, the signals are also available on the J2 and J9 connectors, this is the pinout:

GPIO1 (PW1) J9-7

GPIO2 (PW2) J2-5

GPIO3 (PW3) J2-8

GPIO4 (PW4) J9-2

We can switch a fan to full speed be setting the appropriate GPIO Direction to Output, Polarity to Active High, clicking the Enable checkbox, and Apply button. If Polarity is set to Active Low and Apply is clicked the fan switches off. To be able to use Manual Fan Control control again the enable checkbox needs to be unchecked and Apply clicked, this is because enabling GPIO disables PWM control.

We can also control other things with the GPIO but keep in mind there is a 10K pull-up resistor from each GPIO to 5V. Helpfully, there are already an on-board LEDs D15 connected to PW3 (GPIO3), and D14 (GPIO4) connected to PW4, each with 1K series limiting resistors. The LED anodes are also connected to J1-2 and J1-1 respectively. Because 0R resistors have also been used in series with each LED, removing would disconnect the on-board LEDs, would would be a good option for connecting external LEDs so the on-board ones don't 'interfere'. To be able to control the on-board LEDs, enable GPIO3 and GPIO4 as outputs and click the Apply button. Setting Polarity to Active Low and clicking the Apply button turns the LED off, Active High turns it on.

We can also set the GPIO as inputs but as GPIO1 and GPIO2 are connected to the on-board fans, setting the corresponding GPIO to Input will cause the fans to turn on. Instead it's more practical to use GPIO3 and GPIO4 for testing as inputs provided no additional fans have been connected. Set the GPIO pins to inputs, Polarity to Active High, and click the Apply button, and 'Set' will show in the Status box. If we then take PWM3 or PWM4 to GND (the on-board LED will turn off but it's safe as it's being shorted through its limiting resistor) we will see status change in the Status box to Clear - it takes a few seconds to update. Changing the Polarity to Active Low and clicking the Apply button will invert, such that taking the PWM signal to GND will change Status to Set.

We can do a similar thing with the Register Map using the GPIO section - it's helpful to click the Continuous Read checkbox if testing GPIO as input to avoid having to keep clicking the Read button to get an update.

The Characterise option, accessible through Fan Control->Characterise, brings up a window where we can select to plot for any of the four fans, with various settings. When the Run button is clicked the selected fan(s) will run for about 30 seconds and when finished you would expect a graph, however, no matter what options I selected no graph was displayed. I did also try with the H/LF bit set to 0 using the Register Map and the fans ran for even longer (over a minute) but still no graph appeared so perhaps it's a bug in the software. Since you can log the fans over time to a file you could construct your own graphs using an external program.

Jumper J22 is related to fan control and enbales are to turn the fans on at full speed, simulating an emergency condition, but first it's needed to understand how it works. J22 is connected to the ADT7470's TMP_START/FULL_SPEED pin and will function either as a temperature reading start signal or full speed fan signal depending on whether Register Configuration 1 bit 7 (T/FS) is set to 0 or 1. When set to 0 and J22 is put in the A position the fans will be on at full speed and they cannot be manually controlled and the temperature readings won't update, putting J22 in the B position will disable the full speed mode. If register T/FS bit is set to 1 then temperature readings will update and if J22 is in the A position manual control of the fans will be lost until J22 is put back in the B position.

So far we have only talked about manual control but there is also the option for automatic fan control, selected by going to Fan Control->Automatic Fan Control, which gives us a lot of options. Select the fan to applying settings to using the PWM drop-down, likely you will want to also set PWMmax, PWMmin, Tmin, and Control Source (defaults to Max Temp but can be set to any of the temperature sources Temp1 through Temp10). Then click Automatic Control Enabled checkbox and click the Apply button (although that doesn't actually seem necessary). As can be see in the screenshot that follows I have enabled automatic control on fan 1, set Tmin to 30, Control Source to Temp1.

If we then increase Temp1, such as through the Heater Control, the fan will soon come on and you will see a red square following the red line (as seen above), which is shaped by PWMmax, PWMmin and Tmin. Of course reducing the heat will cause the red block to move back accordingly and the fan will soon switch off.

I did some current measurements of the 12V going into the board using a multimeter, these are the results of the peak current draw under the following conditions:

Both fans on maximum: 0.11A.

Fan 1 only on maximum: 0.05A.

Heater 1 at maximum (100°C) 0.23A.

Heater 1 and 2 at maximum (100°C) 0.47A.

Heater 1 and 2 at maximum, fan 1 and 2 at max 0.54A.

Power down (Configuration->General Configuration): 0A (couldn't even get a reading on even the μA multimeter setting).

In conclusion, if just using the on-board fans a 12V 1A supply would be more than enough.

Virtual Box Setup

Although I was able to get the evaluation board working on Windows 10 I did also successfully get it working through a virtual machine running Windows 7 just in case the issues I originally had (fan speeds reporting incorrectly) was due to using a supposedly unsupported operating system. If you aren't able to get the board running on Windows 10 then it may be worth reading this section.

I installed Oracle VirtualBox, which can be downloaded from:

https://www.virtualbox.org/wiki/Downloads

Within the virtual machine I installed Windows 7, as I happened to have a CD, and once Windows 7 was ready to use I installed the CD that came with the evaluation board. However, whenever I opened the Evaluation software it wouldn't detect the board and from looking online at USB issues using VirtualBox it turned out the problem was that Windows 10 was 'grabbing' the board before Windows 7. The solution is to set up a USB filter in the VirtualBox:

With the board plugged in, in VirtualBox click the Settings button, then USB from the left. Click the USB icon with the plus symbol and select Analog Devices, Inc. Click the OK button, unplug the board.

Start the Windows 7 virtual machine and after it loads go into the desktop. Plug the board in and Windows 7 should detect it and after a while of installing it should announce it has installed the ADT7470 Evaluation Board.

Note: I found in the Windows 7 Device Manager that there was still a Base System Device without the driver installed. However, launching the Evaluation software it detected the board and I was able to control it.

All content of this and related pages is copyright (c) James S. 2024