By Zhi-Hern Loh
The hardware on this page was driven by the programs on the program design page.
Pictures - Taken to document the process of the project.
This section contains the following:
There are two sets of port lists, the first set is the port lists used in the final version of the project. The second set is the port list designed for the CD-ROM version of this project.
Schematic 1 - LCD contrast control.
The CD-ROM drive that I started with was a TEAC CD224EB93. It had a Japan Aeronautics Engineering (JAE) connector (JAE-KX14/15). Unfortunately, the connector does not have a wire adapter and I had to solder a wire to it manually. This connector had 0.8mm spacing and soldering 30 wires to it was a nightmare. The soldering took up much of my spring break.
Schematic 2 - CD-ROM interface (part a)
Schematic 3 - CD-ROM interface (part b)
Schematic 4 - CD-ROM interface for TEAC-CD224EB93 notebook CD-ROM drive.
The Mega128 operates at 5V while the STA013 operates at 3V, thus their interface required the use of a level shifter. The PJRC MP3 website did have some level shifting using resistors, however I wanted to find a more elegant solution. In my research, I found level shifting suggestions on the Phillips semiconductor website (Philips Semiconductors - I2C - About the I2C-bus). Two mosfets and a pair of pull-up resistors were used for the bi-directional level shifting.
Instead of building the bi-directional level shifter, I adapted a Maxim MAX1840for this purpose. The MAX1840 was intended for SPI/QSPI/MIRCOWIRE level translation and hence was not directly compatible with the Phillips I2C bus. However the following modification to the serial data (SDA) line allowed me to use the MAX1840.
Note that although the I2C specification requires a pull-up on the serial clock line (SCL), this is not needed when there is only one master (MCU) on the bus. Moreover because only masters can set the SCL level, the SCL line need not be bi-directional since only the MCU is the master. The bi-directional requirement of the SCL line is mainly for arbitration between masters and fortunately is not required for this project.
Creative use of the I/O, CLK and Reset lines of 2 MAX1840s is sufficient for the I2C interface.
Table 1. Port connections for the MCU and STA013 Interface
TWI1: Two wire interface. ATMEL documentation refers to the I2C functions for the Mega128 as TWI.
There was another MAXIM part (MAX 3370) that was made specifically for I2C level shifting. However this part only had two input and output lines which was insufficient for my use. (Click here for a picture of my work on the MAX3370).