Buscando espacio de direcciones

0

¿Alguien podría explicar cómo encontrar el espacio de direcciones para la RAM, sensores, alarmas y ROM? :)

Se supone que la respuesta es

  • ROM: ACT1FFF
  • RAM: 2000-3FFF
  • Sensores: FFF0 - FFFF
  • Alarma: FFFE
pregunta Hege

1 respuesta

0

Observe qué bits de la dirección (A0 ... A15) deben estar en qué estado para habilitar cada chip asignado en memoria. Tenga en cuenta que las líneas de dirección que no están conectadas a la línea CS no se preocupan cuando se trata de seleccionar el chip, es decir, algunos bits (cableados) seleccionan el chip, los otros bits permiten acceder a las direcciones en ese chip, formando la dirección Rango / espacio de ese chip. Para la alarma, por ejemplo, dado que todos los bits de dirección están conectados al CS de la alarma, solo hay una única dirección que se usa para acceder a la alarma. Para la RAM, solo se utilizan tres líneas de dirección para seleccionar la RAM, dejando (16-3) = 14 bits para las direcciones en la RAM, es decir, 2 ^ 14 = 16k direcciones.

También vale la pena señalar: en general, no se pueden seleccionar dos chips mediante la misma combinación de bits de dirección relevantes, es decir, los espacios de direcciones nunca se pueden superponer. (A menos que en ciertos casos especiales donde otros medios estén diseñados para evitar que dos chips se escriban en el bus de datos al mismo tiempo, por ejemplo, si un chip es de solo lectura y el otro es de solo escritura, de modo que cada vez que se conecte uno de ellos) al bus el otro no lo es.)

Debido a que las entradas CS de los chips son entradas invertidas (/ CS), es decir, bajo activo, puede ser útil considerarlas como líneas de "desactivación de chip". Por cada dirección, todos los chips menos uno deben estar desactivados.

En el ejemplo, la RAM está deshabilitada para cualquier dirección donde A15 = 1 o A14 = 1 o A13 = 0, en binario 0b110xxxxxxxxxxxxx, la inversa de ese patrón de bits habilita la RAM; por lo tanto, todas las direcciones de 0b001xxxxxxxxxxxxxxx accederán a la RAM, que en hexadecimal es 0x2000 (0b001000000000000) hasta 0x3FFF (0b0011111111111111).     

respondido por el JimmyB

Lea otras preguntas en las etiquetas