TODOPIC
Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: abimael en 17 de Mayo de 2022, 13:33:07
-
Hola a todos.
Me he comprado en ebay una placa de circuito impreso para construir un microordenador basado en el Z80. Este es el proyecto:
https://hackaday.io/project/159973-z80-mbc2-a-4-ics-homebrew-z80-computer
y este es el equema electrico:
https://cdn.hackaday.io/files/1599736844284832/A040618%20-%20SCH.pdf
Todavia no lo he probado pero mirando el esquema me surge una duda: un microcontrolador ATMEGA32 genera las principales señales de control del Z80. Intuyo que el propio Atmega lee archivos desde la tarjeta microSD y los deposita en la memoria RAM. A continuacion, hará reset al Z80.
Al solicitar acceso DMA al Z80, los buses de datos y direcciones del Z80 quedan en alta impedancia. Pero mi pregunta es: como puede cargar el Atmega contenido en la RAM si no accede al bus de direcciones?
un saludo
-
Hola a todos.
Me he comprado en ebay una placa de circuito impreso para construir un microordenador basado en el Z80. Este es el proyecto:
https://hackaday.io/project/159973-z80-mbc2-a-4-ics-homebrew-z80-computer
y este es el equema electrico:
https://cdn.hackaday.io/files/1599736844284832/A040618%20-%20SCH.pdf
Todavia no lo he probado pero mirando el esquema me surge una duda: un microcontrolador ATMEGA32 genera las principales señales de control del Z80. Intuyo que el propio Atmega lee archivos desde la tarjeta microSD y los deposita en la memoria RAM. A continuacion, hará reset al Z80.
Al solicitar acceso DMA al Z80, los buses de datos y direcciones del Z80 quedan en alta impedancia. Pero mi pregunta es: como puede cargar el Atmega contenido en la RAM si no accede al bus de direcciones?
un saludo
Me imagino que cada vez que pones un dato en bus de datos y el ATmega active WR, el Z80 guarda ese valor en su memoria RAM e incrementa automáticamente el puntero de la memoria RAM.
Obviamente, cuando se inicia todo, el MCU reinicial al Z80 y dicho contador está en cero inicialmente.
-
Bonito proyecto.
Recuerdo que comencé en esto de la informática con un ordenador basado en Z80 y CP/M, programando en BASIC de Microsoft.
Todavía tengo los discos flexibles de 5 y 1/4, pero ahora son ilegibles porque no tengo disquetera compatible.
-
Si, los tiros deben de ir por ahi.... Pero no es como yo creia usando la señal busreq, porque esa señal lo que hace es poner en alta impedancia tanto al bus de datos como al de direcciones. Como el atmega genera el clock al Z80, lo que hace es darle reset, el Z80 poner su bus de direcciones a 0 y empieza a leer de la memoria y ejecutar secuencialmente. De alguna manera, el atmega, va controlando como van esas direcciones y lo que debe de hacer es accionando wait y clk para congelar al Z80 y acceder a a la RAM a escribir lo que le de la gana.
Es complicado.
Lo triste de este tipo de proyectos es que se hacen, funcionan pero no te enteras como funcionan realmente.