Ir ao conteúdo
  • Cadastre-se

Computador retrô com z80/68k


Posts recomendados

Olá pessoal, nos ultimos meses estive trabalhando em um projeto bem bacana que consiste em um computador pequeno, com uma intensa limitação, mas com uma vantagem, o hardware 100% aberto, qualquer pessoa vai poder alterá-lo e programálo em nivel de BIOS. fui inspirado nas SingleBoards concorrentes do Raspberry PI que tem hardware aberto, porém trabalhar com chips BGA é bem complicado e passei a utilizar peças mais fáceis de soldar e até de encontrar e acabei optando pelo processador Z80 de 8 bits, com memória ram estatica, portas seriais uma EEPROM e um display LCD Grafico 128x64, nada que seja atrativo comercialmente, é mais uma qustão de satisfação pessoal, programar um x86 a nivel de BIOS não é um passeio no parque e o ARM tambem não fica pra trás na questão de complexdade, já o Z80 é simples como usar um microcontrolador e através da porta serial e paralela é possível expandir as possibilidades do brinquedo.

 

Por estar liso para concluir a primeira etapa que inclui comprar umas ferramentas um tanto caras, dei uma pausa no projeto e foi quando me deparei com o 68000 da Motorola/Freescale, isso abriu uma porta ainda maior para o projeto pois as capacidades do 68k apesar de serem poucas para executar um ambiente UNIX (este abandonou a familia 68k devivo as limitações que eram superadas pelos x86, e outras plataformas) são excelentes para uma plataforma que no máximo pode ser usada para ensino de liguagem de máquina ou como brinquedo mesmo. O 68k amplia a capacidade de memória, o tamanho da palavra dos registradores, o numero de instruções, a velocidade geral do computador e tras outras vantagens comparadas ao Z80, por enquanto estou buscando componentes para realizar as funções auxiliares do computador e informações sobre o 68K, componentes 16 bits não são tão fáceis de encontrar como os de 8 bits e o 68008 (68K com barramento de 8 bits) ainda não é interessante para o projeto.

 

Estou criando este tópico para compartilhar meu projeto e tambem para conseguir algumas dicas da galera sobre hardwares vintage, obrigado a todos! :)

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Anderson1911

Seja bem vindo!

Muito bom relembrar como iniciei e aprendi a programar em ASM. Foi justamente com o Z80, Zilog, e seus periféricos da INTEL nos anos 80.

Os principais:

8251 - Programmable Communication Interface (PCI) - Hoje USART

8255 - Programmable Peripheral Interface (PPI)

8253 e 8254 - Programmable Interval Timers (PIT)

e os incontáveis CIs TTLs auxiliares.

Parabéns pela disposição!

 

 

Link para o comentário
Compartilhar em outros sites

Obrigado @_xyko_!:)

Por conveniencia estou usando os periféricos da familia Z80 (Z80 PIO, Z80 SIO E Z80 CTC) pois estes ainda se encontram em estado de fabricação ativo e são construidos com a tecnologia CMOS que consome bem menos corrente e poupa mais bateria. O unico componente que aninda não encontrei no mercado livre foi o Z80 DMA na versão CMOS, optei por usar o 8237 da intel, mas este já consta como obsoleto e usa tecnologia HMOS.

Apesar de querer atualizar o projeto para o 68K descobri que o 68K já é uma plataforma obsoleta e nesse caso vou ficar no Z80 já que o objetivo é mais educacional, o 68K é bem mais complexo de usar e vai deixar a produção mais cara, mas ainda assim vou dar uma trabalhada em um projeto usando o CPU Motorola.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Anderson1911

Sim, citei os da Intel porque foram os que usei em alguns projetos, mas quando fui fazer cursos na Prológica, fabricante da época dos CP500, CP200, SP16, Impressoras...etc. aprendemos sobre os CIs periféricos que citou acima.

Quando tiver algo pronto,poste o circuito e códigos pra gente...OK

O que vai usar como BIOS. EEPROMs paralelas?

Não me diga que vai ser as EPROMs de janela 27xx, se é que ainda existem...kkk

Ainda guardo minha lâmpada ultravioleta (germicida de 15W) que usava para apagá-las.

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@_xyko_ no inicio eu estava contando de usar eproms OTP ou de janelas (sim ainda fabricam esta memórias!!!) mas o custo de um gravador tornou esse sonho distante até mesmo para eeproms paralelas , optei agora por usar memórias eeprom seriais que da pra gravar usando um pic ou um arduino.

Link para o comentário
Compartilhar em outros sites

@Anderson1911 ,

 

Eu  escreví ( quer dizer, nacionalizei através do conceito black box ... )  um BIOS real de IBM-XT em 1986.

Nosso computador utilizava um NEC V20, que era um pouco mais rápido que o 8088 e tinha uma vantagem enorme : ele tinha um modo nativo onde rodava instruções do Z80 !

 

Me permita fazer algumas observações :

 

1 - Não seria mais interessante fazer o seu projeto baseado em um ATMEGA1284P , que possui um assembly bem pareçido com o do Z-80, roda a até 20 Mhz, é disponibilizado no formato DIP-40, e já inclui os periféricos equivalentes ao Z80-SIO , Z80-CTC e Z80-PIO, tudo internamente e com alto poder de processamento ? Ainda tem cerca de 128K de memória Flash de programa, 16K de RAM, 4K de EEPROM. E por um preço perto de R$ 45,00 aqui no mercado nacional ?  Além disso, as ferramentas de desenvolvimento são todas fornecidas pela ATMEL gratuitamente.

 

2 - Se o seu projeto é para um micro simples, ele vai precisar de um teclado tipo de PC. E , como você mesmo disse, um pequeno display gráfico . Mas temos hoje excelentes displays gráficos coloridos com resolução de 320x200 , e de custo equivalente a um simples display monocromático do tipo 128x64. Daria até para se fazer jogos bonitos.

 

3 - Fazer um BIOS para este equipamento é algo simples. No caso de se usar o Atmega1284, pode-se criar um super-bios de 128K com um montão de funçao tudo prontinha, assim mesmo com 16K de RAM pode-se fazer coisas bem sofisticadas.

 

4 - Seria muito interessante usar um cartão SD para armazenamento de programas ou de dados.

 

Paulo

 

Link para o comentário
Compartilhar em outros sites

@aphawk O V20 é realmente uma bala! Não entendi muito bem o nacionalizar mas deve ter dado trabalho pra caramba.

 

Comecei o projeto com um PIC,  mas não encontrei formas de acessar o barramento de dados e de endereços, o mais próximo que consegui foi o modo PSP que usa um PORT como barramento de dados de 8 bits. em minhas pesquisas acabei encontrando um computador chamado DUE que usa ATMEGA e ATTINY como processador, o problema é como dizia um comentário sobre o DUE que o mesmo estava apenas programado para responder a alguns comandos. como estou projetando um computador programávél e de baixo custo com capacidade de criar expandir suas funções creio que usar o ATMEGA vai limitar e cortar muitas vantagens que tenho quando acesso diretamente os barramentos do processador.

 

Uma solução bem viável que encontrei foi a CPU Z80180 que custa aproximadamente de 2 dollares e vem com MMU, DMA, UART, endereça até 1 MB de memória e tem acesso direto aos barramentos do processador e total compatibilidade com o Z80, mas ainda estou indeciso sobre colocar este Z80 turbinado ou usar o Z80 simples, mas muito obrigado pela ajuda! :thumbsup:

Link para o comentário
Compartilhar em outros sites

@Anderson1911 ,

 

kkkkk é que ninguém consegue fazer um bios do zero, todo mundo parte do Bios original da IBM e mascara o código, mas sempre produzindo exatamente o mesmo resultado do Bios da IBM!  Isso é o conceito da caixa preta : não sabemos o que tem dentro, mas se fizer o mesmo trabalho que o BIOS IBM original, então é compatível !

 

Ainda não entendí o porque que voce precisa acessar um barramento de dados e de endereço .....  afinal um computador de baixo custo já implica em baixa capacidade de expansão. E para que acessar mais de 64K de memória ????? Ainda mais se o seu objetivo é programar em Assembly ?

 

Por exemplo, existem alguns Atmegas que estão preparados para criar um barramento de 8 bits multiplexado para acesso à memórias e outros tipos de periféricos de acesso paralelo, mas aí já implica em usar chips que não são no formato DIP.

 

Tem algumas pessoas que fazem coisas maravilhosas sem precisar de tanta coisa..... olha este exemplo :

 

Ví um cara que pegou um Arduino Uno R3 , ( ele tem dois processadores internos, um Atmega328 e um Atmega8 ) , programou o Atmega8 como um gerador de vídeo, e no Atmega328 implementou um simulador do Apple ][ ! É algo fantástico por um preço tão baixo !

 

Se voce pegar um Arduino Mega e aplicar o mesmo conceito, pode-se ter um pequeno computador de baixo custo muito versátil.

 

Enfim, existem muitas opcões, mas eu não usaria algo tipo Z80 hoje, embora eu tenha programado muito para ele no passado.... bem poucas pessoas poderiam te auxiliar nesse projeto !

 

Mas é o SEU projeto, escolha um caminho e vamos ver se conseguimos te acompanhar, ok ?

 

Paulo

 

Link para o comentário
Compartilhar em outros sites

@aphawk Projetos são uma colcha de retalhos, a ideia do atmega é muito interessante, talvez seja melhor implementar o uso de ATMEGA em vez do PIC que tem o custo do gravador que costuma ser bem salgado.

A capacidade expansão, é mais pelo fato que sempre posso melhorar o projeto sem precisar refazer tudo ou desmontar uma placa já pronta, posso adicionar novas funcionalidades com placas de expansão sem modificar ou regravar os microcontroladores, sem contar nos programas que podem ser escritos pelo usuário, acho que neste ponto não da pra abandonar o Z80 para diminuir custos e tamanho, ainda preciso manter o sistema versátil e com multifunções, o uso de microcontroladores vão ficar por enquanto apenas nas funçoes pre programadas. :)

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

 

@aphawk

Bem vindo de volta, amigo.

Viagem longa... heim. Obrigado pelos cartões. hehehe.

 

@Anderson1911

Usando um AVR vai sair um μmicro (por causa do tamanho).

Ah se tivesse no Brasil os ATxMega, pelo menos os de 128K de flash.

Um microcomputador de 8 bits para aprendizado com este poder seria ótimo.

------

Voltando aos uProcessadores, ao invés de uma eeprom serial, eu usaria um cartão SD com AVR para carregar os programas na RAM, como a 62256. Já pensou quantos programas caberia num SD de 4GB...

Link para o comentário
Compartilhar em outros sites

@_xyko_ Carregar tudo direto do cartão SD parece uma ótima ideia, aposentar as eeproms, acho que é assim que funciona no raspberry pi, onde a BIOS é configurada num txt gravado no cartão.

Conheço muito pouco o ATMega, nem sei programar o 328P fora do arduino, mas me interessei nos modelos que possuem a função USB OTG. Quanto ao PIC me viro até usando assembly, o datasheet é bem mais fácil de entender.

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
4 horas atrás, Anderson1911 disse:

@_xyko_ Carregar tudo direto do cartão SD parece uma ótima ideia, aposentar as eeproms, acho que é assim que funciona no raspberry pi, onde a BIOS é configurada num txt gravado no cartão.

Conheço muito pouco o ATMega, nem sei programar o 328P fora do arduino, mas me interessei nos modelos que possuem a função USB OTG. Quanto ao PIC me viro até usando assembly, o datasheet é bem mais fácil de entender.

 

É tudo questão de começar. Se já programa pelo menos um pouco de ASM no PIC vai ver que no AVR é bem mais rápido. Basta se acostumar com as instruções (mnemonicos) e verá que ao invés de usar mais de 1 no PIC usará apenas 1 no atmega328 para a mesma função, com a vantagem de a maioria ser executada em apenas 1 clock.

Quanto ao SD, poderá dividi-lo em tantos segmentos de 64KB que o cartão permitir para salvar os códigos BIN de cada programa e nomeá-los pelo número do seu segmento. Desta forma nem precisa de uma FAT no SD.

Mas também pode criar um DOS, como o AVR-DOS do BascomAVR que o Paulo e eu usamos. Simplifica, e muito, quando tiveres que trabalhar com vários tipos dispositivos de armazenamento em massa ( MMC, SD, SDHC, CFcards e HDs) formatados em FAT16 ou FAT32.

 

 

Link para o comentário
Compartilhar em outros sites

@Anderson1911 ,

 

Se você consegue programar um PIc em Asm, vai achar que programar um Atmega é a coisa mais fácil deste mundo : tudo é derivado do velho 8080 !

 

Memória linear, sem frescuras de bancos a serem comutados, hardware rápido, e a grande maioria das instruções usa 1 ciclo de clock apenas !

 

Paulo

Link para o comentário
Compartilhar em outros sites

@aphawk Nunca entendi porque o PIC divide a frequencia de clock por 4, isso tambem acontece nos PICs de 16 e 32 bits? Pelo visto vocês estão me convertendo para o AVR, vou comparar alguns uC's com o PIC que estou usando de base para o projeto (18F4550).

 

@_xyko_ ainda tenho que estudar sobre partições, tenho que fazer um OS básico para operar o sistema de E/S e interrupções, vou dar uma estudada nos AVR-DOS para o ver o que posso reaproveitar.

 

:thumbsup:

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Estude suas instruções. Verá que não é nenhum bicho de 7 cabeças.

O set de instruções é válido para todos os AVRs, tanto Tinys quanto Megas, inclusive os endereços dos registros são praticamente os mesmos para todos

http://www.atmel.com/images/atmel-0856-avr-instruction-set-manual.pdf

 

Aqui para ajudar a dar os primeiros passos.

http://www.avr-asm-tutorial.net/avr_en/beginner/

http://www.avr-asm-tutorial.net/avr_en/

http://www.avr-asm-download.de/beginner_en.pdf

http://www.atmel.com/Images/doc1022.pdf

 

Podes usar o AVR Studio para compilar o ASM. 

Eu uso o Bascom porque facilita a configuração dos periféricos.

Ele configura qualquer um (contadores, Usarts, ADCs, I/Os,  SPI, etc) em uma linha.

Depois é só usar as diretivas:

$Asm

...

...

$End asm

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Um off topic meio on..

Falando em saudozismo, z80 e tal...me fez lembrar...

NE084_Fevereiro1984_Capa.jpg

Te lembra disso? O autor do tópico provavelmente nem tinha nascido ainda. Pergunte pro seu pai. Ou avô! kk

ah sim, esqueci de dizer...o Nestor era baseado no Z80. Não sei se ficou claro na imagem...

Link para o comentário
Compartilhar em outros sites

@vtrx ,

 

Sim, a ideia inicial era essa, mas querer expandir um projeto baseado no Z80 ou 68K dá um baita trabalho, sem falar que os chips antigos custam bem mais caro que os novos... conversar com um cartão SD, um teclado USB, e ainda usando um processador de baixa velocidade clock.... E com o objetivo de se programar em Assembly .... Por isso que eu sugerí usar um Atmega, principalmente que o jeitão geral da CPU Atmega lembra muito um 8080 e por extensão o Z80 é bem próximo a ele. Enfim, como disse antes, o autor é quem vai definir o caminho que ele prefere trilhar.

 

Como o Xyko já percebeu, dá para fazer o projeto usando o Bascom para inicializar tudo, conversar com um teclado PS/2, e tratar arquivos em um cartão SD como se fosse um MS-DOS, pois tudo isso é nativo no Bascom. Depois , pode-se continuar tudo em Assembly mesmo, dentro do próprio programa em Bascom.

 

 

@Isadora Ferraz ,

 

Nossa, que saudades dessa revista !

Eu tive todos os números dela, e da revista Micro Sistemas, nessa época eu tinha um Sinclair ZX-81 que logo vendí para comprar um TK-85, e aprendí muito sobre o Z80 nessa época.

 

E pensar que hoje posso usar um Atmega1284 e ter muito mais simplicidade, poder e recurso para montar algo do tipo do Nestor, com um custo mais de 10 vezes mais barato.....  Só quem viveu nessa época e montou projetos desse tipo é que sabem dar valor à simplicidade e facilidade dos dias de hoje !

 

Mas esse seu post entregou a sua idade, Isadora ! Kkkk

 

Paulo

Link para o comentário
Compartilhar em outros sites

@_xyko_ Obrigado pelos Links! vou da uma estudade e depois procurar alguns gravadores para montar, dependendo do andamento vou abandonar o 18f4550;

 

@vtrx O desenho do computador ainda conta com um processador Z80 (que ainda pode ser mudado para o 68K), no meu caso vou usar o microcontrolador para adaptar os periféricos (como o teclado, o SD Card, a cópia do programa de inicialização para a memória), o projeto do computador ainda usa um Z80 com portas seriais e paralelas.

 

@Isadora Ferraz O Nestor é aproximadamente onde quero chegar, ouvi falar que estão melhorando o hardware dele e chamando de Nestor+.

 

@aphawk Chips antigos realmente custam caro, é o caso do 68k, mas o Z80 não é um chip antigo! Eles ainda estão em estado ativo, hoje eles são fabricados com tecnologia CMOS e consegem alcançar velocidades maiores que 4 mhz e custam aproximadamente 10 reais. Os encargos do teclado e do SD ficam por conta do microcontrolador que alcança velocidades mais altas e entregam  os dados para o Z80 via DMA.

Link para o comentário
Compartilhar em outros sites

@Anderson1911   Muito bom seu projeto, eu queria ter a destreza para fazer algo do tipo,  digo isso, pois tudo que eu começo eu paro na metade... rsrs  Espero que de tudo certo,  e também vou ajudar no que puder.

 

4 horas atrás, Anderson1911 disse:

dependendo do andamento vou abandonar o 18f4550;

 

  Se quer minha humilde opinião, abandone mesmo, rsrs, a serie 18F não compensa o custo/Desempenho... O 18F4550 da para substituir pelo ATmega32u4 que também tem USB, ele não tem em formato DIP mas tem em formato QFN, cujo o soquete não é tão difícil de se soldar e ainda poupa um bom espaço na placa... Importando sai a uns 2,8 dólares cada ATmega32u4... É muito barato, o problema é que se for comprar em território nacional, não vai achar no formato QFN e ainda vai custar o mesmo preço do PIC.

 

  Seguindo um pouco a "linha" da @Isadora Ferraz ... Um off topic meio ON (kkk):

 

  Eu não vivi essa época dos computadores de 8 Bits pois nasci na metade da década de 90, mas quando eu tinha lá meus 15 anos ganhei este livro do meu pai:

IMG_20160222_004129.thumb.jpg.f060212876

 

 

  O livro é de 1986 e explica como construir um computadorzinho chamado Micro-Galena, Segundo o autor este nome foi dado em referencia ao Radio de Galena, ele também cita que a complexidade dos dispositivos eletrônicos da Época tirava esse "prazer" da eletrônica de montar as coisas com as próprias mãos e vê-las funcionando, justamente nessa parte ele cita o radio de galena.

 

  Este tópico me lembrou muito a parte em que ele fala da satisfação em montar as coisas por si mesmo...  Eu achei que isso tem muito haver com o assunto abordado aqui... XD

 

  O livro é bem completo e ensina passo a passo como montar e programar o computador, fazendo uma abordagem bem detalhada do arquitetura do Z80.

 

  E eu ainda tenho os Diagramas Esquemáticos:

IMG_20160222_004505.thumb.jpg.805c79a692

ps: Meu velho tem mania de pintar os CI's dos diagramas, assim ele sabe que aquele diagrama já foi estudado por ele.

 

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@LuizGBarrio

Opa... eu também tive este livro. Nesta época (86) eu tinha a boa mania de comprar tudo que tinha nas bancas sobre eletrônica.

Olha que legal os arranjos com portas lógicas pra definir os endereços de acesso do buffer tri-state  de entrada, embaixo, que deve ser um 74LS244 e o latch, em cima, 74LS373 ou 374.

E já fomos felizes com 1 ou 2MHz de clock na CPU!

Link para o comentário
Compartilhar em outros sites

@LuizGBarrio Os ATmega são realmente melhores, inclusive tem versões que suportam o USB OTG, mas como você disse, aqui no BR a so tem no máximo versão QFN, achei o ATmega32u4 na ALI Express na versão TQFP-44 por 3 dolares, mas só uso placa de fenolite ilhada e ferro de solda(sou liso kkkk), o que complica um pouco na hora de usar esses circuitos. Já no caso da Microchip ela fabrica varios circuitos "avançados" com encapsulamento DIP, que é bem mas fácil de manusear, no final isso conta na hora de desenvolver um projeto. Apesar de conhecer a superioridade do atmega não tenho como negar a robustez do PIC e as facilidades que a microchip oferece, aqui na minha cidade encontro PICs em qualquer loja de eletrônica, já os ATmegas só no ML. Também tem as desvantagens, como o gravador PICKIT3 que ta meio caro, ainda uso simulador por esse motivo.

 

Antes de começar a usar o Z80 dei uma olhada em alguns projetos como o Micro-Galena, naquela época tinha bem mais opções para montar um pc de 8 bits, com processadores completos como o Z80 e 6502 e até o 68K. Hoje só tem ARM como opção para quem quer montar algo independente, nada contra o ARM, é uma ótima plataforma, mas ha apenas uma opção de processador que já esta com tudo incluso, acho legal montar tudo separado, poder mudar o processador de vídeo ou o o controlador de portas, ou poder montar tudo em uma protoboard e ir fazendo testes e ver a coisa funcionando, aprendendo na prática.

 

@vtrx Acho que com 68K só montando mesmo, existem aguns micrcontroladores e microprocessadores baseados no 68K mnas até os mais recentes da NXP já estão descontinuados :(

 

 

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...