Software for NXP TDA9950 and TDA9951

The TDA9950 is an I2C slave chip that implements the CEC protocol stack, which is the control path for the HDMI digital interconnection standard used by high-definition video products.

Working for Philips, I designed the software architecture and the automated software verification for the device's 8051-based microcontroller.

Software features I contributed:

  • Designed using UML statecharts and coded in C
  • Designed a layered architecture to handle interrupt callbacks using the subscribe-notify design pattern
  • Decoded CEC bus timing using a single hardware timer interrupt
  • Used a Hardware Abstraction Layer to encapsulate the 8051 peripheral drivers
  • Wrote a serial debug protocol to accesse all internal system variables
  • Automated unit testing using the Keil uVision3 simulator
  • Automated software verification tests using a version of my Excel-based TestFrame system

The TDA9950 was later expanded into the TDA9951 front panel processor with CEC, a device that forms the basis of the user interface for consumer electronic products that support HDMI.

I designed the reference application electronics that appears in the TDA9951 data sheet, and designed and implemented much of the on-chip software that supports the following features:

  • Infrared remote control protocols RC5 and RC6
  • Standby and wake-up power modes
  • Generic vacuum fluorescent displays (VFD)
  • Real-time clock calendar
  • Keypad scanning and debouncing