TKMEM-128 II — expansão de 128K/512K paginados (padrão ZX Spectrum 128) para TK90X, TK95 e ZX Spectrum 48K, redesenhada em KiCad. Derivada do projeto do Velesoft (2009) e da TKMEM-128 da Luccas Eletrônica (2012). CERN-OHL-S v2.
Tkmem128-ii is an open-source printed circuit board by lrrosa, from the lrrosa/tkmem128-ii repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 4-layer board of 78.7 × 66 mm with 22 parts on 73 nets, routed with 553 tracks and 21 vias.
It is built around the 27C256-17/J, 74HCT273D and AS6C1008-55PCN. Its parts include 6 capacitors, 4 resistors, 4 ICs, 1 diode and 1 connector. It belongs with the retro computing and games boards of this library.
Expansão externa de 128 KB (ou 512 KB) de RAM paginada no padrão ZX Spectrum 128
para TK90X, TK95 e ZX Spectrum 48K. Redesenho completo em KiCad 10, com
arquivos de fabricação prontos.
O nome vem da placa brasileira que originou este redesenho, mas o circuito é do
Velesoft e nasceu para o ZX Spectrum 48K. A adaptação de 2012 ao TK usava um
contato que no Spectrum carrega vídeo; aqui isso foi corrigido, e a placa voltou
a servir nas duas famílias. Ver Compatibilidade.
Estado: placas fabricadas e conferidas eletricamente, ainda não montadas.
ERC e DRC estão zerados, a netlist foi conferida contra a intenção de projeto,
e as duas placas voltaram da fábrica em setembro de 2026 com todas as ilhas
aprovadas no teste de continuidade. O que ainda não foi feito: montar os
componentes e ligar num micro real. Antes de mandar fabricar, leia
docs/ANTES-DE-FABRICAR.md — há itens que
dependem de medir peças físicas.
O conector de borda é o TE/AMP 5645235, de entrada vertical. As cotas do
footprint saíram do desenho de cliente e estão no
datasheet arquivado, mas ninguém montou a peça ainda.
Este projeto é uma derivação
Ele não inventa o circuito: junta e redesenha dois trabalhos anteriores.
O circuito base: as equações do GAL20V8, o latch da porta 0x7FFD e o esquema de paginação da SRAM, incluindo a extensão de 512K
TKMEM-128, 2012
Luccas Eletrônica (Eduardo Luccas, Brasil)
A adaptação ao TK90X/TK95: soquete de EPROM com a ROM do Spectrum 128, jumpers de seleção de ROM, a auto-desativação da RAM interna de 32K por um pino livre do barramento, e a divisão em placa principal + expansor
Créditos também a Flávio Matsumoto, que sugeriu o circuito do Velesoft para
os TKs e identificou a caixa Patola PB 085/3, e a Daniel Jose Viana
(danjovic), cujo trabalho documentou as cotas da placa para essa caixa.
E a goloskokovic/zx16to128upgrade,
que redistribui o material do Velesoft com o crédito devido. De lá vieram duas
coisas que não estavam aqui: os pontos de desativação da RAM interna num ZX
Spectrum 48K, por Issue de placa-mãe (ver
docs/PREPARAR-O-TK.md), e os
arquivos da variante EASY_6b, que permitiram comparar as duas versões do
circuito original (ver
docs/VELESOFT-EASY3-x-EASY6B.md). Nenhum
desses dois foi verificado em bancada por nós.
Este redesenho é distribuído sob CERN-OHL-S v2 (ver LICENSE.txt),
uma licença fortemente recíproca: quem fabricar, modificar ou distribuir
precisa disponibilizar as fontes das modificações sob a mesma licença.
O que a placa faz
O ZX Spectrum 128 difere do 48K em três coisas: 128K de RAM em 8 bancos de 16K,
o chip de som AY-3-8912, e o espelhamento da memória de vídeo ("shadow video").
Esta placa entrega a primeira. O som AY exige interface separada; o shadow
video é inviável numa interface externa, porque exigiria interceptar a RAM baixa
da ULA dentro do micro.
Na prática a grande maioria dos jogos de 128K funciona — a exceção são os poucos
títulos que dependem do shadow video.
Mapa de memória
Faixa
Quem responde
0x0000-0x3FFF
ROM — a interna do micro, ou a 27C256 da placa (jumper)
0x4000-0x7FFF
RAM baixa interna do micro (memória de vídeo da ULA). Não é decodificada aqui
0x8000-0xBFFF
SRAM externa, banco 2 fixo
0xC000-0xFFFF
SRAM externa, banco selecionado pela porta 0x7FFD
Como a SRAM externa cobre 0x8000-0xFFFF, os 32 KB superiores de RAM interna
precisam ser desativados — é a única alteração necessária dentro do micro, e a
única coisa que difere entre TK e ZX Spectrum. Veja
docs/PREPARAR-O-TK.md.
Sobre a variante EASY_6b do Velesoft. Circula junto com a nossa em
outros repositórios, e é fácil confundir com uma versão melhor. Não é: a
serigrafia da placa dela diz MEMORY UPGRADE FOR ZX 16. É para um Spectrum de
16 KB, onde a RAM inteira vem de fora — por isso as equações dela também
decodificam 0x4000-0x7FFF. Este projeto deriva da EASY_3; a comparação
completa, incluindo a conferência do nosso esquemático e do nosso layout contra
os do Velesoft, está em
docs/VELESOFT-EASY3-x-EASY6B.md.
Porta 0x7FFD
Um 74HCT273 latcheia o barramento de dados quando o GAL detecta a escrita na
porta (A15=0, A5=1, A1=0, /IORQ e /WR ativos):
Bit
Sinal
Função
0–2
BANK0..BANK2
Banco de RAM em 0xC000
3
VRAM
Shadow screen — latcheado, sem uso nesta arquitetura (disponível em TP1)
4
ROMA14
Seleciona a metade da 27C256
5
DIS128
Trava a paginação até o reset
6–7
BANK3..BANK4
Extensão 512K (só no modo ZX512)
A trava do bit 5 é elegante: DIS128 entra na equação do clock do latch
(CLK7FFD = ... + DIS128), então ao ser setado o clock fica preso em nível alto
e o latch nunca mais é acionado.
Compatibilidade
TK90X, TK95 e ZX Spectrum 48K. Não é uma promessa vaga: reduz-se a uma regra
que dá para verificar.
O barramento de expansão é o mesmo conector de 2×28 nas duas famílias, mas
nove contatos não carregam a mesma coisa em cada uma. Enquanto a placa não
tocar nenhum deles, ela serve nas duas:
Contato
No TK90X/TK95
No ZX Spectrum 48K
4
+9 V
USS
7
N.C.
GND
15
GND
sinal
16, 17, 18
livres
Y, V e U do vídeo componente
34, 35
12 V
difere
37
+5 V
−5 V
Esta placa liga 34 dos 54 contatos, e nenhum é dessa lista. Alimentação sai
dos contatos 3 (+5 V), 6 e 14 (GND), que são iguais nas duas máquinas.
A verificação é automática, para a afirmação não envelhecer:
bash
python tools/confere_compatibilidade.py
Ele cruza a lista de divergências de busdef.py com os contatos que a netlist
realmente usa, e falha se algum aparecer.
⚠️ O que ainda é específico de cada máquina: desativar a RAM interna de 32 KB.
Isso não é opcional — sem desativar, a memória do micro colide com a SRAM
externa em 0x8000-0xFFFF. No TK é um fio do contato 29 ao pino 10 do IC27;
num Spectrum o ponto é outro e depende da Issue da placa-mãe — os dois
procedimentos estão em
docs/PREPARAR-O-TK.md.
Num Spectrum a placa não aciona nada pelo contato 29 — mas não porque o
contato seja diferente: ele é N.C. nas duas máquinas. É porque o
procedimento publicado para o Spectrum amarra o pino do mod ao +5 V do
próprio CI, sem trazer fio até o conector. Levar o truque do TK para lá é a
mesma topologia, e esbarra numa diferença elétrica —
analisada aqui.
Não montamos a placa num Spectrum: a compatibilidade acima é do barramento,
conferida contato a contato, não de bancada — e o ponto interno do Spectrum
vem de terceiros, também não verificado por nós.
As duas placas
A placa de componentes fica em pé dentro da caixa. O conector de borda é
soldado diretamente nela — e como esse conector é de entrada vertical
(a placa que entra fica perpendicular à que segura o conector), a fenda dele cai
no plano horizontal e recebe a placa do micro.
Os terminais do conector são retos e atravessam a placa, sobrando ~3,18 mm
do outro lado em duas fileiras a 4,85 mm. A tira de expansão entra entre
essas fileiras — uma passa por cima dela, a outra por baixo — e é soldada
dos dois lados. Ela não tem conector nenhum: ilhas de solda nas duas faces
de um extremo, dedos de borda no outro.
O conector fica fora da caixa Patola, atravessando o recorte que se abre na
frente dela. Não é escolha estética: no TK e no ZX Spectrum a abertura
EXPANSION é recuada dentro da carcaça, então a caixa encosta na traseira do
micro e só o conector entra. A placa, por sua vez, assenta rente ao fundo da
caixa.
No conector, 1..28 fica na fileira de baixo (junto à aresta inferior da
placa), igual à fileira inferior da placa do micro; 29..56 fica do lado de
dentro. É a mesma convenção no TK e no ZX Spectrum, onde essas fileiras são
chamadas de B e A.
⚠️ O lado dos componentes tem que ficar virado para a tira de expansão,
nunca para o lado do conector. Ao contrário, a placa dentro da caixa esbarra
no micro e não encaixa direito. Na prática o conector de borda é o único
componente do lado do cobre: entra por baixo e é soldado por cima.
Ilhas de solda nas duas faces de um lado, dedos de borda do outro — nenhum componente, só o fio de terra W1
A placa principal é de 4 camadas; a tira de expansão, de 2.
Camada
Placa principal
Tira
F.Cu
sinal
27 retas de 1,5 mm (pinos 29..56)
In1.Cu
plano de GND inteiro
—
In2.Cu
plano de +5V inteiro
—
B.Cu
sinal
27 retas de 1,5 mm (pinos 1..28)
Como todos os componentes são passantes, cada ilha de +5V e de GND toca o seu
plano direto: não há uma única trilha de alimentação nas faces de sinal, e
nenhuma via serve só para alimentação. Sinal de 0,5 mm, isolação de 0,2 mm,
21 vias, e nenhum fio de ligação.
O furo grande no topo é o H1, e ele não é furo de parafuso: por ali passa a
torre de fixação da caixa Patola, que tem Ø5 externo e nasce do fundo da
tampa. O parafuso da caixa corre dentro da torre e nunca toca a placa — H1
serve para localizar, não para apertar.
O conector é passante e é usado pelos dois lados — por baixo entra o conector,
por cima solda a tira —, então a numeração dele está serigrafada nas duas
faces.
O verso é o manual da placa. Traz as três tabelas de jumper, a função do
R4 e a licença — na bancada, com um shunt na pinça, isso vale mais que este
README.
A tira é soldada dos dois lados, então cada face traz a numeração dos seus
pinos: 29..56 na frente, 1..28 no verso.
E fabricadas
Primeira tiragem, setembro de 2026. Todas as ilhas passaram no teste de
continuidade — as placas ainda não foram montadas nem ligadas num micro.
O verso cumpriu o que o render prometia: as três tabelas de jumper e a nota do
R4 ficam legíveis a olho nu com a serigrafia de 1,2 mm — que é o ponto de
tê-las na placa em vez de só aqui.
A tira mostra os dois itens do formulário que não viajam nos gerbers (item 0
do ANTES-DE-FABRICAR) tendo saído certos: os dedos
vieram com ENIG e com o chanfro de 45°. O entalhe na borda de baixo, à
direita do centro, é o rasgo da guia — aprofundado de 5,0 para 7,0 mm depois da
conferência em papel.
O que mudou em relação ao original
Melhoria
Motivo
Passagem do barramento (dedos de borda na expansora)
O original ocupava o barramento; agora dá para encadear outros periféricos
Desacoplamento por CI (100 nF em cada um) + 10 µF de reservatório
O original tinha desacoplamento mínimo
4 camadas com planos de GND e +5V inteiros
Alimentação sem uma única trilha nas faces de sinal, retorno de corrente curto e imunidade a ruído. O original era de 2 camadas
Jumper JP2 com duas estratégias de ROMCS
O ROMCS do barramento é ativo em nível alto para desligar a ROM interna, o oposto da saída /ROMCS do GAL. É a explicação mais provável para a ROM 128 do original "funcionar num TK e não em outro". JP2 permite escolher entre acionar pelo GAL ou fixar em nível alto (como fazem os cartuchos da Interface 2), com R5 em série
Auto-desativação sem jumper nenhum
A original usava o pino 17, livre no TK mas V do vídeo componente no ZX Spectrum — daí o jumper e o aviso de que a posição errada danifica o micro. Aqui o sinal vai pelo pino 29, que é N.C. nas duas máquinas, então o pull-up é permanente e JP4 deixou de existir. Ver a análise
GAL com .jed pronto e verificado
O usuário não precisa montar nada: o .jed distribuído é gerado das equações deste projeto e conferido fusível a fusível contra o mapa de referência (checksum C5752, zero divergências)
Degrau zero na corrente de periféricos
A tira de expansão solda nos terminais do próprio conector, ficando coplanar com a placa do micro. O periférico seguinte entra no mesmo plano, sem escadinha
Bit N da porta 7FFD no flip-flop N
O original embaralhava as entradas do latch; aqui a ordem é natural e o esquemático se lê sozinho
Endereços e dados da EPROM 1:1
Obrigatório (o conteúdo da ROM é fixo) e documentado
Pontos de teste (VRAM, CLK7FFD)
Para depurar sem grampear em perna de CI
LED de energia (opcional)
Diagnóstico imediato
Peças em produção na BOM
AS6C1008 e ATF20V8B no lugar de peças só encontráveis como estoque antigo
Configuração dos jumpers
Jumper
Posição
Efeito
JP1 SELECIONA ROM
1-2
ROM 128: a EPROM da placa responde em 0x0000-0x3FFF
2-3
ROM interna: EPROM desligada (padrão)
JP2 ROMCS BARRAMENTO
aberto
Usa a ROM interna do micro (padrão)
1-2
Aciona ROMCS pelo GAL (comportamento da placa original)
2-3
Fixa ROMCS em nível alto (estilo Interface 2)
JP3 ZX128/ZX512
aberto
128K — SRAM AS6C1008 (padrão)
fechado
512K — SRAM AS6C4008
Esta tabela está serigrafada no verso da placa, uma por jumper, com as
mesmas palavras — ver o render do verso acima.
⚠️ JP1 em 1-2 sem JP2 não faz nada útil: sem desligar a ROM interna, os dois
chips disputam o barramento de dados. Use os dois juntos ou nenhum.
A auto-desativação da RAM não tem jumper.R4 mantém o pino 29 em
nível 1 permanentemente, e esse pino é N.C. tanto no TK quanto no ZX Spectrum.
Num Spectrum a placa não faz nada ali; num TK, com o fio interno do pino 29 ao
pino 10 do IC27, ela desliga os 32 KB. Nada a configurar.
Ou AS6C4008-55PCN (512K×8) no modo ZX512 — outras peças servem, ver equivalentes
U4
27C256
DIP-28 600 mil
Opcional — ver seção da ROM
R2, R4
1 kΩ
axial, vertical
R5
0 Ω
axial, vertical
Fio; 100–470 Ω se houver disputa no ROMCS
R3
2,2 kΩ
axial, vertical
Opcional (LED)
C1–C5
100 nF cerâmico
disco 5 mm, passo 5 mm
C6
10 µF eletrolítico
radial 5 mm, passo 2 mm
D1
LED 3 mm
Opcional
JP1, JP2
header 1×3
passo 2,54 mm
JP3
header 1×2
passo 2,54 mm
J1
TE/AMP 5645235 — conector de borda 56 vias, entrada vertical
passo 2,54 mm, fileiras a 4,85 mm
Único componente do lado do cobre; recebe os dedos do micro
—
soquetes torneados DIP-20/24/28/32
Recomendado
Equivalentes para U3 (a SRAM)
O projeto não depende de um fabricante. Serve qualquer SRAM 128K×8 de 5 V em
DIP-32 na pinagem JEDEC de 1 Mbit — que é a pinagem padrão dessa família:
/CS1 no 22, /OE no 24, /WE no 29, CE2 no 30, VCC no 32, GND no 16.
Peça
Fabricante
Situação
AS6C1008-55PCN
Alliance
Da BOM — ainda em produção, a mais fácil de achar nova
HM628128A (ex.: HM628128ALP-7)
Hitachi
Descontinuada; comum como estoque antigo
TC551001
Toshiba
Descontinuada
KM681000
Samsung
Descontinuada
CY62128
Cypress
IS61C1024 / IS62C1024
ISSI
O 1024 é 1024 kbit = 1 Mbit, não 1 M×8
⚠️ Uma 62256 não serve. É 32K×8 (256 kbit) em DIP-28 — outra
capacidade e outro encapsulamento. A confusão é fácil porque a numeração
parece próxima.
A única divergência real entre essas peças é o pino 30, e vale conferir no
datasheet da que você comprou:
Pino 30
Funciona?
CE2 / CS2, ativo alto
Sim — é o caso da AS6C1008
NC, não conectado
Sim — o sinal é ignorado e o /CS1 do pino 22 controla sozinho
A17
Aí é uma 512K×8, não uma 128K — ver abaixo
Isso funciona porque /SA17 é uma saída invertida do GAL:
text
/SA17 = A14 * A15 * BANK3 * /ZX512
Com JP3 aberto, o pull-up põe ZX512 em alto, o produto zera e o pino 30
fica fixo em nível alto — exatamente o CE2 que a memória espera.
⚠️ Com uma 128K×8, JP3 fica aberto — sempre. Fechado por engano, o
pino 30 deixa de ser nível fixo e passa a receber /SA17 paginado: toda vez
que o software escrever BANK3=1 na porta 0x7FFD, o pino cai para nível
baixo e desabilita a RAM em 0xC000. A falha é intermitente e depende do
jogo, que é o pior tipo de falha para diagnosticar.
Velocidade é indiferente. Peças dessa família vão de 55 a 100 ns, e a
3,5 MHz há mais de 500 ns entre o endereço ficar válido e o Z80 amostrar o
dado. Até a mais lenta sobra.
Procedência importa mais que velocidade. As descontinuadas circulam como
estoque antigo e SRAM antiga é alvo comum de remarcação. Se o preço for
parecido, prefira a peça em produção.
No modo 512 KB
Aí a peça tem que ser uma 512K×8 de verdade — AS6C4008, HM628512,
TC554001, IS61C4008 — porque o pino 30 passa a ser A17 e o pino 1, A18.
E JP3 fecha. Ver Modo 512 KB.
Tira de expansão
Não leva componente nenhum, nem conector: os "conectores" são cobre da própria
PCB, e o único item a soldar além das ilhas é um pedaço de fio.
Ref
O que é
Observação
J1
Ilhas de solda nas duas faces, até a borda
Solda nos terminais retos do conector da placa principal, por cima e por baixo
J2
Dedos de borda
Passagem do barramento ao próximo periférico
W1
Fio isolado curto
Liga as duas ilhas GND - FIO ISOLADO no verso (pinos 6 e 14); passa por cima das trilhas, por isso isolado
A guia do conector de borda. O conector de 56 vias vem sem guia. Na
posição 5/52 você encaixa um pedacinho de PCB (ou material equivalente)
casando com o rasgo entre os dedos do TK — a placa não tem furos ali,
porque não há terminal nessa posição. Sem a guia é fácil plugar deslocado
e danificar o micro.
A tira de expansão é soldada dos dois lados. Ela entra entre as duas
fileiras de terminais retos do conector — uma fileira por cima, outra por
baixo — e as ilhas chegam até a borda, então o terminal encontra cobre
mesmo se for curto.
Fabricação
Arquivos prontos em production/: Gerber X2, furação Excellon,
BOM e mapa de posições, para as duas placas.
Cada placa tem o seu gerbers.zip, que é o arquivo que se envia à fábrica.
Placa principal
Tira de expansão
Camadas
4 (F.Cu / GND / +5V / B.Cu)
2
Espessura
1,6 mm
1,6 mm
Trilha
0,5 mm
1,5 mm
Isolação
0,2 mm
0,25 mm
Furo mínimo
0,3 mm
— (sem furos)
Via
0,8 mm com furo de 0,4 mm
nenhuma
Furo não metalizado
1 × Ø5,4 (H1, passagem da torre da caixa)
nenhum
Tudo folgado dentro da capacidade padrão de fábrica barata — nada aqui entra em
faixa de preço especial, a não ser as 4 camadas da placa principal.
⚠️ Peça 4 camadas para a placa principal. Se pedir 2 por engano, a fábrica
descarta os dois planos internos e a placa sai sem alimentação nenhuma — falha
que não aparece na inspeção visual. Ver
ANTES-DE-FABRICAR, item 3b.
A tira de expansão precisa de acabamento em ouro (ENIG) na placa inteira e
chanfro de 45° na borda dos dedos. Os dedos entram e saem do conector do
periférico seguinte muitos ciclos, e as ilhas de solda do outro extremo também
chegam à borda — HASL descasca nos dois casos. Peça o chanfro explicitamente,
é um item à parte no pedido.
Gravando o GAL
Já vai pronto: grave hardware/gal/tkmem128.jed
direto no programador. Checksum de fusíveis C5752 — confira no software do
gravador ao abrir o arquivo.
Esse .jed não foi copiado de lugar nenhum: é gerado por
tools/galgen.py a partir das equações deste projeto, e
conferido fusível a fusível contra o mapa de referência do projeto do
Velesoft — zero divergências em 2706 fusíveis. O fonte em sintaxe GALasm está
em tkmem128.pld para quem quiser modificar.
Programadores XGecu (T48/T56) gravam GAL20V8B, ATF20V8B e PALCE20V8H — mas
escolha no software o dispositivo que você tem de verdade: o mapa de
fusíveis é o mesmo, o algoritmo de gravação não.
A ROM do Spectrum 128
A imagem da ROM não está neste repositório — ela é copyright da Amstrad/Sky.
O hardware (soquete U4 + jumpers) está lá; a imagem você monta com as suas
cópias de 128-0.rom e 128-1.rom:
bash
cat 128-0.rom 128-1.rom > rom_tkmem128_27c256.bin
A ordem importa: A14 da EPROM vem de ROMA14 (bit 4 da porta 7FFD), então a
ROM 0 (editor do 128) tem que ficar na metade baixa.
Vale dizer que a ROM é dispensável: o autor da TKMEM-128 original deixou de
fornecê-la depois de constatar que os jogos de 128K não dependem dela, e que ela
causava incompatibilidades entre unidades diferentes de TK90X.
Estrutura do repositório
text
hardware/
tkmem128-ii.kicad_pro/.kicad_sch/.kicad_pcb placa principal
expansor/ tira de expansão
lib/ símbolos e footprints próprios
gal/ fonte e documentação do GAL
production/
placa-principal/ gerbers, furação, BOM, posições, PDF
tira-expansao/ idem
docs/
PREPARAR-O-TK.md MONTAGEM.md ANTES-DE-FABRICAR.md
VELESOFT-EASY3-x-EASY6B.md comparação com a variante do autor original
relatorios/ saídas de ERC e DRC
tools/ geradores do projeto KiCad
A biblioteca de símbolos e footprints é local ao projeto — nada depende da
versão das bibliotecas do seu KiCad.
O projeto KiCad nasceu gerado por script a partir de uma descrição única da
netlist (tools/) — é o que garante que esquemático e placa não
divergem — e depois foi refinado à mão no KiCad. A fonte corrente são os
arquivos em hardware/; os geradores ficam como registro e ferramenta de apoio.
Estado da verificação
Placa
ERC
DRC
Ligações
Principal
0
0 erros (6 avisos cosméticos)
0 pendentes
Tira de expansão
0
0 erros (4 avisos cosméticos)
0 pendentes
A netlist exportada pelo KiCad foi comparada nó a nó com a intenção de projeto
nas duas placas: 74 nets na principal e 53 na tira, zero divergência.
Copyright Leonardo Rosa e contribuidores.
Derivado de: "external 128kb upgrade" (Velesoft, 2009)
TKMEM-128 (Luccas Eletrônica, 2012)
Este código-fonte é licenciado sob CERN-OHL-S v2 ou posterior.
Você pode redistribuí-lo e modificá-lo nos termos dessa licença.
Distribuído SEM QUALQUER GARANTIA, incluindo as de COMERCIALIZAÇÃO,
ADEQUAÇÃO A UM FIM ESPECÍFICO E NÃO-VIOLAÇÃO.
Consulte a CERN-OHL-S v2 para os termos aplicáveis.
TKMEM-128 II — expansão de 128K/512K paginados (padrão ZX Spectrum 128) para TK90X, TK95 e ZX Spectrum 48K, redesenhada em KiCad. Derivada do projeto do Velesoft (2009) e da TKMEM-128 da Luccas Eletrônica (2012).
This was the final project for the Microcomputer Design Course at LeTourneau University.
85 parts2
Questions
How big is the Tkmem128-ii PCB?
It measures 78.7 × 66 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Tkmem128-ii use?
22 parts, built around the 27C256-17/J, 74HCT273D and AS6C1008-55PCN. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Tkmem128-ii KiCad files?
From the lrrosa/tkmem128-ii repository on GitHub, at the commit this page was made from: the board is hardware/tkmem128-ii.kicad_pcb and its schematic hardware/expansor/tkmem128-ii-expansor.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Tkmem128-ii design in my own project?
Its repository publishes it under the CERN-OHL-S-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).