Specifications
song from the play list without buttons being pressed. This would allow the buffer to be
unaffected by the GAP and discarding of data algorithms. The result was that the player
had just as much difficulty regardless of whether it went from low to high or high to low
bit rates; the buffer quickly emptied. To solve this problem, it was necessary to reset the
decoder every time the buffer emptied. It was decided to do it when the buffer emptied
because this is the functional outcome of the change in bit rate. The result of this was
that the buffer did empty once when the bit rate changed but only once, so not after the
decoder was reset, and the effect on the sound was unnoticeable. This was then
implemented for the button presses. The decoder was reset after the GAP was received.
This ended up being a very important discovery. As a result, it could now switch
between bit rates without emptying the buffer, and more importantly the problem of the
mysterious old data play back was gone. It seemed that the MP3 decoder never
completely emptied its local buffer until the end of the file was reached. By calling the
reset function, the decoder’s buffer got emptied. The player itself now worked with full
controls, without problems.
5.3.8 Displaying the song name.
To display the song name an LCD module was chosen as the display. The display
module that was available at the time was a module with two rows and sixteen columns.
5.3.8.1 Integrating the LCD
The LCD was connected to the Ethernut as shown in table 4.
LCD connections Ethernut Connections
Data lines 4 – 7 PORTE PINS 0 - 3
Write/Read GND
Enable PORTE PIN 4
Register select PORTE PIN 7
VCC VCC
GND GND
Table 4 The LCD connections to the Ethernut
52










