TTL CPU

181 views
Skip to first unread message

DQ

unread,
May 13, 2016, 8:44:51 AM5/13/16
to Garoa Hacker Clube
Ontem o Juca, inspirado pelo Patinho Feio, estava falando em montar uma CPU com integrados TTL. Olha o que eu achei:

http://digitarworld.uw.hu/

Tem até um toolchain com assembler e compilador:

https://github.com/szoftveres/ttlcpu

Os CIs necessários são:

1 74HC08
1 74HC14
1 74HC74
2 74HC138
4 74HC161
2 74HC173
2 74HC283
1 74HC540
3 74HC541
4 74HC574
2 61256 (SRam, desconfio que pode ser usada a 62256)

Bora?

DQ

Felipe Sanches

unread,
May 13, 2016, 8:54:55 AM5/13/16
to Garoa HC
Legal. Mas se eu entendi direito isso não é uma CPU discreta, como no caso do Pato. É um computador inteiro usando uma CPU integrada (Z80) :-D

Aliás... o quão diferente isso é do ZAP Computer do Steve Ciarcia (descrito no livro "Build Your Own Z80 Computer", um clássico!) ?

Juca

--
-... . . -..- -.-. . .-.. .-.. . -. - - --- . .- -.-. .... --- - .... . .-.
Regras da Lista: https://garoa.net.br/wiki/Lista:LeiaAntesDeClicarNoSend
Para mais informações sobre o Garoa Hacker Clube acesse https://garoa.net.br
Maiores opções sobre o Google Groups, visite: https://groups.google.com/group/hackerspacesp
.--. .- .-. .- -- .- .. ... .. -. ..-. --- .-. -- .- . ... .- -.-. . ... ... . --- .-- .. -.- ..
Epoch 0 <=> Fundação: 1298244863 s ~ 2.408064*10^52 tP (tempos de Planck)

DQ

unread,
May 13, 2016, 9:20:08 AM5/13/16
to Garoa Hacker Clube
Tem dois projetos no menu à esquerda na página. O primeiro é com Z80, o segundo é discreto (maldito site sem URLs distintas para cada página).

A documentação parece incompleta (esquema parcial em formato Eagle, você vai amar isto). Anexo o diagrama da arquitetura (nele a SRam está indicada como 62256, na foto dos componentes está 61256).

DQ
ttlcpu_arch.png

Fernando M.

unread,
May 13, 2016, 9:20:26 AM5/13/16
to hacker...@googlegroups.com

Esta página que o DQ indicou tem os dois.

No momento não estou podendo participar, mas vou acompanhar com carinho pq me interessa bastante.

Aí no Garoa tem umas cpus Z80 que doei qdo estava querendo fazer o esquema do livro. Espero poder voltar a este projeto...

DQ

unread,
May 13, 2016, 9:23:40 AM5/13/16
to Garoa Hacker Clube
URL para a página sem o menu: http://digitarworld.uw.hu/ttlcpu.html

DQ

Felipe Sanches

unread,
May 13, 2016, 9:26:04 AM5/13/16
to Garoa HC
Ah! Vi agora que tem uma outra parte do site sobre uma CPU TTL!

http://digitarworld.uw.hu/ttlcpu.html

Felipe Sanches

unread,
May 13, 2016, 9:27:45 AM5/13/16
to Garoa HC
pois é... a zica dessa página é que ela usa frames. E aí quando a gente navega no menu lateral, a URL na barra de endereços não muda, o que dificulta repassar o link. É um problema clássico de usabilidade em websites "das antigas"...

Felipe Sanches

unread,
May 13, 2016, 9:30:19 AM5/13/16
to Garoa HC
Legal ver que o computador homebrew já está emulado no MAME :-)

Mas a CPU TTL aparentemente não está. Eu topo fazer um workshop de emulação para escrever um emulador dessa CPU aí. Ou seja, eu posso "construir" virtualmente a CPU enquato outras pessoas constróem a versão física. E uma coisa ajuda a outra na ora de validar os conceitos e comparar os resultados. Que tal?

Felipe Sanches

unread,
May 13, 2016, 9:31:00 AM5/13/16
to Garoa HC
corrigindo o typo: na **hora** de validar :-)

Felipe Sanches

unread,
May 13, 2016, 9:52:54 AM5/13/16
to Garoa HC
Comecei a estudar o circuito da CPU TTL disponível em http://digitarworld.uw.hu/ttlcpu_schem.png
e consegui já entender alguns dos blocos básicos.

Por exemplo, na imagem anexa a essa mensagem temos o oscilador, gerador de sinal de clock da CPU.

O CI 74LS14 fornece portas NOT (operação de negação booleana) com histerese.
O sinal elétrico da entrada é interpretado como 0 ou 1 dependendo do nível de tensão. Histerese significa que o valor de tensão acima do qual o sinal passa a ser interpretado como 1, depende de qual é o estado atual.

Ou seja, se você tem um 0 na entrada, o nível de tensão vai ter que subir bastante antes de passar a ser interpretado como 1. Mas depois disso, você precisará descer bastante para o sinal voltar a ser interpretado como 0. Ou seja, o limiar de tensão depende do estado do circuito.

Essa característica (dependência de estado) que chamamos de histerese, é importante na construção desse circuito oscilador, por que o principio de funcionamento dele é justamente ficar alternando entre os estados. Então a histerese cria essa faixa de valores intermediários de tensão que permitem que o sinal se estabilize em uma das interpretações lógicas (0 ou 1) durante breves intervalos de tempo, nos quais o capacitor C1 se carrega (se estivermos em 1) ou se descarrega (se estivermos em 0).

Por conta disso, o valor da capacitância de C1 determina o tempo que leva para o o sinal de clock alternar. Ou seja, define a frequencia do clock. Outro componente que também afeta a frequencia do clock é o resistor R5. Este resistor limita o fluxo de corrente. Quanto mais intensa a corrente, mais rapidamente o capacitor se carregará, afentando também a frequencia do oscilador.

Veja que o R5 é um potenciômetro. Então isso significa que essa CPU pode ter seu sinal de clock ajustado pelo usuário.

Por fim, o sinal na entrada da porta NOT é uma curva de carga e descarga do capacitor, enquanto o sinal na saída da porta é uma onda quadrada em nível TTL, o que é adequado para alimentar os demais componentes digitais da CPU.

Fica de lição de casa calcular qual a faixa de frequencias que esse oscilador permite gerar. Vi no esquemático que o capacitor C1 é de 10 micro-Farads. Mas não está claro qual é o intervalo de valores de resistencia do potenciômetro R5... Descobrindo essa faixa de valores, dá pra fazer as contas com a equação de tempo de carga e descarga do capacitor.

oscilador.png

Felipe Sanches

unread,
May 13, 2016, 10:20:34 AM5/13/16
to Garoa HC
Nessa outra imagem (em anexo) vemos que o sinal da onda quadrada gerada pelo oscilador discutido na mensagem anterior passa por uma porta AND (no circuito integrado 74LS08 identificado como IC17A no esquemático).

A função dessa porta AND (operação E booleana) é habilitar ou desabilitar o sinal de Clock da CPU, dependendo do estado lágico da outra entrada.

O outro sinal de entrada desda porta AND vem de um circuito de flip-flop. Um flip-flop basicamente é um circuito que armazena um bit de informação. Ele pode estar ligado ou desligado. O flip-flop é construído com esse zigue-zague de retroalimentação entre os seguintes 4 componentes:

* as duas portas lógicas AND (74LS08) identificadas como IC17C e IC17D
* as duas portas lógicas NOT (74LS14) identificadas como IC16B e IC16C

As entradas do flip-flop são os sinais indicados pelos números (10) e (12) em suas portas AND.
Essas entradas permitem que o flip-flop mude de estado. Um sinal de zero volts na entrada (12) coloca o flip-flop em estado "ligado" enquanto na entrada (10) coloca o flip-flop em estado "desligado". (normalmente os sinais de entrada ficam fixos em 5 volts por causa dos resistores de pull up que vou explicar no próximo parágrafo)

Os sinais nessas entradas do flip-flop vêem de botões chamados "START_SW" (start switch) e "STOP_SW" (stop switch) que podem ser pressionados pelo usuário para ligar ou desligar a geração de sinal de clock da CPU. Esses botões possuem resistores de "pull-up" (R7 e R23, respectivamente) que servem para garantir a estabilidade do sinal elétrico quando os botões não estão sendo pressionados. O sinais ficam fixos em 5 volts e só passam para zero quando o respectivo botão é pressionado.

Tenho dúvida sobre o diodo D19. Não sei pra que ele serve. Alguma idéia DQ?

Também não está claro por que somente o botão de STOP_SW tem um capacitor. Suponho que a função do capacitor seja para debouncing (ou seja, evitar que o sinal elétrico flutue ruidosamente quando o usuário pressiona o botão). Eu esperaria ver capacitores de debounce em ambos os botões e não só no STOP_SW.... Alguma idéia DQ? :-)

Por fim, as saídas do flip-flop possuem LEDs (LED19 e LED20) usados para indicar se a CPU está com clock ativo ou não. O LED19 está ligado na saída de fato do flip-flop (que é usada para liberar ou bloquear a propagação do clock por meio da porta AND IC17A). Por isso o designer optou por usar um LED verde. Já o LED20 é vermelho e está ligado na saída invertida do flip-flop.

Ambos os LEDs têm seu brilho definido pelo resistor R24, que limira a intensidade de corrente que passa pelos LEDs. Sem a limitação de corrente deste resistor os LEDs iriam certamente superaquecer e provavelmente queimar.

clk_liga_desliga.jpg

Felipe Sanches

unread,
May 13, 2016, 11:01:04 AM5/13/16
to Garoa HC
Já o resto do circuito eu gastei a última meia hora analisando. Entendi uma boa parte, mas não ouso explicar aqui antes de amadurecer melhor a minha compreensão da parafernalha toda... :-D

Juca

Sebastião Barretto

unread,
May 14, 2016, 9:49:46 AM5/14/16
to Garoa Hacker Clube, ju...@members.fsf.org
Bom dia, Juca,

me intrometendo na conversa, o capacitor e o diodo formam um clássico circuito de Reset ao Ligar. Quando a alimentação é ligada, o capacitor demora a carregar e mantém aquela entrada em "zero" até que os circuitos se estabilizem. Quando o circuito é desligado, ele rapidamente descarrega pelo diodo, garantindo que ao ser ligado novamente, o circuito de Reset esteja funcionando. Se não me engano, tem esse circuito no livro "Projeto de Computadores Digitais" que o DQ doou ao garoa.

Sebastião.

Felipe Sanches

unread,
May 14, 2016, 10:23:54 AM5/14/16
to Garoa HC
Sim, tem mesmo e eu estava lendo justamente essa parte do livro hoje de manhã, hahaha! Eu acho que eu vi uma outra parte do circuito que também usa esse conceito.

Interessa ao pessoal da lista continuarmos fazendo essa análise?

Andei pensando que talvez fosse melhor eu gravar uns vídeos explicando. Mas por enquanto vou me restringir apenas a digitar textão por aqui mesmo, se o pessoal se interessar pela análise :-)

Juca

Leandro A. F. Pereira

unread,
May 15, 2016, 4:16:25 PM5/15/16
to hacker...@googlegroups.com
2016-05-13 9:44 GMT-03:00 DQ <dqsoft....@gmail.com>:
Ontem o Juca, inspirado pelo Patinho Feio, estava falando em montar uma CPU com integrados TTL. Olha o que eu achei:

http://digitarworld.uw.hu/

É um projeto realmente interessante! Há um tempo atrás eu comecei a dar uma olhada nessas CPUs caseiras, e encontrei alguns projetos legais também. O meu favorito até agora é o MyCPU, que tem tanto versão com componentes discretos quanto em FPGA: http://mycpu.selfhost.it/

Eu não estou achando um outro que é bem interessante também, mas que usa relês. Existem alguns na web (inclusive um inspirado nos Zn do Konrad Zuze, como http://www.nablaman.com/relay/), mas não é o que estou procurando.

--
 Leandro

DQ

unread,
May 16, 2016, 12:26:45 PM5/16/16
to Garoa Hacker Clube
Continue sim fazendo a análise.

DQ

DQ

unread,
May 16, 2016, 1:08:35 PM5/16/16
to Garoa Hacker Clube
Dei uma procurada nos CIs em algumas lojas na internet.

Tem tudo na Farnell USA, mas só os $40 de frete (sobre os quais recai imposto de importação e ICMS, é claro), já desanima.

A Mult Comercial tem quase tudo (faltam o 74HC540 e a memória), só que 173 e 283 só tem na versão LS. Alguém acha que pode dar problema?

A Futurlec tem tudo, porém também só tem 173 e 283 na versão LS.

DQ

Sebastião Barretto

unread,
May 17, 2016, 7:03:13 PM5/17/16
to Garoa Hacker Clube
Pelo que eu vi, deve funcionar interfacear LS com HC, apesar que é recomendado ter um pull-up na saida do LS para garantir que o "1" fique acima dos 3,5 especificado na entrada do HC. A interface com entradas de HCT é direta. Eu, particularmente, gosto mais da família HC (ou HCT) do que o LS porque tem consumo menor. Andei olhando e achei o 74HC173 no Mercado Livre, acho que deve ter também na Sta Ifigênia, porque é uma função mais comum. No caso do 74HC283, como é um somador, acho que pouca gente usa e é mais difícil. Achei no ebay, 3 peças por $3 mais $3 de frete. O vendedor é de Israel, então deve demorar menos que vindo da China, mas nunca se sabe.

Sebastião.

DQ

unread,
May 17, 2016, 8:36:48 PM5/17/16
to Garoa Hacker Clube
Comprei o que achei na Mult.

O que dá raiva é que o 74HC283 tem nas grandes lojas americanas (Farnell, Digikey, etc). Dão até desconto para 10 peças.

A próxima compra vai ser a memória 62256. A Soldafria tem SMD, as PDIP estão em falta. Tem algumas ofertas no mercado livre.

DQ

Marcelo Campos

unread,
Jun 9, 2016, 12:11:32 PM6/9/16
to Garoa Hacker Clube
DQ: já achou as 62256 ?
eu tenho estas 3 pçs e acho que mais uma por aqui, se não tiver ainda dá um toque

Marcelo Campos

unread,
Jun 9, 2016, 12:45:04 PM6/9/16
to Garoa Hacker Clube
faltou a foto :-(  segue:



Auto Generated Inline Image 1

DQ

unread,
Jun 9, 2016, 2:24:25 PM6/9/16
to Garoa Hacker Clube
Achei sim e já comprei: http://www.mamuteeletronica.com.br/home/produto/codigo:5488/circuito-integrado-km62256clp-7l-dip-28
Dos CI faltam só chegar os 74HC540 (comprei da China).

DQ

Allan Moreira

unread,
Jun 11, 2016, 8:13:05 PM6/11/16
to Garoa Hacker Clube
DQ, 

Tem um valor aproximado que gastou para comprar os CI?

DQ

unread,
Jun 13, 2016, 9:41:24 AM6/13/16
to Garoa Hacker Clube
Alan,

Alguns detalhes:
  • A maior parte dos componentes eu comprei na Mult por "simplicidade operacional" (leia-se preguiça de comprar pessoalmente); já me deram a bronca de ser (supostamente) a "loja mais cara da Santa".
  • As memórias foram compradas na Mamute, que eu encontrei em https://garoa.net.br/wiki/Lojas
  • Ficou faltando o 74HC540 que eu achei no eBay. US$5,58 por 10 peças e frete grátis. Pode ser que o pacote seja agraciado com imposto e taxa do correio.

Sem considerar os custos de frete, os CIs comprados nas lojas nacionais saíram R$31,10. O preço unitário dos CIs TTL variou (sem muita lógica, na minha opinião) entre R$0,70 e R$2,60. As memórias saíram R$6,80 cada.


Tem ainda outros componentes, em particular oito chaves. No projeto o cara usou uma dip switch, mas eu vou querer montar um painel bonitinho, são pelo menos R$2 por chave. Tem mais cinco push buttons, um trimpot (ou potenciômetro) e um monte de LEDs. Preciso ver ainda como vou fazer a montagem (placa, caixa, etc). O artigo menciona (mas não dá detalhes) que ele montou um esquema com microcontrolador para fazer a carga do programa a partir de um PC.


O mais caro, é claro, vai ser a mão de obra ; )


DQ

Felipe Sanches

unread,
Jun 13, 2016, 9:48:28 AM6/13/16
to Garoa HC
Pois é... eu também gastei uma nota preta comprando peças na Mult 5a
feira passada, pra montar uma réplica do painel didático do Patinho
Feio.

Segue um rascunho de Bill of Materials:

* ISL 503 KIT SUPORTE LED CROMADO COM LENTE 5MM PACOTE COM 10
UNIDADES = R$ 33,00 | 9 UN => R$ 29,70
* LED 5MM BRANCO
R$ 1,20 POR UNIDADE | 9 UN => R$ 10,80
* LED 3MM VERMELHO
R$ 0,15 POR UNIDADE | 62 UN => R$ 9,30
* SHIFT-REG SERIAL-IN PARALLEL-OUT 74595
R$ 1,80 POR UNIDADE | 10 UN => R$ 18,00 | DOUT + OUTPUT_SCLK +
OUTPUT_RCLK
* SHIFT-REG PARALLEL-IN SERIAL-OUT
R$ 1,90 POR UNIDADE | 1 UN => R$ 1,90 | DIN + 3*SEL + INPUT_SCLK +
INPUT_RCLK
* REDE RESISTIVA 9 PINOS 100K (P/ OS LEDS)
R$ 1,50 POR UNIDADE | 10 UN => R$ 15,00
* REDE RESISTIVA 9 PINOS 10K (PULL-UPS)
R$ 1,50 POR UNIDADE | 3 UN => R$ 4,50
* BOTAO BRANCO QUADRADO (nao tinha branco)
R$ 1,00 POR UNIDADE | 1 UN => R$ 1,00
* BOTAO VERDE REDONDO COM LED
R$ 3,00 POR UNIDADE | 9 UN => R$ 27,00 (PODERIAM 3 SEREM SEM LEDS?)
* CHAVES SPST (nao foi cobrado) R$
1,50 POR UNIDADE (?)| 12 UN => R$ 18,00
* KNOB VERDE
R$ 3,20 POR UNIDADE | 2 UN => R$ 6,40
* SELETOR DE 3 POSICOES (SÓ USAMOS DUAS)
R$ 9,50 POR UNIDADE | 2 UN => R$ 19,00 (MUITO CARO!)
-------------------------------------------------------------------------------------------------------------
TOTAL:
R$ 160,60

Felipe Sanches

unread,
Jun 13, 2016, 9:54:45 AM6/13/16
to Garoa HC
O painel frontal eu estou fazendo em PS cristal cortado a laser com um
adesivo recortado com a arte e saiu 115 reais.

Ainda vou ter gastos com a instalação desse painel em uma
"moldura-caixote" (basicamente um quadro com moldura bem grossa pra
caber o arduino e os botões por trás e poder pendurar na parede).

O projetinho tá saindo bem caro, mas acho que o resultado vai ser bem
bom. E depois, se eu quiser montar outros (se alguém tiver interesse
em fazer também) eu posso pesquisar fornecedores de peças com preços
melhores.

A CPU em si nesse meu projeto será emulada no arduino (vou portar o
código de emulação que eu escrevi pro MAME) mas seria um desafio bem
interessante implementar uma versão TTL da CPU do Patinho Feio também,
dado que temos acesso aos esquemáticos originais do projeto,
disponíveis na tese de mestrado do professor Edson Fregni (publiquei
um PDF disso aqui: https://github.com/felipesanches/PatinhoFeio).

Pretendo levar o painel didático nesta 5a feira na Noite do Arduino.

happy hacking,
Felipe "Juca" Sanches

Allan Moreira

unread,
Jun 18, 2016, 9:39:32 AM6/18/16
to Garoa Hacker Clube

DQ,

Na Dabi tem 74hc574.. 1,50 cada..

Allan Moreira

unread,
Jun 18, 2016, 11:06:44 AM6/18/16
to Garoa Hacker Clube

Dq.. me atralhei.. e vi que faltou o 74hc540 na multcomercial tem. 4.00 cada

DQ

unread,
Jun 18, 2016, 12:34:59 PM6/18/16
to Garoa Hacker Clube
Só SMD (pelo menos no momento).  Soldar DIP já é desafio suficiente para a minha vista cansada.

DQ

Allan Moreira

unread,
Jun 18, 2016, 9:18:48 PM6/18/16
to Garoa Hacker Clube

DQ...

Deve ter chego.. pq comprei lá o dip hj.. já tenho tb todos os CI.

Vou agora pensar como montar .

DQ

unread,
Jun 19, 2016, 8:32:37 AM6/19/16
to Garoa Hacker Clube
Muito bom!

DQ

Felipe Sanches

unread,
Jun 19, 2016, 9:04:53 AM6/19/16
to Garoa HC

Marcelo Campos

unread,
Jun 19, 2016, 2:39:30 PM6/19/16
to Garoa Hacker Clube, ju...@members.fsf.org
muito bacana Juca, o link pra comprar o kit Z80:
https://www.tindie.com/products/Semachthemonkey/rc2014-homebrew-z80-computer-kit/

está zerado agora, e vi que ele tem 3 níveis de compra deste kit: Barebone - Starter Kit e Full Monty, só não entendi os preços pois só mostra 1 valor;

Sandro Friedland

unread,
Jun 19, 2016, 3:22:24 PM6/19/16
to ghc, ju...@members.fsf.org
Uma vez eu vi um link para um kit de ZX-81 para comprar.
Acabei perdendo o link, depois nunca mais achei.

Um ZX-81 ou um ZX-Spectrum seria legal para matar saudades.

Marcelo Campos

unread,
Jun 19, 2016, 9:12:32 PM6/19/16
to Garoa Hacker Clube, ju...@members.fsf.org
verdade... se achar posta aí,eu tive um tk90x que me arrependo até o último de ter vendido
Reply all
Reply to author
Forward
0 new messages