I'm having a devil of a time interfacing my RPi Model B+ to a Sure Electronics 4", 2-digit LED board.
So I post to the forum if anyone has any suggestions on what I might try to diagnose my problem. I'm thinking/hoping this might be a simple 74x595 problem, but I'm not sure if how I'm using the RPi might be causing the grief.
I could really use some assistance since I cannot get recognizable characters/digits to display.
Here's the board.
http://store3.sure-electronics.com/de-dp22911
(there's a doc link on that site as well, if you are inclined - search for DE-DP004)
I looked at the board schematic and each 7-segment display is driven by on-board, serial 74x595 chips, each with a ULN2003 that drives the displays. The board input signals consist simply of:
- +12VDC,
+5VDC,
GND,
CLK IN (goes to 595 PIN 11,12, active HI),
DIMM IN (goes to 595 PIN 13, active LO)
DATA IN (595 PIN 14).
Using the awesome WiringPI library, I designated 3 GPIO pins in output mode, and I'm writing to the pins using the same library. I also needed a logic level converter that takes the 3.3V out of the GPIO and converts it to 5V to control the display board. I verified the HI levels as +5V coming out of the logic level converter.
So this is what I'm doing:
Set DIMM HI, which blanks the display.
I shift in 16 LO signals (each clocked by sending CLK LOW, then CLK HIGH). This should initialize the 595's?
Set DIMM LO, nothing displayed. Ok.
So I then shift in 0xee, just like I do above (one bit at a time on DATA IN, with CHK LOW, CLK HIGH for each DATA bit) which according to the docs, is supposed to display a 'a' character, but it displays garbage. Consistent garbage, mind you, but garbage. Sending in several different, recognized data patterns all give me repeatible, scrambled results.
The display came with a 'demo' board which happily counts up and down on the display, so at least I know the board is working.
The Chinese vendor has tried to be helpful, but no luck communicating my problem with the language barrier.
I've tried inserting a 25ms pause between each signal change, and no difference.
Any advice on where I might look would be VERY appreciated.