Since we’ve first introduced our dual bargraphs, I’ve had issues with the way they were supposed to be driven by 20 LM3914 devices, because we did not have enough real estate on the bargraph PCB to fit them all, which would have required that we design an overly complex assembly made of two PCBs for each bargraph.
While reviewing the LM3914, I realized that it was not the right device to drive our LEDs anyway, because it takes an analog signal as input, while we want to drive them in the digital domain. After some research, I finally stumbled upon the AS1112, which is a 16 channel direct LED driver IC with 12-bit internal PWM and 6-bit analog current adjustment. Translation: we need only 16 of them to drive our multi-color LEDs instead of 20.
Not only that, but they only measure 5×5mm, which means that we won’t have any problems fitting 16 of them on each bargraph board. The AS1112 uses an SPI interface, and multiple devices can be cascaded together in order to drive more than 16 LEDs. As a result, we will use 3 of them on our keypad board to drive the 48 LEDs found on the keypad (36) and transport panel (12). Also, we will use one device to drive the 16 CV input LEDs, an another one to drive the 16V output LEDs. The former will be driven by submodule 2, while the latter will be driven by submodule 3, which will remove the need for sending information about CV inputs between submodules 2 and 3.
As a side benefit, we only need 4 GPIO pins instead of 18 on submodule 1 to drive the LEDs of our keypad and transport panel, which means that we’re only using 30 GPIO pins on it, instead of 44. Knowing that we only have 48 of them, this is quite a relief.
Now, I feel much, much better about our crazy bargraphs…