FEST ECE 477 Fall 2011 TEAM 5 Gloria Budiman Alexander Kidarsa Christopher Sakalis Vishal Gala
FEST Far End Speakerphone Test System
State Machine Different phases of test Optimize power consumption based on current state Interrupt Driven Flexible peripheral control Minimize waste of CPU time SOFTWARE DESIGN
I2C SCI Mux1: Serial LCD Mux2: SPL SPI A: SD card B: Codec I/O PWM + ADC PERIPHERALS Timer2: 100Hz 100 interrupts for “natural one second” (hint: BCD) 20 interrupts for buttons sampling Timer0: 16kHz for codec
Boring Boilerplate Adc.c CpuTimers.c Epwm.c I2C.c PieCtrl.c PieVect.c Sci.c Spi.c SysCtrl.c usDelay.asm … +16 more CODEBASE FatFS ff.c Made in EE063 Main.c dialog.c gpioSetup.c F28035_FLASH.cmd* mmc-c28x.c* fft.c … more coming
FAT32 filesystem handler Requires low-level driver mmc-c28x.c in our case Requires 100Hz timer FATFS
Initialization spree GPIO PLL (Set to 60MHz) Low Speed Peripherals Clock Prescaler (LOSPCP) Interrupt Vectors Initialize peripherals Entry: (Hard) Reset Next state: Always THE MACHINE: STATE0
Hello World! User! Initialize LCD Initialize Codec Wake the SD card up Set LOSPCP as slow as possible Entry: User interaction, immediate from State0 Next state: User interaction THE MACHINE: MAIN
Test options Full Duplex Far End only Near End only Source file selection, loop, test length Entry: User interaction Next state: User interaction THE MACHINE: CONFIGURATION
Test output level Volume digitally adjusted by re-programming the codec Using Sound Pressure Level Characterize and equalize the speaker Entry: User interaction Next state: User interaction THE MACHINE: CALIBRATION
Time delay Frequency response THD (+N?) InterModulation Distortion Crosstalk …+n! more Entry: User interaction Next state: SD card present THE MACHINE: PRESET TEST
Marathon burn-in test Entry: SD card present Next state: User interaction, pre-programmed timer exceeded, SD card full THE MACHINE: FREE-RUN TEST
Detection: f_write() returns ByteWritten less than ByteToWrite Entry: see above Next state: Trap state, user intervention required THE MACHINE: FULL
MEMORY MAP Not to scale As defined in F28035_FLASH.cmd RAM usage will increase as FFT joins the party
Coding ProgressFrustration Level ADCDNE Interrupt FunctionsCompletedTestedVerified EPWM_Init()CompletedTestedVerified EPWM_Dynamic()DNE I2C_Init()CompletedTestedVerified I2C_Send_Data()CompletedTestedVerified Sci_Init()CompletedTestedVerified LCD_Init()Not needed? LCD_SendMessage()CompletedSimulated SPL_RequestData()DNE Spi_Init()Completed Spi_Codec_TxRx()DNE FatFS: mmc-c28x.cPartial FFT()CompletedSimulated AutoCorrelation()Partial dialog()CompletedTested {… additional DSP algorithm}DNE
CODE BUSTER LCD is 20x4 (non-graphical) No means of conveying graphical data Preset Test result has to be stored somewhere if SD card is not present f_getfree() returns number of free cluster Problem: out-of-sync file system structure returns incorrect count
Minimize critical section Prevent file system collapse on apocalypse CODE BUSTER
QUESTIONS?