Scoreboard progress

It’s been a few weeks since I’ve gotten 4 MAX6953 chips (for free…Thanks Maxim!).  I won’t get into the details of the chip, you can read about it here. Now that the hustle and bustle of the holidays are over I finally got to concentrate on getting them to work with the Propeller.  I have to say, it was quite the learning experience.  It really brought home the fact that I remember jack squat about what I ‘learned’ in a beginning electronics AP class my senior year in high school (6 years ago…wow I’m getting old).

My first attempt was rather boring and actually sad. First of all I had a hard time getting everything hooked up. For some reason I just couldn’t understand the schematic on the Maxim site. After hooking everything up the same way about 30 different times I realized that I was trying to communicate with it via a serial interface. The chip only supports the SPI interface.  After sorting that out and figuring out what to send to the chip I ended up with the following video.

While the blinking might look cool, it’s not supposed to do that. From what I found out is that the power was dropping too much to keep it on. So, after much frustration I added a 47uF capacitor and walla! Well, almost. The problem with the row of LEDs staying on no matter what was due to the intensity setting being set to 15. Ten prooved to be more than bright enough. Now everything works like a charm…

Muuuch better. The first shape is a heart. I was testing out the custom fonts feature this chip has.  The second A-Z run is showing the intensity setting.

 Here’s a picture of the setup. It looks far more complex than it really is.  I’m attempting to learn EAGLE so hopefully you’ll give me a few days to get the schematic up. I’m tired of messing around with EAGLE right now. So enjoy an awesome photoshop of a schematic instead. 🙂

My MAX6953 Schematic

My MAX6953 Schematic (Click for fullsize)

Hooked up and ready to go. Second matrix ready to be hooked up

Hooked up and ready to go. Second matrix ready to be hooked up (Click for fullsize)

 

The code to accomplish this is actually really easy. Of course, I say this now that I’ve figured it out. Below is an excerpt of how the ‘demo’ works.


tempa :=$41 ' Start with A
  repeat tempa from $41 to $5A ' Cycle A-Z
    m.WriteChar(tempa) ' Send it to the max
    WaitCnt(clkfreq/2+cnt) ' delay
   
  cognew(Flex,@PWMCog) ' start the intensity setting in a new cog
  tempa:=$41 ' Start with A
  repeat tempa from $41 to $5A ' Cycle A-Z
    m.WriteChar(tempa) ' Send it to the max
    WaitCnt(clkfreq/2+cnt) ' delay

MaxCom.spin

Looks simple, right? That’s because I wrote a new ‘object’, making communicating with the chip so much more easy.


PUB WriteChar(char)
i.Start
Write($A0) ' Write operation
Write(GetDeviceAddr) ' digit to write to
Write(char) ' character to write
i.Stop

MAX6953.spin

So you might be thinking this is real great and all but what the heck is this for? Good question, I’m glad you asked. What I’m working on is the scoreboard for the pinball machine. Instead of using the traditional DMD I want to use LEDs. It’s definatly a much bigger challenge than a DMD. Although, once I reveal the machine design it should make a bit more sense of why I chose LEDs.

As always, I welcome any suggestions on how I can improve my blog posts. Especially technical posts such as this one.

Author: Jeremy

See all posts by (34)

Leave a Reply