I made it down to Jaycar today and bought all the bits I was short of. These guys aren’t all that cheap but time is short and I really need to get the parts today. They also had a neat little 0.5 watt amplifier kit called “The Champ” which can run off 4 – 12V. Perfect.
I assembled the amplifier, speaker and volume control in about 15 minutes. The sound is a little buzzy but what do you expect for $8. It will do just fine.
I also wired up the MIDI Sync board. I have decided to completely finish the circuitry before starting on the software to save time but it’s a little risky to my schedule. There are still a lot of unknowns in this project – will the ARM be able to stream the audio to the DAC fast enough? Will it all fit in the box? Will the sound quality be OK? Will I be able to write the software in time? There are many things which could go wrong and I don’t have the time to build this carefully, testing each stage as I would normally do. I am just blasting ahead with confidence in myself that I have the skill to make this work.
So next is the DAC. I found a few different DAC chips in my parts box and after reading the data sheets for a few of them, I have decided on the AD558 which is a very simple 8-bit DAC with a built-in data latch. I need the latch because I will be sharing the data bus with the buttons and LEDs. I just tossed this onto a piece of veroboard. The only external component is a 7805 voltage regulator because the DAC runs off 5V and cannot share the 3.3V supply from the ARM. I won’t need a level converter for the data bus because the ARM can pull the data lines up to about 3.2V which is high enough for the DAC.
After wiring the ARM up to the MIDI Sync board, I have realised there is a fatal flaw in my plan! After checking the electrical specifications for the ARM7, I discover that the output pins can only supply a maximum of 2 milliamps each. I need more like 25mA to drive the LEDs. So I guess I’ll need a driver chip of some sort. I have a 74HC244 in my parts box which would be perfect but now I have to wire that up too. This thing is getting more complicated than I had planned.
Time for a re-think. After a little time-out and thought I have devised a new plan. I’ll fit the 8-bit PIC microcomputer to the MIDI Sync board and use it to drive the LEDs and read the user input. This will actually make the job easier as I already have PIC software written to do this from the MIDI Sync Box project. The PIC can send data to the ARM via RS232 and all the ARM has to do now is play back the audio samples when instructed to do so by the PIC. I like this new design even though there are now two computers in the box! Talk about overkill, I am going for speed rather than elegance here.
It took me a little while to find my original code for the MIDI Sync Box, set up all the compilers and tools and get it running but I now have the LED display, all the timing, tempo control and start/stop control done.