LSDP.pdf
Document Details
Uploaded by RomanticLobster3994
Universidade de Vigo
Tags
Full Transcript
Tema 1: Programación de un Microcontrolador. 1.1. ¿Qué se entiende por nivel de abstracción al programar un microcontrolador? Por nivel de abstracción entendemos la proximidad que tiene el lenguaje de código utilizado con el lenguaje humano. A niveles altos, el lenguaje usado es...
Tema 1: Programación de un Microcontrolador. 1.1. ¿Qué se entiende por nivel de abstracción al programar un microcontrolador? Por nivel de abstracción entendemos la proximidad que tiene el lenguaje de código utilizado con el lenguaje humano. A niveles altos, el lenguaje usado es próximo al humano. 1.2. ¿Qué se entiende por Modos de Direccionamiento? Forma de especificar los datos que intervienen en una operación. 1.3. ¿Por qué existen varios modos de direccionamiento? Existen varios modos de direccionamiento para optimizar la programación adaptándose a las distintas estructuras y tipos de datos que se pueden manejar en un programa informático. 1.4. En un microprocesador capaz de direccionar 64K de memoria de datos, ¿Cuál es el tamaño mínimo de una instrucción con direccionamiento absoluto? El tamaño mínimo de una instrucción es de 16 bits más los específicos del código. 1.5. ¿Cómo se calcula la dirección efectiva en un direccionamiento relativo? de=Contador del programa + dir. instrucción // DE=dirección base(contador programa PC)+ desplazamiento relativo(contenido en campo de direcciones de la instrucción) 1.6. ¿Cómo se calcula la dirección efectiva en un direccionamiento indexado? Sumando el valor del registro índice al contenido del campo de dirección de la instrucción. 1.7. ¿Cómo se calcula la dirección efectiva en un direccionamiento indirecto? A través del contenido de una dirección de memoria que contiene la dirección real del operando. El operando contiene la dirección de memoria donde se guarda la dirección efectiva. 1.8. ¿Cuál es la aplicación típica de un direccionamiento indirecto? El direccionamiento indirecto es especialmente útil cuando necesitas acceder a datos de manera flexible y dinámica, sin conocer las ubicaciones exactas de memoria de antemano. Una aplicación típica del direccionamiento indirecto es en la gestión dinámica de la memoria, donde se utilizan punteros para acceder y manipular áreas de memoria asignadas dinámicamente durante la ejecución de un programa. 1.9. ¿Cuáles son las ventajas de escribir un programa en Lenguaje Máquina? Máximo nivel de acceso, control al hardware y máximo control sobre la eficiencia y tiempo de ejecución del programa. 1.10. ¿Cuáles son los inconvenientes de escribir un programa en Lenguaje Máquina? RESUMEN: Alta complejidad paradigmática y sintáctica, cada código vale solo para un modelo de micro, código difícil de depurar y mantener al trabajar con un bajo nivel de abstracción. 1.11. ¿Por qué un lenguaje ensamblador está ligado a un microprocesador? Porque trabaja directamente con elementos del hardware y operaciones de máquina de ese modelo que pueden ser diferentes a los de otros modelos. 1.12. ¿Qué se entiende por código reubicable? El que se puede cargar y ejecutar en diferentes direcciones de memoria sin necesidad de modificaciones. 1.13. ¿Qué se entiende por código máquina absoluto? El código máquina absoluto es rígido en cuanto a ubicación y no permite la reubicación sin modificaciones adicionales. 1.14. ¿Qué inconvenientes puede presentar un programa escrito en lenguaje de alto nivel? RESUMEN: Mayor consumo de recursos y tiempo de ejecución. 1.15. ¿Qué contiene un archivo con extensión.hex? RESUMEN: Los datos del programa en formato hexadecimal, listos para ser programados en la memoria del microcontrolador. 1.16. En el proceso de ensamblado de un programa, ¿Qué misión desempeña un enlazador? En el proceso de ensamblado, un enlazador combina varios archivos objeto y bibliotecas en un único archivo ejecutable. 1.17. ¿Cuáles son los parámetros para calificar la calidad de optimización de código de un Compilador? Número de instrucciones y/o ocupación de la memoria. 1.18. ¿Cuál es la razón de la especificación de un archivo con la directiva #include en un programa en C? La directiva #include en un programa en C tiene una función crucial: incorporar contenido de otros archivos en el archivo fuente actual. 1.19. ¿Para qué se suele utilizar la directiva #define en un programa en C? Crea una macro, que es la asociación de un identificador o identificador parametrizado con una cadena de token. Una vez definida la macro, el compilador puede sustituir la cadena de token para cada aparición del identificador del archivo de código fuente. 1.20. ¿Para qué se suele utilizar la directiva #pragma en un programa en C? Especifican características del compilador específicas de la máquina o del sistema operativo. Estas directivas permiten que cada compilador ofrezca funcionalidades específicas del equipo o del sistema operativo, al mismo tiempo que se mantiene la compatibilidad total con los lenguajes C y C++. 1.21. En un programa en C, ¿Qué procedimiento no puede faltar? En un programa en C, el procedimiento que no puede faltar es la función principal o función main(). 1.22. En un proyecto que agrupa varios archivos con extensión.c ,¿Cuál es el número máximo de procedimientos denominados main? Sólo puede existir una función main por proyecto. 1.23. En un proyecto de un programa en C, ¿Para qué se usan los archivos con extensión.h? RESUMEN: Para contener las declaraciones de funciones y constantes que se comparten entre varios archivos fuente. 1.24. Al usar funciones en un programa en C, ¿Cuáles son las acciones que tiene que incluir el programa respecto a las funciones? Asegúrate de definirlas correctamente, llamarlas según sea necesario y mantener una estructura organizada en tu programa. 1.25. Una función de C, ¿Cuántas variables puede devolver? En C, una función puede devolver solo un valor. 1.26. En una llamada a una función, ¿qué significa hacer una llamada con variables con “paso por referencia”? Pasar la dirección de memoria de la variable como argumento a la función, lo que permite que la función modifique el valor de la variable original. 1.27. En un código de programa escrito en XC8, ¿puede haber código ensamblador? Sí, para acceder a características específicas del hardware o para optimizar secciones críticas del código. 1.28. ¿Cuáles son los pasos genéricos que realiza un compilador para obtener código ejecutable en un microcontrolador? Análisis Léxico, análisis Sintáctico, análisis Semántico, generación de Código Intermedio, Optimización, Generación de Código Objeto. Tema 2: Variables temporales 2.1. Indica de forma razonada la utilidad de una unidad de comparación como periférico de un microcontrolador. Hace medidas de variables temporales sin depender del programa. 2.2. Indica de forma razonada los bloques funcionales que forman parte de una unidad de comparación. Temporizador par, registro de comparación, comparador y biestable. El comparador compara el valor de contaje del temporizador par que usa la unidad de CCP con su registro de comparación y cuando lo supera envía el valor almacenado en el biestable. 2.3. ¿A qué se denomina salidas de alta velocidad en un microcontrolador? A las salidas que no dependen de la ejecución de la instrucción. 2.4. Justifica de forma razonada la afirmación de que al utilizar una unidad de comparación la precisión temporal de la señal generada no depende del programa ejecutado en el microcontrolador. RESUMEN: Después de que se habilita inicialmente la unidad de comparación, esta funciona de manera automática por hardware por lo que el tiempo que tarda en comparar y enviar dependerá del circuito y no del programa. 2.5. ¿Cuál es la característica de un temporizador para que pueda formar parte de una unidad de comparación capaz de generar señales digitales con modulación de ancho de impulso (PWM)? El timer tiene que tener recarga automática. 2.6. ¿Qué se entiende por resolución de una señal PWM? El mínimo incremento/decremento posible del ciclo de trabajo proporcionado. 2.7. En el hardware de generación de una señal PWM digital. ¿Qué elemento define la resolución de la señal PWM? La configuración del registro TxPR y del registro de comparación CCPx. (hola soy anton es CCPx no ccprx, este ultimo define el ciclo de trabajo que no tiene nada que ver con resolucion. CCPx es el registro de la unidad CCP, en modo pwm es el registro de comparacion, en modo captura el registro de captura, cambia de propósito según el modo pero es siempre el mismo registro, y si, la salida de pwm tambien se llama asi, no tiene que ver) CORREXIDO 2.8. ¿Qué relación existe entre la frecuencia de una señal PWM digital y la resolución? Ambas dependen de la configuración del TMR. TPWM=4(TxPR+1) 2.9. Si para generar una señal PWM se dispone de un reloj de 10kHz y la resolución es de 1%. ¿Cuál es la frecuencia de la señal PWM? La frecuencia del PWM será de 100 Hz. fon=10kHz r= 1% : 1/0,01=100/4=25 TxPR=25-1=24 TPWM= 4*TON*PS*(TxPR+1)=4*(1/(10*103))*1*25 fPWM=100Hz 2.10. En una unidad de comparación funcionando como PWM, ¿Cómo se fija el ciclo de trabajo? 2.11. ¿Cómo podemos obtener una señal analógica utilizando una unidad de comparación? Usándola en modo PWM y adaptando su salida a una señal analógica con un circuito seguidor que aisle impedancias, un filtro paso bajo y un circuito amplificador para adaptar la señal analógica al rango de voltaje de salida deseado. 2.12. Al convertir una señal PWM en una señal analógica, ¿Cómo se disminuye el rizado de la señal analógica? Incorporar un filtro de paso bajo pasivo mediante una red RC., haciendo que la PWM sea como mínimo 10 veces la frecuencia del filtro paso bajo como se muestra a continuación: 2.13. Al convertir una señal PWM en una señal analógica, ¿Qué parámetro influye en el tiempo de respuesta? La relación RC, tal que ωC=1/RC 2.14. Indica de forma razonada la utilidad de una unidad de captura como periférico de un microcontrolador. La unidad de captura en un microcontrolador es útil para: medición de tiempo, generación de pulsos y temporización, medición de ancho de pulso, ciclo de trabajo y desfase. 2.15. Indica de forma razonada los bloques funcionales que forman parte de una unidad de captura. 2.16. Indicar de forma razonada los recursos y la secuencia de operaciones para medir la frecuencia de una señal digital con una unidad de captura. ANDINA FAINO ASÍ! 2.17. ¿Qué ventaja presenta el uso de una unidad de captura para la medida del periodo de una señal digital? Que la captura de los instantes de los flancos de la señal se realiza únicamente por hardware y por tanto no depende del retardo desde la interrupción hasta la captura que podría implicar hacerlo por programa, con su error asociado en la medida. 2.18. ¿Qué parámetro define la precisión de la medida del periodo de una señal con una unidad de captura? Depende de la frecuencia y de la resolución ya que está en su fórmula. (hola soy anton la frecuencia de reloj ES la resolución)chi 2.19. Justificar de forma razonada la limitación del PIC18F47Q10 respecto a los temporizadores que se pueden utilizar para generar PWM. Necesitan tener recarga automática. 2.20. Indicar de forma razonada una configuración del PWM del PIC18F47Q10 a 1MHz para generar una señal PWM de una frecuencia entre 2kHz y 5kHz con una resolución del 1%. 2.21. Indicar de forma razonada una configuración del PWM del PIC18F47Q10 a 1MHz para generar una señal PWM de una frecuencia entre 2kHz y 5kHz con una resolución del 10%. 2.22. Indicar de forma razonada una configuración del PWM del PIC18F47Q10 a 1MHz para generar una señal PWM de una frecuencia entre 10kHz con una resolución del 1%. 2.23. Indicar de forma razonada una configuración del PWM del PIC18F47Q10 a 1MHz para generar una señal PWM de una frecuencia entre 2kHz y 5kHz con una resolución de 10 bits. 2.24. Indicar de forma razonada la configuración de la unidad de captura del PIC18F47Q10 a 1MHz para medir la frecuencia de una señal digital de frecuencia 1kHz con error máximo de 0,5%. Lo que tenemos que ajustar es el pre-escalado Tema 3: E/S Serie 3.1. ¿Qué se entiende por comunicación serie Half Duplex? Entre dos dispositivos los datos se transmiten en ambas direcciones, pero no simultáneamente. 3.2. ¿Qué se entiende por comunicación serie Full Duplex? Entre dos dispositivos los datos se transmiten en ambas direcciones, puede ser simultáneamente. 3.3. En una comunicación serie síncrona, ¿cómo se indica la duración de un bit? Mediante los flancos activos de una señal de reloj que acompaña a los datos. 3.4. ¿Qué especificaciones se deben conocer para establecer una comunicación síncrona? Bit de inicio y bit de finalización, número de bits, flanco activo de Tx. 3.5. ¿Para qué se utilizan caracteres de sincronismo en transmisión serie síncrona? Para indicar el inicio y final de cada paquete de información. 3.6. ¿Cómo se identifica el “Master” en una comunicación serie SPI? Es el que genera la señal de reloj. 3.7. ¿Por qué se dice que el SPI es Full-Duplex? Porque existe un canal de envío MOSI y uno de recepción MISO independientes que se pueden usar simultáneamente. 3.8. En SPI, ¿cuál es el tamaño máximo de la unidad de información? No hay límite. 3.9. En SPI, ¿cómo selecciona el “Master” el dispositivo con el que realizar la transferencia de información? Mediante la línea SS donde selecciona a nivel bajo el pin asociado al dispositivo de destino. 3.10. ¿Por qué se dice que un Bus I2C es un interface de comunicación serie Half-Duplex? Porque no permite lectura y escritura simultáneas al haber un solo canal para ambos propósitos. 3.11. ¿Cómo se identifica el “Master” en una comunicación serie I2C?. Es el que genera la señal de reloj. 3.12. En I2C, ¿Cómo selecciona el “Master” el dispositivo con el que realizar la transferencia de información? La dirección del dispositivo de destino forma parte de una trama de direccionamiento enviada a través del bus, que solo recibe el dispositivo al que pertenece la dirección. 3.13. En I2C, ¿Por qué son necesesarias resistencias de pull-up en la línea de datos (SDA) y en la línea de reloj (SCL)? Para mantener a nivel alto las líneas cuando no están siendo gobernadas por ningún dispositivo a fin de prevenir cortos. La resistencia pull-up proporciona una conexión a un nivel lógico alto cuando el dispositivo no está conduciendo. Esto es especialmente importante en aplicaciones de bus serie, como I2C o SMBus, donde múltiples dispositivos comparten una única línea de comunicación. La resistencia pull-up evita así fluctuaciones no deseadas en el bus. 3.14. En I2C, ¿Por qué se dice que la línea de datos (SDA) y de reloj (SCL) se comportan como una AND por conexión? Porque para que dos dispositivos puedan comunicarse ambas líneas deben estar a nivel alto. 3.15. En I2C, ¿Qué dispositivo genera el bit de reconocimiento (Acknowledge)? El esclavo, para dar cuenta de una trama recibida con éxito. 3.16. En I2C, ¿Qué dispositivo genera la condición de Start y la condición de Stop? El máster, para indicar inicio y final de una transacción de datos. 3.17. En I2C la comunicación siempre la inicia el “Master”, ¿Cómo le indica al “Slave” el sentido de la transferencia (Lectura o Escritura)? Durante la fase de direccionamiento de la comunicación, esa información se le envía al dispositivo de destino en un paquete en el bit R/W. 3.18. En I2C, ¿Cuál es el tamaño de la unidad de información? Un byte , 8 bits. 3.19. En I2C, ¿qué se entiende por “llamada general”? Cuando el paquete enviado en la fase de direccionamiento de la comunicación no contiene bits de dirección. 3.20. ¿Qué especificaciones se deben conocer para establecer una comunicación serie asíncrona? Tamaño del bit = Velocidad de Transmisión. Unidad de información (nº de bit de la unidad de información).Bits de sincronismo. 3.21. ¿Cómo se detecta la duración de un bit en la transmisión serie asíncrona? Sincronizando la señal de reloj del dispositivo receptor con la tasa de baudios existente, sincronizando emisor y receptor. Punto de muestreo de comunicación serie asíncrona centra en el punto medio del bit de transferencia. 3.22. En una comunicación serie asíncrona a 9600 Bits/s, ¿qué frecuencia de reloj utilizarías para recibir los datos? Tenemos que dividir el clock. Cuanta más frecuencia más ajustamos la señal de muestreo. El profesor propuso la multiplicación de la frecuencia por 16. 3.23. En una comunicación serie asíncrona, ¿cómo se sincroniza la recepción de la unidad de información? Mediante el inicio de cada bit de la unidad de información detectado con el reloj del receptor. 3.24. En una comunicación serie asíncrona, ¿por qué se limita el tamaño de la unidad de información? Para evitar errores de sincronización. 3.25. En una comunicación serie asíncrona, ¿qué se entiende por desplazamiento de frecuencia entre el transmisor y el receptor? Diferencia entre la tasa de baudios del receptor y emisor que puede causar errores de sincronización. 3.26. En una comunicación serie asíncrona, ¿cuál es la causa del desplazamiento de frecuencia entre el transmisor y el receptor? Diferencias entre los cristales de reloj y/o configuración de la velocidad de transmisión. 3.27. En una comunicación serie asíncrona, ¿para que se usan los bits de STOP? Para indicar el fin de la unidad de información. 3.28. En el receptor de una comunicación serie asíncrona, ¿qué se entiende por error de sobreescritura (overrun)? La llegada de un bit antes de la lectura del anterior. 3.29. En el receptor de una comunicación serie asíncrona, ¿qué se entiende por error de trama (framing)? La llegada de un bit stop invalido. 3.30. ¿Cuál es el bloque funcional de electrónica digital que constituye la base de un periférico de E/S serie? Un registro de desplazamiento. 3.31. En una comunicación serie asíncrona, ¿quién se encarga de añadir los bits de START y STOP a la información que se transmite? El dispositivo transmisor. 3.32. ¿Por qué en los periféricos de E/S Serie la conexión al bus de datos no suele hacerse directamente con el registro de desplazamiento si no a través de un registro o conjunto de registros que actúan como memoria temporal? Porque se necesita una estructura de memoria temporal para almacenar temporalmente los datos que se transmiten o reciben, lo que permite un procesamiento más eficiente y flexible de los datos. 3.33. ¿Cómo se sincroniza el funcionamiento de un periférico de E/S serie con la ejecución de un programa? Se sincroniza con la ejecución de un programa mediante la generación de interrupciones. 3.34. ¿Por qué es necesario sincronizar el funcionamiento de un periférico de E/S serie con la ejecución de un programa cuando se transmite un mensaje de tamaño superior a un caracter? Para evitar errores como la pérdida de información o el desorden de los caracteres. Cuando se envían mensajes de tamaño superior a un solo carácter a través de un puerto serie, la velocidad a la que llegan los datos al periférico de E/S puede exceder la velocidad a la que el programa puede procesarlos. Esto puede provocar la pérdida o corrupción de datos si no se sincroniza adecuadamente el funcionamiento del periférico con la ejecución del programa. x esto se usan interrupciones de 1 solo caracter (255) Tema 4: Gestión de Memoria 4.1. ¿Qué caracteriza una estructura Harvard respecto a la conexión con la memoria? En una estructura Harvard la memoria de programa y la memoria de datos se conectan al microprocesador por buses distintos. Permite realizar búsqueda y ejecución de instrucciones de forma simultánea. 4.2. ¿Qué caracteriza una estructura Von Neumann respecto a la conexión con la memoria? En una estructura Von Neumann la memoria de programa y la memoria de datos se conectan al microprocesador por un mismo bus. 4.3. En la interconexión de un microprocesador con la memoria y los periféricos, ¿Para qué se usa el Bus de Direcciones? Bus de direcciones – Transportan direcciones de memoria o de entrada/salida. 4.4. En la estructura de un microcontrolador, ¿Qué se entiende por Bus Multiplexado? Hace referencia a cuando las líneas son compartidas. 4.5. En un microcontrolador, ¿Para qué se usa el mapa de direcciones? El mapa de direcciones es el conjunto de direcciones a las que el microprocesador puede acceder, pudiendo ser a periféricos y/o memoria. 4.6. ¿Cuándo el mapa de direcciones coincide con el mapa de memoria? Cuando el microprocesador accede a los periféricos como posiciones de memoria. No existen direcciones asignadas de forma específica a periféricos. El mapa de memoria comparte direcciones para acceder a memoria y para acceder a periféricos. 4.7. En la estructura de un microcontrolador, ¿Para qué se usa el circuito de selección? El circuito de selección de periféricos es un circuito electrónico que define el mapa de direcciones. 4.8. ¿Cómo harías el circuito de selección de una memoria de 64KBytes con módulos de 8Kbytes? Con 8 módulos de 8k para tener eses 64k Haciendo lo siguiente: Ln(64*1024)/Ln(2) = 16 bits Ln(8*1024)/Ln(2) = 13 bits De los 16 bits sacamos 13 que van a ir cada módulo en paralelo y nos sobran 3 para ir seleccionando con un deco 3-8 cada uno de esos módulos en su Chip Select. 4.9. Justifica de forma razonada por qué una memoria dinámica es más lenta que una memoria estática (Con la misma tecnología). La memoria dinámica requiere el refresco de los datos, por lo que el tiempo medio de acceso a los datos es mayor. 4.10. ¿Por qué al aumentar la capacidad de almacenamiento de una memoria, aumenta el tiempo de acceso? Porque puede haber un aumento en la latencia debido a la búsqueda de datos en una memoria más grande. 4.11. ¿Qué se entiende por jerarquía de memoria en la estructura de un microcontrolador? La jerarquía de memoria en la estructura de un microcontrolador se refiere a la organización de diferentes niveles de memoria según su velocidad, capacidad y costo. Estos niveles están diseñados para equilibrar el rendimiento y la eficiencia en el acceso a los datos. 4.12. ¿Qué diferencia una memoria oculta (CACHE) de los registros de un microcontrolador? El registro de memoria tiene menos capacidad que la caché pero por jerarquía también tiene más velocidad y consumo de energía. 4.13. ¿Qué diferencia una memoria oculta (CACHE) de la memoria principal de un microcontrolador? La caché tiene menos capacidad que la memoria principal pero por jerarquía también tiene más velocidad y consumo de energía. 4.14. ¿Qué se entiende por “línea” en una memoria oculta? Se refiere a una unidad básica de almacenamiento dentro de la caché. Una línea de caché es una posición donde se almacena un bloque de datos en la memoria caché, y su organización puede ser directa o asociativa. 4.15. ¿Cuáles son las razones de eficacia de una jerarquía de memoria con memoria CACHE? Los datos no están ubicados en memoria de forma aleatoria y su acceso tampoco es aleatorio. yo las pondría x si aca Razón espacial:(posiciones cercanas) es logico que tengas que acceder a posiciones cercanas a el dato actual en un periodo de tiempo breve. Razón temporal:(repetitividad) si accedes a un dato es probable que vuelvas a acceder a el en un corto periodo de tiempo. 4.16. ¿Por qué la “razón espacial” hace más eficaz una estructura con memoria CACHE? Porque la proximidad de los contenidos en memoria hace que tengan más probabilidad de acceso en un intervalo de tiempo. Una vez se busca un contenido, también se tiene acceso a los cercanos. 4.17. Indica un ejemplo que justifique la “razón espacial” Un caso particular es la llamada Localización secuencial, donde los datos de programa ocupan posiciones consecutivas de memoria. (hola soy anton, si quereis un ejemplo concreto de eso es un array, cuyos elementos se guardan siempre en posiciones sucesivas de memoria) 4.18. ¿Por qué la razón temporal hace más eficaz una estructura con memoria CACHE?. Porque una vez se accede a un contenido, se aumentan las probabilidades de acceso en un intervalo. Esto ayuda a reducir los tiempos de acceso, siendo especialmente útil en contenidos a los que se accede de forma repetida en intervalos de tiempo cortos. Razón temporal:(repetitividad) si accedes a un dato es probable que vuelvas a acceder a el en un corto periodo de tiempo. ( inventadisima) Cuando accedes a un dato que tienes que consultar varias veces, como una variable que cambia cada segundo (como con bucles) o asi esta bien tenerla con 🙂 rápido acceso en cache asi no tienes que andar buscando de manera lenta en ram supongo. eu tb o entendo asi (hola soy anton, es porque los datos que se utilizan ciclicamente o con mas frecuencia se posicionan en referencias cercanas al inicio por lo que se encuentran antes) 4.19. Indica un ejemplo que justifique la “razón temporal” La necesidad de acceder a unos contenidos de forma repetida en intervalos de tiempo cortos, como en el caso de implementación de subrutinas o bloques de programa con estructura en bucle. 4.20. ¿Cuándo se da una colisión (“cache miss”)? Una colisión o cache miss se dá cuando la CPU pregunta por un dato en una dirección X pero la caché no encuentra el dato en esa dirección, por lo que se pasa a buscar en memoria principal. 4.21. ¿Qué debe hacer el gestor de memoria CACHE cuando se da una colisión? Buscar el dato que se solicitaba en la memoria principal. (hola soy anton. lo que hace el gestor es reemplazar los datos mas antiguos o menos utilizados por este dato que se va a buscar a la memoria principal, de modo que ahora si este en cache) 4.22. En un microcontrolador con bus de direcciones de 16 bits. Define las características de la memoria cache con configuración directa si se usan 4 bits para el “offset” y 4 bits para la “línea”. Si tiene 4 bits de offset son 2^4= 16 posiciones Si tiene 4 bits de línea son 2^4= 16 líneas Tenemos una memoria caché de 16*16=256 posiciones. 4.23. En un microcontrolador con bus de direcciones de 16 bits. Define las características de la memoria cache con configuración totalmente asociativa si se usan 12 bits para la “etiqueta” tenemos una memoria caché de 2^4=16 posiciones en la que no sabemos el número de líneas que la compondrá. (16-12)=4 4.24. En un microcontrolador con bus de direcciones de 16 bits y una estructura de memoria cache con configuración asociativa con grupos, si se usan 8 bits para la “etiqueta” y 4 para el “offset”, ¿Cuántos grupos de líneas tiene la memoria CACHE? Teño (16-8-4)=4 grupos pero non sei cantas liñas estará formando cada grupo. 4.25. En un microcontrolador con memoria CACHE con tiempo de acceso de 1ns y una memoria principal con tiempo de acceso de 50ns. ¿Cuál sería el tiempo medio de acceso si el porcentaje de colisiones es de 0,015?. 0.015*50ns +1 ns= 1.75 ns 4.26. ¿Qué se entiende por acceso directo a memoria? Se entiende por acceso directo a la memoria cuando la transferecia se realiza directamente entre el periférico y la memoria del microcontrolador sin ejecutar instrucciones. 4.27. En un acceso por DMA, ¿Qué determina la velocidad de transferencia de información entre el periférico y la memoria? Está determinada por el tiempo de propagación del circuito asociado al acceso a memoria 4.28. ¿Por qué puede ser necesario identificar al periférico que pide DMA? Es necesario reconocer al periférico que pide acceso a memoria para: Establecer prioridades de cesión del Bus. Zona de memoria a la que se puede acceder. 4.29. En DMA, ¿Quién controla el bus de direcciones? Es el periférico quien pide al microprocesador el control del Bus y accede directamente a la memoria en operaciones de escritura o de lectura. (interpreto por isto que é o periférico o que se encarga da xestión) 4.30. En DMA, ¿Qué se entiende por cesión de Bus con dedicación exclusiva? Se entiende la cesión de bus con dedicación exclusiva a la asignación del control del bus a un periférico hasta que este finaliza la operación de transferencia con memoria. 4.31. ¿Cuándo es conveniente usar DMA con dedicación exclusiva? Cuando hay una gran cantidad de datos a transferir, de modo que permitimos al microprocesador dejar de atender al proceso. 4.32. En DMA, ¿Qué se entiende por cesión de Bus por robo de ciclo? Se da cuando el periférico detecta los ciclos en los que el microprocesador no accede a la memoria y toma el control del bus. Se usa cuando hay pocos datos para tener elevada velocidad de acceso Tema 5: Especiales 5.1. ¿Qué se entiende por consumo estático de un circuito CMOS? Al consumo que se da cuando el circuito está en régimen permanente, siendo las causas del mismo la disipación por corriente de fugas o por conducción sub-umbral. (es el consumo del circuito cuando no está cambiando de estado, …)opino igual que el hombre chatgpt entendo que é o mesmo que rexime permanente 5.2. ¿Qué determina el consumo dinámico de un circuito CMOS? La FRECUENCIA de cambio de estado,carga o descarga de CL y la conducción simultánea al inicio orixinalmente puxen que era o consumo que se daba en réxime transitorio, ocasionado polas cousas que se mencionan arriba. 5.3. ¿Cómo se suele cuantificar el consumo dinámico en un circuito CMOS? Pd=∝・fCLK・CL・V2DD 5.4. ¿Cómo se puede reducir el consumo de potencia en un circuito CMOS? Reduciendo la f , reduciendo el VDD, activando la selección de recursos, adaptando la f a las necesidades en cada momento. 5.5. Si en un circuito CMOS se disminuye la tensión de alimentación, ¿Qué efectos puede tener? Aumenta el retardo de propagación. Se puede compensar con la reducción de VT, aumentando el consumo estático. 5.6. ¿Qué se entiende por activación selectiva de recursos cuando se habla de reducción de consumo? A la selección de distintos modos de operación y tasa de transferencia de datos mediante conexión/ desconexión de alimentación de módulos y habilitación de registros (gated clock). RESPOSTA FARIÑA: A la activación de recursos segundo uso.Por ejemplo, si no uso el puerto serie no lo alimento, solo alimento lo que que voy a usar. 5.7. ¿Qué recursos suele tener un microcontrolador para realizar gestión del consumo? Se consigue la reducción por la modificación del reloj (en áreas). Tenemos así cuatro modos de gestión de consumo: Normal, Dozen, Idle y Sleep. 5.8. ¿Qué modos de funcionamiento tiene el PIC18F47Q10 respecto a la gestión del consumo? Modo Normal (Run Mode): Permite seleccionar varias fuentes de reloj para la ejecución de instrucciones ( Frecuencias y Precisión) Modo semidormido “dormitando” (Dozen Mode): Reduce la actividad de la CPU y el acceso a memoria de programa. Se activa con CPUDOZE.DOZE=“1” La CPU ejecuta un ciclo de instrucción de cada N (CPUDOZE.DOZEN[2:0]). Bajo Consumo o modo inactivo (Idle Mode): Se paran la CPU y el acceso a memoria. Los periféricos siguen funcionando. Cualquier interrupción permitida saca de modo IDLE. Consumo mínimo o modo parado (Sleep Mode) :Se inhiben Fosc y Fosc/4. LFINTOSC, SOSC, HFINTOSC y ADCRC no quedan afectados y se pueden usar en los periféricos. El estado de los terminales E/S se mantiene. 5.9. ¿Qué se entiende en el PIC18F47Q10 como modo semidormido (Dozen Mode)?En el PIC18F47Q10, ¿Cuál es la diferencia entre el modo inactivo (Idle Mode) y el modo dormido (Sleep Mode)? Reduce la actividad de la CPU y el acceso a memoria de programa. Se activa con CPUDOZE.DOZE=“1” La CPU ejecuta un ciclo de instrucción de cada N (CPUDOZE.DOZEN[2:0]). 5.10. En el PIC18F47Q10, ¿Cómo se puede salir del modo dormido (Sleep Mode)? Por fuente de interrupción Por reset (BOR, MCLR negado, LPBOR y POR) Por watchdog 5.11. ¿Qué se entiende en un microcontrolador por estrategía de vigilancia por tiempo (watchdog)? La presencia de un temporizador redisparable en el cual si finaliza la temporización implica la detección de una situación anómala. 5.12. ¿Cómo es la estructura de un watchdog? 5.13. En que se basa el funcionamiento de un watchdog. El programa debe realizar la recarga periódica del temporizador (Watchdog Timer) para evitar su paso por cero. Si este se produce, el circuito de vigilancia fuerza por hardware la inicialización del microprocesador. Esto permite la detección de bucles infinitos en programas, anomalías en la señales de entrada al microcontrolador, etc. 5.14. ¿Para qué se puede usar un PLL (Phase Lock Loop)? Para multiplicar por 4 la frecuencia de entrada. Tema 6: Formatos Numéricos 6.1. ¿Cómo se representa 11.395 en coma fija con cuatro bits decimales?. 1011.0110= 11,375 6.2. Respecto a la representación de 11.395 en coma fija con cuatro bits decimales, ¿Qué error se comete? un error de 0,02 6.3. ¿Qué se entiende por rango dinámico en un formato de representación numérica? Diferencia entre el mayor valor y el menor que se puede representar. 6.4. ¿Qué se entiende por resolución en un formato de representación numérica? En un formato de representación numérica la resolución indica la menor cantidad de cambios que pueden ser percibidos en el sistema. 6.5. ¿Cómo es la resolución en un formato de coma fija? Descripción de lo que es la resolución: En un formato de coma fija, la resolución se refiere a la menor cantidad de valores distintos que se pueden representar entre dos números consecutivos. Es decir, indica cuánto cambia el valor representado cuando se incrementa en una unidad la parte entera o fraccionaria del número. 6.6. Representa 11.395 en coma flotante con 8 bit de mantisa y 8 bit de exponente (formato normalizado). 11.395 en binario es 1011.0110. Normalizamos el número: desplazamos la coma hacia la izquierda hasta que solo haya un dígito diferente de cero a la izquierda de la coma binaria. Esto da 1.0110110 × 2^3 ya que desplazamos 3 posiciones la coma. · El exponente real a representar será el resultado de sumar el exponente a 127: Exponente = 127+3 = 130 = 10000010 · Para la mantisa, tomamos los primeros 8 bits después del punto binario, que son: Mantisa = 01101100 · El signo se representará con 0 si es positivo y con 1 si es negativo: Signo = 0 QUEN FIXO ESTE? PORQUE EU DIRIA QUE ESTA MAL EH son uxía, eu diría que está mal porque serían 4 desprazamentos ata poñer o primeiro un COMO PRIMEIRO DECIMAL (OSEA, DESPOIS DA COMA). Fariña explicounolo así. Queda a mantisa como 10110011 e o expoñente como 00000100 10110110* (soy jesus, a mi la mantisa me da asi) -eu tou de acordo con jesus, tamen me da asi a mantisa 🙂🙂🙂🙂 6.7. ¿Cómo se suman dos números en coma flotante? Suma: - Para poder realizar la suma, los exponentes de los operandos deben ser iguales. S = N1 + N2 = M1 ⋅ 2E1 + M2 ⋅ 2E2 Si E1 = E2 ⇒ S = (M1 + M2 )⋅ 2E1 - Desplazar el punto decimal del operando más pequeño a la izquierda el número de veces necesario para que el exponente coincida con el exponente del operando mayor. 6.8. ¿Cómo se multiplican dos números en coma flotante?. Signo del resultado: - XOR de los signos de los factores. - BS = 0, 1 →Valor >, < 0. Se multiplican las mantisas y se suman los exponentes - Con operadores enteros. Se normaliza el resultado - Desplazar mantisa a la izquierda hasta que MSB = 1. - Decrementar el exponente en cada desplazamiento. 6.9. Para un mismo número de bits, ¿en qué formato se obtiene un mayor rango dinámico?. El mayor rango dinámico se obtiene en coma flotante para un mismo número de bits. Esto se debe a que en el formato de coma flotante, los bits se asignan dinámicamente a la parte entera y fraccionaria del número, lo que permite representar números muy grandes y muy pequeños con una precisión aceptable. 6.10. ¿Cómo es la resolución en coma flotante? La resolución es variable Ejemplo → Representación con 32 bits: Exponente → 8 bits ⇒ 1 bit de signo y 7 bits valor (complemento a 2). Mantisa → 24 bits ⇒ 1 bit de signo y 23 bits valor (complemento a 2). Valor más pequeño: - Mantisa → Signo (s) =0; Fracción (f) = 10000000000000000000000 - Exponente → Signo (s) =1 ; Valor (v) = 0000000 1 −128 −38 N= 2 ·2 = 0. 14693679 · 10 Valor más grande: - Mantisa → Signo (s) =0; Fracción (f) = 111111111111111111111111 - Exponente → Signo (s) =0 ; Valor (v) = 1111111 −23 127 127 +38 N=(1 − 2 ) · 2 = 0. 999998807 · 2 = 1. 7141167 · 10 Rango dinámico: - El número de valores entre el xmínimo y xmáximo ≈10+38 Resolución variable: - Para valores pequeños→ ≈3.5x10 -46 - Para valores grandes → ≈2.02824x10 +31. Temas 7 y 8: Diseño digital 7.1 Obtener la secuencia de pseudoinstrucciones que debe ejecutar un microcontrolador de 8 bits sin buses externos para leer un dato de un recurso situado en la posición de memoria externa 85FEh y escribirlo en un recurso situado en la posición de memoria externa FE00h. Asumir que los recursos necesarios del microcontrolador están correctamente inicializados. Respuesta Andina: AB (Adress Bus) 2 Puertos P1 y P2. DB (Data Bus) 1 Puerto P0. WR RD WR P1 WR P2 ACT RD RD P0 DESACT RD WR P1 WR P2 WR P0 ACT WR DESACT WR 7.2 Obtener el cronograma correspondiente al caso anterior. Respuesta Andina: 7.3 Dibujar el cronograma (reloj y línea de dato) correspondiente a la transmisión a través un canal serie síncrono de una trama consistente en un bit de start, un dato de 8 bits (comenzando por el LSB), un bit de paridad y un bit de stop. -solución carlos zener: 7.4 Dibujar el esquema eléctrico de un circuito que genere, a partir de una base de tiempos de 50 MHz, dos señales de salida, la primera de 10 MHz con ciclo de trabajo mínimo y la segunda de 1 MHz y ciclo de trabajo 50%. Debe utilizarse la mínima cantidad posible de recursos. -solución carlos zener: 7.5 Obtener un grafo de estados que controle el muestreo a 1 MHz de un convertidor A/D de 8 bits con señales de inicio y fin de conversión y la adquisición de los correspondientes datos binarios. Obtener asimismo el esquema eléctrico de los recursos adicionales necesarios. El reloj del sistema es de 100 MHz. -solución carlos zener: 7.6 Obtener el esquema eléctrico de un circuito que permita a un microcontrolador acceder a los siguientes recursos externos. Recurso Tamaño Ubicación en memoria Modo de acceso #1 4kB 0000h-2FFFh Lectura #2 8kB 0000h-7FFFh Escritura #3 16kB 8000h-FFFFh Lectura / Escritura Repuesta Carlos, medio confirmada con Andina 7.7 Obtener el esquema eléctrico de un circuito que permita intercambiar las posiciones en el mapa de memoria del recurso #3 y los recursos #1 y #2 del caso anterior. Respuesta de carlo: En las puertas Y cambias la negación del A15, la negada se va con la #3 y la sin negar con la #1 y #2. 7.8 Obtener el esquema eléctrico de un circuito que permita detectar los flancos tanto ascendentes como descendentes de una señal de entrada. Indique si existe alguna limitación en las características de dicha señal. -solución carlos zener: 7.9 Dado un periférico temporizador que consta de un contador, un comparador y dos registros auxiliares, todos de 16 bits, con una base de tiempos de 16 MHz, configurar el mismo para obtener una señal PWM de 1 kHz y ciclo de trabajo 30%. 1000μs= (PR2+1)*62.5ns PR2=(16000-1)=15999 16MHz ciclo de trabajo=15999*0.3= 4800 7.10 Para el caso anterior, deducir la mejor resolución con la que se puede definir el ciclo de trabajo. resolucion= 216 resolución=16bits 7.11 En el mismo periférico, si se desea obtener una señal PWM con una resolución del 1% o mejor, deducir cuál es el valor límite de la frecuencia de dicha señal. CCPR 4800/100=±48 7.12 Obtener el esquema de un generador de formas de onda digitales que recibe los valores a generar (1kB) en cada período a través de un puerto de un microcontrolador, que proporciona asimismo una señal de escritura y una señal de marcha/paro de la generación. El reloj del sistema es de 10 MHz y la frecuencia de la señal generada debe ser de aproximadamente 1 kHz. El circuito no puede contener más de un contador.