SED - SISTEMES ELECTRONICS DIGITALS PRÀCTICA LABORATORI Nº 2 2004/05 QT Objectius: Familiaritzar-se amb les interrupcions i el timer del sistema Volem implementar un generador de funcions modulades per amplitud (PWM) en el sistema NIOS. La modulació per amplada de pols, PWM (Pulse Width Modulation), es un dels sistemes mes usats per el control de servo-motors. Els servo-motors son els típics que es poden trobar en qualsevol sistema de radio control d’un model. Aquest sistema consisteix en generar una ona quadrada en la qual es varia el temps que el pols està a nivell alt, mantenint el mateix període (normalment), amb l’objectiu de modificar la posició del servo segons es desitgi. Descripció detallada del funcionament dels servo-motors: El sistema de control de un servo se limita a indicar en que posición se debe situar. Esto se lleva a cabo mediante una serie de pulsos tal que la duración del pulso indica el ángulo de giro del motor. Cada servo tiene sus márgenes de operación, que se corresponden con el ancho del pulso máximo y mínimo que el servo entiende. Los valores más generales se corresponden con pulsos de entre 1 ms y 2 ms de anchura, que dejarían al motor en ambos extremos (0º y 180º). El valor 1.5 ms indicaría la posición central o neutra (90º), mientras que otros valores del pulso lo dejan en posiciones intermedias. Estos valores suelen ser los recomendados, sin embargo, es posible emplear pulsos menores de 1 ms o mayores de 2 ms, pudiéndose conseguir ángulos mayores de 180°. Si se sobrepasan los límites de movimiento del servo, éste comenzará a emitir un zumbido, indicando que se debe cambiar la longitud del pulso. El factor limitante es el tope del potenciómetro y los límites mecánicos constructivos. El período entre pulso y pulso (tiempo de OFF) no es crítico, e incluso puede ser distinto entre uno y otro pulso. Se suelen emplear valores ~ 20 ms (entre 10 ms y 30 ms). Si el intervalo entre pulso y pulso es inferior al mínimo, puede interferir con la temporización interna del servo, causando un zumbido, y la vibración del eje de salida. Si es mayor que el máximo, entonces el servo pasará a estado dormido entre pulsos. Esto provoca que se mueva con intervalos pequeños. Requeriments de la pràctica: Per implementar aquest tipus de sistema de control usarem un mòdul PIO per generar el bit de control del senyal PWM i dos timers, un per controlar la amplitud de la fase activa i un altre per controlar la durada del període. S’anomenen: - PWM_PIO a la PIO de sortida (el seu bit 0 de dades es el senyal de sortida que cal generar), PWM_ACT al timer que controla la durada de la fase activa i PWM_PER al que controla el període. El senyal PWM s’ha de generar de forma ininterrompuda, a mes a mes tots dos timers han de funcionar exclusivament per interrupcions. FORMAT I GENERACIO D’UN SENYAL PWM FASE ACTIVA 1ms PERIODE 20ms Inici dels timers Interrupció PWM ACT Interrupció PWM PER Inicialment la durada de la fase activa ha de ser la corresponent a la posició neutre del servo-motor, es a dir 1ms. La durada inicial del període serà de 20ms. Cal recordar que en el nostre cas la freqüència del sistema es de 33MHz. Donat això la durada d’un segon son 33333000 tics de comptador, i per tant 1ms seran 33333 tics de comptador. Aquestes durades es podran modificar usant els quatre polsadors segons el següent esquema: • • • • Pulsació de l’interruptor SW7 incrementa la durada de la fase activa en 0.05ms. Pulsació de l’interruptor SW6 decrementa la durada de la fase activa en 0.05ms. Pulsació de l’interruptor SW5 incrementa el valor del període en 1ms. Pulsació de l’interruptor SW4 decrementa el valor del període en 1ms. Cal visualitzar aquestes durades en la pantalla del PC. Polsadors Entrades/Sortides PWM Inc Fase Activa Dec Fase Activa Inc Periode Dec Periode DETALL DELS PINS PWM_IN PWM_OUT: PWM_OUT PWM_IN ESTUDI PREVI: Analitzar el funcionament dels timers i PIOs necessàries: 1. 2. 3. Investigar el funcionament general del timer en el sistema NIOS. Investigar quina es la PIO que utilitza el sistema NIOS per generar el senyal PWM i quines operacions s’hi poden fer. Analitzeu el codi disponible i feu una descripció/esquema de quin es funcionament proposat. Analitzeu el mecanisme d’interrupcions usat en el sistema NIOS. Durada de la pràctica: Dues setmanes. Feu servir l’esquema de codi disponible en la WEB de l’assignatura. Referències: • Tutorial general del sistema NIOS, especialment el detall dels nous mòduls disponibles. • Documentació funcionament PIO. • Documentació funcionament Timer. ENTREGA FINAL: Document i fitxers de codi en el campus digital. • Cal revisar l’informació analitzada en l’estudi previ sobre el funcionament dels timers i PIOs necessàries, i actualitzar-la segons els coneixements adquirits. 1. 2. Descriure un funcionament general del timer en el sistema NIOS. Investigar quina es la PIO que utilitza el sistema NIOS i quines operacions s’hi poden fer. • Descriure en detall l’esquema general del programa, indicant cada part del codi quina funció realitza. • Entregar els fitxers “C” usats en la pràctica. • Recordeu que cal fer una demostració “presencial amb el professor”.