1 / 29

EE3271 Design Laboratory

Lab Supervisor – Dr. WH Lau. EE3271 Design Laboratory. Aims and Objectives. Design and implement a MP3 Player Learn the ICs operation and how to use program to drive the ICs work. Learn data transfer in between ICs. MP3 Overall Flow. Hardware Design. Block Diagram of MP3 Player.

Download Presentation

EE3271 Design Laboratory

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lab Supervisor – Dr. WH Lau EE3271 Design Laboratory

  2. Aims and Objectives • Design and implement a MP3 Player • Learn the ICs operation and how to use program to drive the ICs work. • Learn data transfer in between ICs

  3. MP3 Overall Flow

  4. Hardware Design

  5. Block Diagram of MP3 Player

  6. Components Description • LPCEB2000-B Processor Board • Installed with a Philips ARM processor LPC2292 • Two debugging modes are available via JTAG_EN Jumper and ETM_EN Jumper • Boot set jumper: can boot from internal flash or external flash by jumper set. • Two I/O ports (P0.0-31, P1.0-31) for I/O interface

  7. J1, J2, J3, J4 are connectors for external bus interface. J1 and J3 are 40 Pins, J2 and J4 are 20 Pins. J1 and J2 are used to connect the board to applied board, J3 and J4 are used to extend upwards J1 J2 J4 J3

  8. STA015 • Microelectronics MP3 decoder chip • An MPEG Layer III audio decoder with ADPCM compression / decompression capabilities and BYPASS mode for auxiliary audio sources post-processing • Decodes elementary streams compressed by using low sampling rates • Receives the input data through a Serial input Interface • The decoded signal can be a stereo, mono, or dual channel digital output. • Interfaced to LPC2292 using the I2C and SPI interface pins of Port 0 • Equipped with a buffer

  9. CS4334 • Stereo digital-to-analog output systems including interpolation, 1-bit D/A conversion and output analog filtering in an 8-pin package • Adjustment of sample rate between 2 kHz and 100 kHz simply by changing the master clock frequency • On-chip digital de-emphasis, operates from a single +5 V power supply, and requires minimal support circuitry • Ideal for portable CD players and other portable playback systems • Directly connected to the output of STA015 via the IIS interface

  10. LCD Display • 16 characters, 2 rows LCD module • Requires 8-bit ASCII character input and 3 input control signals • Use for testing wire-wrapped board is correctly installed

  11. Bus Setting - I2C • A bi-directional 2-wire bus for efficient inter-IC control • There are Serial Data Line (SDA) and Serial Clock Line (SCL) • In this lab, we used I2C to configure the STA015.

  12. Bus Setting - Data Request We use polling to keep checking the data port (EINT3) When the buffer in STA015 underflow, it will generate a data request signal.

  13. Bus Setting – SPI SPI (Serial Peripheral Interface) Uses the MOSI (Master Output Slave Input) and MISO (Master Input Slave Output) pins to perform serial byte data transfer. In this lab, we use SPI to stream the data from LPC2292 to STA015.

  14. The flow of bus SCK SCK SSEL WS SD MISO, MOSI

  15. Software Design

  16. Design Flow • System Initialization • LCD Initialization • I2C Initialization • STA015 Initialization • SPI Initialization • STA015 Data Request Signal (Polling) • Play song

  17. System Initialization • Set all the port 0 to GPIO ports • Set the PLL Clock frequency to 60MHz • Code: System_Init() in LCD.c

  18. LCD Initialization • Set the LCD data pins • By sending command to set the preferences of the LCD display • Code: LCD_Init() in LCD.c Related functions: --SendCommand(char cmd); --sendchar(char a); --LCD_output(char *str);

  19. I2C Initialization • Code: I2C_Init() in I2C_Test.c Related functions: --I2C_IRQ_Srv(); --uint8 I2CTest_SendStr(uint8 SlaveAddr, uint8 WrAddr,uint8 *Str,uint8 number); --uint8 I2CTest_RcvStr(uint8 SlaveAddr, uint8 RDAddr,uint8 *Str,uint8 number);

  20. STA015 Initialization

  21. STA015 Initialization • Code: sta015_init() in sta015.c

  22. SPI Initialization • Modify the Clock of SPI • Update the spi_set() function • Code: SPI_Init() in SPI_Test.c Related functions: spi_set()

  23. STA015 Data Request Signal (Polling) • Code: Main() in mp3.c while(1){ if ((IOPIN0 & P30) == P30) { spi_set(*song1); song1++; } ……. ……. }

  24. Play song • Download a mp3 file to a particular address through EmbestIDE softwares • Run all the initialialzation functions • Signal spi to send data • Code: Main() in mp3.c

  25. Testing and Debugging

  26. Testing • Check register $01(IDENT) , return 0xAC if STA015 is presence • Using the Oscilloscope -- Checking I2C Clock, I2C Data -- Checking SPI Clock, SPI Data -- Checking 1KHz tone frequency

  27. Difficulties Encountered • Unclear concept of STA015 • Using wrong Oversampling Ratio • Missing Hardware Reset • Missing Data Request

  28. Conclusion • What we had learnt -- Project Management -- STA015 configuration -- Debugging with Oscilloscope -- Practically understand I2C and SPI data transfer bus

  29. Thank You !

More Related