From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Creating an Automated Microcontroller Test System Using LabVIEW and FPGA

Zalman Rafael, Infineon Technologies

"With NI products, we can easily test various microcontroller peripherals with a single hardware and software solution. We used NI products to automate our testing by providing easy interfaces to our automation framework, saving a lot of effort and money"

- Zalman Rafael, Infineon Technologies

The Challenge:

Integrating and automating a complete microcontroller testing workflow.

The Solution:

Using NI products to create an unmanned test bench with an intuitive user interface and comprehensive test cases.

Author(s):

Zalman Rafael - Infineon Technologies
D Birundha - Infineon Technologies
Shriram Kathavate - Infineon Technologies

 

In previous test benches for this application, we used controller boards developed in house, which required a separate set of compatible toolchains to download applications. In addition, the user interface to these toolchains was difficult to navigate and we had to use additional test and measurement equipment.


With virtual instrumentation, we performed the following tests with the same set of software and modular hardware:

  • Testing common protocols (SPI, ASC, I2C)
  • Testing PWM, ICU
  • Testing A/D converters
  • Testing controller area networks (CAN)
  • Testing clock and gating cases
  • Testing systems with many modules operating simultaneously

 

We easily developed our system using the ability to reprogram field-programmable gate arrays (FPGAs) to the required test applications, the object model of LabVIEW for the automation interface, and the CAN analyzer capability.

 

We saved considerable amounts of time and money on the overall framework. Previously, it took four to five hours to test 10 to 20 cases per module/peripheral of the microcontroller. With the system we created based on NI products, the same set of tests executes in just 10 to 15 minutes and the test quality has considerably improved.

 

We needed suitable test bench applications to test the different peripherals of the microcontroller. For example, to test an SPI interface, we needed an SPI master or slave setup as the test bench. We created each of these test benches using the LabVIEW FPGA VIs (CAN VI for CAN interface). The test case construction within the framework then refers to the respective VI.

 

In the framework, we can create a LabVIEW object to obtain the VI reference that exposes the controls and indicators to the user for configuration as per the test case requirement. Executing the test cases in the automation framework invokes a particular VI depending on the test case, configures the VI, and runs it.


The framework then executes the tests without user involvement. For example, the solution for measuring a PWM signal is as follows: the VI measures the duty cycle and frequency of the signal and then saves them to a Microsoft Excel file.

 

Another solution involved receiving data from an SPI master. A VI acting as a slave SPI can receive data from the device under test (DUT) acting as master. The SPI slave works for different baud rates and varying bits of data. The user can configure the VI while its running depending on the configuration of the master SPI on the DUT.

 

Yet another solution involves generating the required number of pulses to test a capture and count module. The VI can generate pulses with or without glitches on either a rising or falling edge or both. The user can configure a VI to generate the required number of pulses during the run.

 

Conclusion

With NI products, we can easily test various microcontroller peripherals with a single hardware and software solution. We used NI products to automate our testing by providing easy interfaces to our automation framework, saving a lot of effort and money.

 

Author Information:

Zalman Rafael
Infineon Technologies
Kalyani Platina, 3rd floor, Block I #6 & 24, EPIP Zone Phase II Whitefield,
Bangalore
India
rafael.zalman@infineon.com