Hardware
One of the disadvantages of using a parallel display is that after using those pins, there arent many pins left to route to headers. Therefore we have decided to use an io expander.
When designing the circuit we wanted to utilize it more, therefore we have selected SLG46826 which is Programmable Mixed-signal Matrix IC with In-System Programmability.
SLG46826 is connected to RP2040 through I2C
.
SLG46826 is connected to 3V3, however it can be changed to 5V if needed from the JP3 Solder Jumper
.
This is an FPGA-like device which can be programmed. There are cool features can be added. You can see the block diagram below:
Software
Programming with Arduino Uno
An application note is available that guides you through the process of programming the SLG46826 using an Arduino Uno. You can program the SLG46826 mounted on our development board by using the provided software and our I2C Pins.
By using this method you can program/erase both NVM and emulated EEPROM of the SLG46826.
Internal Programming
If you wish to explore the direct programming and erasing of the NVM, we offer a Programmer code specifically designed to simplify the task of programming the device's non-volatile memory (NVM). You do not need to establish any extra connection. Feel free to give our programmer code a try and make the programming process hassle-free.
Our sample code includes two square wave code examples designed to generate output to IO2 (Pin 4) of the SLG46826. As explained in the application note, you can easily copy and paste the hex codes to the main.c file and reprogram the SLG46826.
In order to change the SLG46826 program, open the desired hex file and copy the highlighted area.
And paste into:
To observe the effects of the new program, you will need to disconnect the power supply and then reconnect it to the device.
Taking the Next Step: Creating Your Own Projects
By installing the GreenPAK Designer Software, you gain the ability to modify our Square Wave generator project and conduct various trials on it.
Alternatively, you have the option to create entirely new projects from scratch, providing you with the flexibility to explore and experiment with different configurations and functionalities.