Este projeto tem como partida uma solicitação de um dos leitores deste blog. Ele possui um kit dos anos 80, o CEDM-80, e gostaria de um firmware novo para ele. Ele possui o firmware original apenas no formato HEX. Embora seja possível disassembla-lo e obter um fonte para usar como ponto de partida, meu interesse é mais em escrever um código "a partir do zero" (em termos, pois já fiz algumas coisas semelhantes no passado).
Para escrever o firmware o primeiro passo é ter o hardware e aí está o projeto: construir um microcomputador compatível com o CEDM-80 (versão 1, para ser mais preciso). É um projeto de médio a longo prazo, ficarei muito feliz se o concluir até a metade do ano atual (2024), mas não me surpreenderei se ele se estender pelo segundo semestre.
Pretendo documentar esse projeto com posts aqui no blog e vídeos no YouTube (https://www.youtube.com/@dqsoft).
Neste primeiro post vou comentar rapidamente o esquema original. Não pretendo segui-lo à risca, poderei altera-lo em função da disponibilidade de peças (por exemplo, usar 74HC no lugar de 74LS) e outras considerações, porém procurando manter a compatibilidade. Lembrando que já fiz algumas brincadeiras com o Z80 na protoboard.
Obs: nos esquemas aparece 74xx mas nas instruções de montagem está especificado 74LSxx.
A primeira parte do circuito é o microprocessador Z80 e a memória, onde destaco:
- O circuito de reset é o tradicional RC (resistor e capacitor), com um botão para o reset manual e um diodo para descarregar o capacitor quando a alimentação é desligada. Eu usei um circuito mais sofisticado na minha montagem na protoboard e um circuito dedicado nas minhas montagens com 6502 e 6809 após ter problemas com o RC. A decidir o que vou usar na minha montagem.
- O oscilador também é baseado em RC, usando um 74LS14 (inversor Schmitt trigger). É a primeira parte que pretendo investigar. Existe um kit mais recente que substitui este circuito por um oscilador a cristal (com frequência 3,5795 MHz).
- A memória para o programa é uma 2716 (EPROM de 2k), vou substituir por uma 28C16 ( EEProm de 2Kbyte).
- A memória RAM é uma 6116, com 2kbytes. Pretendo usar o mesmo integrado
- A decodificação de endereços das memórias é feito por um 74LS138 (decodificador de 3 para 8) e um 74LS08 ("e" de duas entradas)
- A saída são seis dígitos de 7 segmentos (anodo comum).
- A entrada é um teclado organizado de forma matricial
- A decodificação dos ports é feita por uma combinação de "e" (74LS08) e "ou-exclusivo" (74LS02).
- Para controle dos segmentos do display são usados dois registradores de 4 bits (74LS75), 8 transistores PNP são usados para gerar a corrente necessária para os LEDs. Eu não achei o 74LS75, portanto vou substituir os dois por um 74HC373 (latch de 8 bits).
- Para seleção do dígito é usado um 74LS174 (hex flip-flop) ligado a transistores NPN. Talvez eu substitua por um octo flip-flop (74HC374) para ter mais dois sinais para expansão futura.
- O mesmo 74HC174 aciona as colunas do teclado (portanto a "varredura" do display é feita junto com a varredura do teclado).
- As colunas do teclado estão ligadas a dois 74LS126 (buffer tri-state de 4 bits)
2 comentários:
onde posso obter manual do cedm mpf 2 mas a parte de programacao do kit assembler z80 eu domino
Eu dei uma pausa no projeto devido a uma viagem, mas em março estou de volta, retomo e coloco as informações que tenho no github em https://github.com/dquadros/KitZ80.
Postar um comentário