This is my somewhat crazy networked controlled bi-color LED matrix build:
It’s build around the TI TLC59281 as current sink column controller and a shift-register and PNP transistors as row controllers (and current source). I am using two TLC59281s one for red and one for green. Each sink controls two 8x8 LED matrix displays such that the rows of the two matrices are common. An NXP LPC1114 controls these two displays and is itself controlled via a simple SPI-protocol. The LPC1114 is running at 50MHz and updates the two led-matrices completely around 50 times a second and has 6-bit color depth per color (i.e 12-bit colors). It receives commands from the SPI bus at 1MHz, and allows the SPI bus to be shared amongst multiple display controllers. Each controller is assigned an area of the total “screen space” and simply ignores draw operations outside of this space.
In the video above I have two LPC1114s and one Stellaris Launchpad:
"shortly" turned out to be 7 months, and I haven't made any of the planned "cleanups". However, the code is now available at github. Stellaris code is at https://github.com/xpgdk/networked-led-matrix-controller, while the LPC code is at https://github.com/xpgdk/lpc-led-matrix-controller
Questions and comments regarding the code are welcome. I still have plans to do quite a bit of cleanup, but I just don't have the time for it currently.
Thanks to @@hongphuc6789 for reminding me of releasing the code.
Here is my first project with Stellaris Launchpad. This is a very simple thermometer, that uses the internal temperature sensor of the Stellaris MCU for temperature measuring, and the UART_0 module for sending data to a PC application. The PC application displays the current temperature in °C numerically and graphically (acts as a logger).
In every two seconds the MCU:
measures the temperature with ADC:ADC with 4 Samples and FIFO Depth
Each FIFO with 64X Hardware Sample Averaging
ADC Speed: 250 KS/s
calculates the average and the temperature data in °C:Only integer math is used
sends data to the PC:UART_0 module, TX only
Baud Rate 115200 kbit/s
Data format: „C” -> real temp 23.56978°C
Data format: „dC” -> real temp 23.56978°C sent data: „236dC”
Data format: „cC” -> real temp 23.56978°C sent data: „2357cC”
and then enters to hibernation:Hibernation reduces self heating
Wake from hibernation by RTC or WAKE_PIN
BLUE: start from cold reset
GREEN: start from hibernation by RTC (indicates run mode)
RED: start from hibernation by WAKE_PIN
I used CCS 5.3 with StellarisWare to create the source code. Here is the full project:Stellaris_v01.zip
Install CCS 5 and StellarisWare.
Download and extract the *.zip file, then start CCS and use "Project"->"Import existing CCS Eclipse Project".
Browse the extracted "Stellaris_v01" directory and click "Finish". Build Project then debug.
I developed the PC application in C# with Visual Studio 2012, in Windows 8. The release files:
I updated my PC application. New features:
users can select between Celsius [°C] and Fahrenheit [°F] temperature scale
The release files: http://forum.stellarisiti.com/index.php?app=core&module=attach§ion=attach&attach_id=309
The source files: https://copy.com/4DkJpd4O49ky
Stellaris LM4F120 LaunchPad (no additional hardware is needed)
Windows OS with .NET Framework 4 (for PC app.)
A firmware for the MSP430 LaunchPad (MSP430G2553) with additional features(selectable averaging, supply voltage mesurement) is also available to the same PC application.
The source code: main.c
„Getting Started with the Stellaris ® EK-LM4F120XL LaunchPad Workshop”: "Code Composer Studio has some issues connecting to hibernating devices (and reconnecting) since they essentially power off in the middle of the debugging process.We’ll try to step around those issues, but you may see CCS terminate abruptly. If this
happens, you can restart CCS and try again, or you can use the LM Flash Programmer to reprogram the device with the qs-rgb (non-hibernation) program. In either case, you need to hold SW2 down to keep the LM4F device awake in order for either tool to connect."
I am new to ARM(Stellaris).
Some of the hibernation API functions is not clear to me.
Sorry for my English