To get a ball-park estimate, I will consider just my Frame Buffers—assuming that I have two rotating frame buffers for my Display, this gives me a minimum of
I will need a timer for:
As per my Minimum Data Frequency calculations, I must clock my shift registers at least at
Decide whether to drive the greyscale reference clock with an external crystal oscillator
For my Display, I must select a microcontroller that is capable of transferring serial data to my LED Drivers at the required Minimum Data Frequency of at least
I note that this is separate from the microcontroller's operating frequency; as there is no inherent synchronisation between the Frame Buffers and the matrix timing constraints—as long as I can shift the data out from the read-only frame buffer in time with enough left-over instructions to slowly compute the contents of the write-only frame buffer, everything should be fine.
Purpose | Pins Required | Remarks |
---|---|---|
Display row control | 3 | Shift register clear, clock, serial input |
Display column control | 8 | LED driver GSSIN , DCSIN , GSSCK , GSLAT , DCSCK , ~XBLNK , GSCK , flags input |
Debug LEDs | 4+ | Heartbeat LED, status, TX , RX —assuming a single GPIO per LED |
User Pushbuttons | 1+ | |
Brightness Control | 1+ |
For my display shift register row control, I intend on bit-banging the serial output using a GPIO pin and a timer interrupt. For my LED driver column control however, I intend on using a serial SPI peripheral to transfer the data, and a separate timer interrupt for the greyscale reference clock pin.
This gives a total minimum of 17 available GPIO pins.
At minimum, I will need one channel for my Brightness Control knob, and another channel for my Current Sensing signal.
I would prefer to have a microcontroller that can be directly programmed with a USB-C connection, without requiring an external USB-to-serial chip.
This will require further research to see whether this would still allow a debugger to be attached, though.
I will need at least one Watchdog Timer. Preferably, this will be a window watchdog—I can then perhaps configure it to require a refresh within a window around my row-refresh timing, to help ensure that my display is being driven with correct timing.
It would be desirable to have in-built USB Power Delivery USB-C Configuration Controller or USB Power Delivery Control Peripheral, such that I do not require an external USB-C/PD controller IC.
I would like to have the option to implement wireless Bluetooth Low Energy/WiFi connectivity in the future.