rockus.at: PROmp3

rockus.at / Amiga / PROmp3

Disclaimer

ProMP3 prototype top PROmp3 prototype top

ProMP3 prototype top PROmp3 prototype top

ProMP3 prototype bottom PROmp3 prototype bottom

PROmp3 v2 in action PROmp3 S/N 001 connected to my devbox

PROmp3 v2 in action PROmp3 S/N 001 close-up

ProMP3 S/N 002 top PROmp3 S/N 002 top. The ruler shows centimeters.

ProMP3 S/N 002 top PROmp3 S/N 002 top

ProMP3 S/N 002 bottom PROmp3 S/N 002 bottom


ProIO top ProIO top

ProIO top ProIO top

ProIO bottom ProIO bottom

ProIO bottom ProIO bottom

PROmp3 is a brand new hardware mp3 decoder that has been developed completely from scratch, featuring hardware mp3 decoding using the popular MAS3507 chip. It is intended to be used on clock-port type interfaces and as such is also supposed to work in plain A1200s. Using hardware decoding greatly reduces the requirements on the host computer, so even unenhanced Amigas should work (especially if one takes into account that even serial communication via the slow CIAs works for other similar decoders --- and PROmp3 uses an 8bit parallel interface and the much faster clock-port).

The hardware consists of two parts. One of the boards holds all the digital electronics, interface logic and voltage supply. This board connects directly to the clock-port. Via flat ribbon the second board is connected, holding the decoder chip, D/A converter and analogue electronics including the audio jack, which is intended to be either mounted on a slot cover or into the expansion space at the back of an A1200.

Right now there only exists a rather rudimentary software for this decoder, but it already demonstrates the most important feature: playing mp3s in an impressive quality. As this software makes intensive use of interrupts, decoding and playing mp3s happens completely in the background. Sometimes while coding I actually forgot that it was that same Amiga the decoder was running on, just because it is so un-intrusive. Also, regardless of work load, there are no stops or nasty gaps in audio playback.

One major problem, however, is still to be resolved before serious software driver development can commence. The presently used decoder chip does not need any initialisation. It accepts mp3 bitstreams right from power up. However, future versions of the same chip need initialisation via I²C. This serial bus, which I am rather unsympathetic for, has been implemented in the current hardware, although not functional. The problem has been isolated, but there is no solution, yet, due to space and pin constraints. I do not yet know how to get around that particular problem any other than throwing another GAL at it, which I rather would not.


The features so far:

  • mp3 playback via dedicated hardware
  • dedicated analogue audio output (3.5mm stereo)
  • clock-port interface
  • parallel interface design, therefore greatly reducing work load on host
  • completely interrupt driven

One disadvantage of this design is that mp3 audio and Amiga audio output have to be mixed and/or switched externally, as the outputs are physically separate. Also the issue with the I²C bus is unresolved.

The decoder has not yet been tested with original clock-ports or the ones proven to be working according to specification. It does work, however, on an obscure prototype called ProIO¹ and on my own version of a clock-port adapter for the Ariadne 2 network card.


Also, for reference, there are a few things out there to get you started if you plan on going a similar way I did. I thought, they would be informative:


¹ The ProIO should have been something like the Multiface III, but came too late by about 1 or 2 months back when the MFC III was released. It was developed (including drivers --- and working well) by the guys at ProSystem (the old Amiga shop in Graz). On the left there are a few pictures of this card where you can see the connectors I added to the solder side to develop the PROmp3 prototype.