Memoria de Prácticas 1

6

Click here to load reader

description

Memoria de Prácticas de IP.

Transcript of Memoria de Prácticas 1

  • Memoria de Prcticas

    Tarjeta de Sonido USB

    Melero Lpez, Brbara

  • 2

    NDICE

    1. INTRODUCCIN ................................................................................................................. 3

    2. SEMINARIOS ...................................................................................................................... 3 2.1. BSQUEDA DE COMPONENTES ................................................................................................. 3 2.2. SOLDADURA .......................................................................................................................... 3 2.3. PROGRAMADO ...................................................................................................................... 4 2.4. PRUEBA FINAL ....................................................................................................................... 6

  • 3

    1. Introduccin

    En esta memoria se va a relatar las prcticas realizadas en la asignatura Interfaces y Perifricos, en donde se trabaj para hacer una tarjeta de sonido USB.

    2. Seminarios

    A lo largo de varias semanas se llev a cabo la realizacin de varias sesiones de prcticas y seminarios. A continuacin de detallarn estas mismas.

    2.1. Bsqueda de Componentes

    Figura 1. Esquemtico de la placa

    Dado el esquemtico de arriba, tuvimos que identificar y buscar los componentes electrnicos que iban a ser usados en la realizacin de la tarjeta de sonido.

    Cada uno hicimos un presupuesto orientativo de cunto nos costara comprar cada uno de ellos y, despus, se pidieron conjuntamente todos a una sola tienda de electrnica.

    2.2. Soldadura

    El siguiente paso, una vez que llegaron todos los componentes, fue volver a identificarlos y separar cada alumno los suyos para, despus, soldarlos a la placa.

  • 4

    Con algo de maa, y siendo la primera vez que lo haca, se soldaron todos los componentes a la placa, tomando para ellos varias sesiones de prcticas.

    Figura 2. Tarjeta de Sonido USB

    Quedando as, como la imagen superior, la placa al tener todos los componentes soldados.

    2.3. Programado

    La ltima sesin fue la dedicada al programado de la placa. Para ello se nos proporcion cdigo fuente parcialmente rellenado, en el que slo tenamos que aadir ciertas funciones cuyos esqueletos se encontraban en el .c.

    Por ejemplo el siguiente cdigo fuente:

    Funcin de ajustar la ganancia. void DoAdjustGain(void) { if ( LeftVolume > VolumeMax ){ LeftVolume = VolumeMax; } else if ( LeftVolume < VolumeMin ){ LeftVolume = 0; } if ( RightVolume > VolumeMax ){ RightVolume = VolumeMax;

  • 5

    } else if ( RightVolume < VolumeMin ){ RightVolume = VolumeMin; } if ( MasterMute ){ AdjustLevel( 0, 0 ); AdjustLevel( 1, 0 ); } else{ AdjustLevel(1, (unsigned char)LeftVolume); AdjustLevel(0, (unsigned char)RightVolume); } /**********************************************************/ /******************* to do ********************************/ // you have to control the volume variables (left and right) and mute // are in their range and adjust the sound card sound using the 'AdjustLevel' function: // parameters (channel left value = 1, channel right value = 0) // //NOTE: Yo have to check that volume variables value is between minimum //and maximum value [0,255]. We can simulate a Mute with // right and left channel to 0; /***********************************************************/ // // // // /***********************************************************/ }

    Funcin de Frecuencia void DoSetupSampleFreq(void) { /**********************************************************/ /******************* to do ********************************/ // You have to adjust the corresponding parameter according to // sample rate value (SampleFreq). // You have to set the 'BytesPerFrame', 'PR2' and 'T2CONON' variables. // // // if SampleFreq == {0xC0, 0x5D, 0x00} -> 24kHz // PR2 = 249 // BytesPerFrame = 96 // T2CONON = 0b00001100 // // if SampleFreq == {0x00, 0x7D, 0x00} -> 32kHz // PR2 = 187 // BytesPerFrame = 128 // T2CONON = 0b00001100 //

  • 6

    // if SampleFreq == {0x80, 0xBB, 0x00} -> 48kHz // PR2 = 249 // BytesPerFrame = 196 // T2CONON = 0b00000100 // //NOTE: If SampleFreq is not any below, use 24 kHz as default; /***********************************************************/ // // // // /***********************************************************/ if((SampleFreq[0]==0xC0) && (SampleFreq[1]==0x5D) && (SampleFreq[2]==0x00)){ PR2 = 187; BytesPerFrame = 128; T2CONON = 0b00000100; } else if ( 0x00 == SampleFreq[0] && 0x7D == SampleFreq[1] && 0x00 == SampleFreq[2] ){ BytesPerFrame = 128; PR2 = 187; T2CONON = 0b00001100; } else if ( 0x80 == SampleFreq[0] && 0xBB == SampleFreq[1] && 0x00 == SampleFreq[2] ){ BytesPerFrame = 196; PR2 = 249; T2CONON = 0b00000100; } else{ // por defecto la de 24kHz BytesPerFrame = 96; PR2 = 249; T2CONON = 0b00001100; SampleFreq[0] = 0xC0; SampleFreq[1] = 0x5D; SampleFreq[2] = 0x00; } }

    2.4. Prueba final

    Una vez terminado el cdigo fuente, nos dispusimos a compilarlo y a travs de MPLAB, depuramos el programa al chip de la placa con el programador PickIt2.

    Era el momento de probar lo realizado durante todas las semanas:

    La tarjeta de sonido hizo su cometido: la msica sonaba.