Ported the driver code over to the Single Driver display modules

A project log for LED Matrix Display

Putting some surplus LiteOn LTP2558AA modules to use

BharbourBharbour 09/26/2020 at 21:560 Comments

Most of the work on the #GPS Driven Clock project is done. It is presented as a separate project.

As mentioned in earlier log files, the dual driver display modules were too expensive, so I developed driver board using a different driver chip (ISSI IS31FL3730) that is about 40% of the cost of the dual driver modules. When I started on the clock project, I had just gotten the first of the single driver modules built up and minimally tested.

This morning, I built up the other two PCBs for a total of 3 of these displays operating. In order to drive the new displays with more than just test code, I ported the software drivers over to deal with the IS31FL3730 chip. The architecture of the new chip is quite a bit simpler than the previous one, so the initialization sequence changed and there is only one chip per module to drive. Because of the way that the display had to connect to the driver chip, the data format for the green LEDs is rotated 90 degrees from the format for the red LED data. I brute forced this with a second character generator table rather than rotatating the data in real time. The character generator tables are 768 bytes per table, which is not too ugly.

The current control register on the new chip is a wierd, discontinuous thing, so I need to write the code to map a linear input value to the required register data format. 10/5/2020 The current control function is written and the display drivers are willing to source up to the 70mA listed on the data sheet. They run kind of warm when doing so though.

The new chips only support 4 different I2C addresses, and I did not put an address translator chip on each board, as the translator chips cost more than 2X the cost of the display driver chips. I have a bus splitter/address translator board laid out already that will let me run 4 separate bus segments with their addresses mapped to unique spaces, so one of those boards will support up to 16 display modules. Also, the power for the displays and the power for the address translator chips are supplied through different connectors on the splitter translator board. This will allow me to run the I2C bus on the microcontroller side at 3.3V and the individual I2C buses to the displays at 5V which should give more headroom on the LED supply from driver chips.

10/8/2020 The boards for the I2C Splitter/Address Translator are back. I built the first one up and verified that it is operating as expected. I need to order some more connectors to finish it. Also, it won't be required until I build up more of the single driver displays.