I couldn’t take it any longer. I haven’t played in a long time so I decided to start from scratch and design another digital clock. I’m working on the board right now. I had one more display, RTC, and 32.768KHz xtal left.
I am building my own display driver this time though. The display driver will be an MCP23S17 multiplexer and a PIC16F690 microcontroller. The display driver that I used in the Picaxe clock was about $8. Not counting the amount of time I’ve spent writing the code my display driver should be about $2. Plus, I really don’t want to have to buy a driver and then spend the money on shipping when I have what it takes to make something work. We’ll see how it goes. In theory it seems like it will work.
I’ll explain more in a few weeks. I’m also tackling this project to create a C header file for the DS1305. It might help someone else out who is trying to work with it.
Over the past two days my wife and child have been sick so I’ve had lots of home time to work on this project. It’s pretty amazing to me that I just started this PIC16F690 POV project less than two days ago, and I already have it finished and working. I worked pretty hard to get the C files completed for this. I also drew a board with Eagle, but I just used some scrap perfboard. Nothing in the world beats point to point soldering. It was actually pretty easy since there isn’t really much to solder in this project.
Manufacturers P/N: MCP23S17
Cost: $1.65 from Digikey.com
Description: 16-bit I/O expander w/ Serial Interface
Sometimes using small microcontroller chips (to save money!) offers a limited number of inputs and outputs. Especially when using the Picaxe family of chips, the inputs and outputs are sometimes just not enough. There is an unfortunate event that happens with the Picaxe 08, 08M, 14M, 20M, 18, 18A, 28A chips: not enough GOSUBs are allowed. The Picaxe 18X, 28X family, and 40X family has the memory and GOSUBs available to handle this expansion. This tutorial uses sub procedures for the serial communications. The X1 and X2 parts have SHIFTOUT and SHIFTIN capabilities that saves a lot of memory. I have done some experimenting, and I have taken a poorly written program (143 bytes) to a better one (123 bytes). This information is provided, but the actual example program will demonstrate a little more and will be much larger.