sexta-feira, 15 de junho de 2007

Mega-Flash

Após gastar algum tempo analisando os circuitos de chaveamento de sub-rom baseada em memória FLASH dos posts anteriores, fiquei pensando em fazer algo ao mesmo compatível com MEGAROM e que use poucos CHIPS. Daí nasceu a MEGA-FLASH:

O funcionamento é o seguinte:
O acesso às páginas 1 e 2 da MEGA-FLASH é exatamente igual ao acesso à MEGAROM, ou seja, Leitura em Memória, Escrita nos registros mapeadores (de acordo com o estado das linhas A13 e A14):

(A15) A14 A13 Endereço Página Registro
0 1 0 4000-5FFF 1.0 R0
0 1 1 6000-7FFF 1.5 R1
1 0 0 8000-9FFF 2.0 R2
1 0 1 A000-BFFF 2.5 R3


A escrita na FLASH se dá na página 0 (zero) onde acontece o espelhamento das sub-páginas 2.0 (0000-1FFF) e 2.5 (2000-3FFF), pois A14=0. Assim, todo o espaço de endereçamento para escrita pode ser selecionado a partir dos registros R2 e R3.

A grande vantagem disto é que usar apeanas o mesmo número de CIs necessários para se construir uma MEGA-ROM, ou seja, um decodificador e o(s) registro(s). Para uma MEGAFLASH de 512K, serão necessários apenas os seguintes chips:

1x AM29F040 - Flash 512K
1x 74LS138 - Decodificador
2x 74LS670 - Registro 4x4

Mas nada impede que se utilize RAM no lugar da FLASH, para fazer um dispositivo baseado em RAM



O 'Mapa' da MEGAFLASH é o seguinte:

Endereço Página Escrita Leitura
0000-1FFF 0.0 P2.0 valor (a leitura é feita pelo
2000-3FFF 0.5 P2.5 indefinido sinal CS12)
4000-5FFF 1.0 R0 P1.0
6000-7FFF 1.5 R1 P1.5
8000-9FFF 2.0 R2 P2.0
A000-BFFF 2.5 R3 P2.5
C000-DFFF 3.0 Sem Valor
E000-FFFF 3.5 Ação indefinido

Diagrama da Mega-Flash

3 comentários:

Alexandre Souza - PU2SEX disse...

Ô Danjovic, vamos implementar essa mega-flash em CPLD? Tem 9572 a 10 mangos na farnell aqui no BR a pronta entrega!!!

FRS disse...

Olá Danjovic!

Você poderia adicionar um circuito para zerar o conteúdo do endereço-zero do 74LS670 no boot/reset? Sem isso o cartucho megarom quase nunca vai bootar automaticamente, pois o conteúdo do 74LS670 é aleatório no boot.

Zerar o endereço-zero do 74LS670 permite que o cartucho seja construído para conter jogos definitivos para coleção, como os megaroms do MSXdev2010.

O circuito receberia /RESET e zeraria os sinais WA, WB, /WE e as entradas D1-D4 dos dois 74LS670.

Danjovic disse...

Com anos de atraso, rs é possivel sim, colocando um buffer entre as linhas de dados/endereço e os ls670, com resistores de pull down e sinal /reset ligado no enable do buffer.