Mostrando postagens com marcador Atari 2600. Mostrar todas as postagens
Mostrando postagens com marcador Atari 2600. Mostrar todas as postagens

segunda-feira, 31 de outubro de 2016

Desvendando o Atari, parte 2 - Desenhando um R6532

Há alguns anos eu dei início a uma série sobre o Atari e seu hardware, bem no início deste blog. Minha intenção era criar uma série de posts que abordavam dois assuntos principais do blog: eletrônica e jogos eletrônicos.
Bem, faz 6 anos que postei o primeiro texto da série, e não postei mais nada sobre o assunto. Um dos posts sobre o KiCad usou inclusive um componente do Atari, o R6532, como exemplo de criação de componentes. Eu pretendia criar todos os componentes do Atari no KiCad, para depois dar continuidade à série do Atari. Infelizmente fiquei devendo esta continuidade.
E é por isto que estou retomando a série do Atari, analisando melhor o esquemático desta placa. Aqui fica claro por que escolhi o Atari: não só ele é mais antigo (não teremos problemas de abordar seus esquemáticos aqui), mas também temos aqui um esquemático mais simples e que nos possibilitará compreender vários conceitos básicos sobre o hardware de jogos eletrônicos.
Nesta série então iremos redesenhar alguns esquemáticos do Atari encontrados no site Atari Age (escolhemos a versão PAL para refletirmos as configurações de nosso país). Vamos usar o conhecimento adquirido através da série sobre o KiCad.

Redesenhando o R6532

O nosso primeiro passo será desenhar todos os componentes do Atari que não são encontrados na biblioteca padrão do KiCad. Entre eles estão o processador 6507, o TIA PAL, conectores de joystick e o CI 6532 (que agrupava periféricos como o timer, memória RAM e portas de I/O).
Como mencionei antes, já desenhamos o R6532 em nossa série sobre o KiCad. Vamos redesenhá-lo, para criarmos uma biblioteca de componentes específica para o Atari.
O primeiro passo é abrir o KiCad. Estamos usando a nova versão do software (4.0.4) para esta tarefa. Vamos criar um novo projeto com o nome de Atari para podermos criar nossos componentes:

Figura 1. Criando um novo projeto
Figura 2. Definindo o nome do projeto
Com um projeto ativo no KiCad, os botões de edição de biblioteca são habilitados. Vamos criar primeiro os símbolos de nossos componentes que serão usados no esquemático. Para isto, vamos clicar no botão Schematic Library Editor na interface do KiCad.

Figura 3. Abrindo o editor de bibliotecas de esquemático
Uma vez no editor de bibliotecas, vamos criar um novo componente.

Figura 4. Botão para criação de componentes
Note que não selecionamos nenhuma biblioteca de trabalho. Isto porque, a partir deste nosso novo componente, vamos criar uma nova biblioteca. As configurações que vamos escolher para o R6532 são as mesmas que usamos na série sobre o KiCad.

Figura 5. Configurações do R6532

Feito isto, Estamos prontos para desenhar nosso R6532. O KiCad já coloca algumas propriedades do componente no desenho, como Nome do componente e o RefDes. Coloque o cursor do mouse em cima de alguma destas propriedade e digite M para movê-la. Vamos agora inserir os pinos de nosso componente, clicando no botão de adição de pinos:

Figura 6. Localização do botão de adição de pinos.

Clicando na área de desenho, veremos a tela de Propriedades do Pino. Vamos começar nosso desenho com o barramento de dados do R6532, então definimos as propriedades do primeiro pino, D0, a seguir:

Figura 7. Propriedades do pino D0
Segundo o Datasheet do R6532, o pino D0 é o pino 33. Da mesma forma, adicionamos os pinos D1 (32), D2 (31), D3 (30), D4 (29), D5 (28), D6 (27) e D7(26).

Figura 8. Pinos adicionados ao desenho.
Como podemos ver, os nomes dos pinos ficaram um pouco grandes para o espaçamento que deixamos. Podemos afastar mais os pinos, ou então redimensionar os textos. A segunda opção é melhor, para que nosso componente não ocupe muito espaço. Para isto, vamos posicionar o cursor do mouse em cima do pino e digitar E:

Figura 9. Editando o tamanho do nome dos pinos
Vamos usar um tamanho de 25mils para os nomes.
Assim que editarmos os pinos do barramento de dados, podemos passar para os pinos do barramento de endereços. O trabalho aqui é o mesmo para o barramento de dados e não precisamos repetir a explicação. Seguindo o exemplo do esquemático no site da Atari Age, vamos deixar um espaço de 100mils entre o barramento de dados e o de endereços (considerando que estamos usando 50mils entre os pinos de cada barramento). Isto destaca visualmente os dois barramentos e indica a qualquer um que ver o desenho que aqueles são dois barramentos separados. O resultado fica assim:

Figura 10. Pinos de dados e endereço
Para finalizar o lado esquerdo do componente, vamos adicionar os sinais de controle do R6532. Depois disto, no lado direito, colocaremos as duas portas de I/O existentes neste processador. Deve-se observar a direção dos pinos especificada no datasheet, como está descrito neste desenho:

Figura 11. Direção dos pinos no R6532
Ou seja, os pinos de endereço (A0-A6) são pinos de entrada, todos os pinos de controle exceto o pino IRQ são de entrada, o resto é bidirecional. Certifique que seus pinos estão assim para facilitar qualquer detecção de defeitos que o KiCad possa fazer.
Adicionei também, ao contrário do modelo do site Atari Age, os pinos de alimentação do R6532 como pinos visíveis. Assim evito qualquer tipo de confusão. Os pinos ficarão, portanto, desta forma:

Figura 12. Posicionamento dos pinos do R6532.
Falta agora desenhar o corpo do componente. Vamos usar para isto a ferramenta de desenho de retângulos para isto.

Figura 13. Botão de desenho de retângulos.

Desenhamos então o corpo do componente, depois posicionamos melhor as propriedades do componente para ficarem próximas a este corpo. Clicando-se duas vezes no texto R6532, editamos também o tamanho deste texto para diminuí-lo um pouco.

Figura 14. Editando o tamanho do texto.
Assim criamos o primeiro componente de nossa biblioteca.

Figura 15. Desenho do R6532 completo.

Falta ainda um detalhe para nosso componente ficar perfeito: precisamos mover a âncora do componente para o primeiro pino de nosso desenho. A âncora é a referência de nosso componente: quando você o seleciona no EEschema e o move, é este ponto que ficará "preso" ao mouse. Esta âncora é representada no desenho pelo encontro das duas linhas azuis. Para movê-la, usaremos o botão específico:

Figura 16. Botão para mover âncora.

Vamos escolher o pino D0 para ser nossa âncora, clicando no botão e depois na ponta de nosso pino. O desenho portanto ficará assim:

Figura 17. Desenho com a âncora no pino D0.

Criando a biblioteca

Agora que temos nosso primeiro componente, podemos criar nossa biblioteca de componentes do Atari. Para isto, existe um botão na barra superior do editor de bibliotecas.

Figura 18. Botão usado para adicionar o componente à uma nova biblioteca.
Ao clicar, o KiCad pedirá um nome para a biblioteca. Daremos o nome de Atari.lib. Como é uma nova biblioteca, o KiCad avisa que ela não poderá ser acessada até você adicioná-la em seu projeto no EEschema.

Conclusão

Criamos o nosso primeiro componente do Atari. O próximo passo será criar todos os outros componentes necessários para se desenhar o esquemático do Atari.

terça-feira, 27 de setembro de 2016

Novidades do blog

Estou há quase 2 meses sem nenhuma nova postagem no blog, por estas estranhas correrias da vida... Mas espero que os próximos dias sejam mais interessantes para este blog.
Quando o blog foi criado, eu desejava escrever textos que envolvessem tanto o mundo dos games como a eletrônica. E foi assim que fiz uma série de apresentação do KiCad (primeiro post da série pode ser lido aqui), preparando terreno para se analisar os esquemáticos e o PCB de algumas plataformas de jogos. E bem no começo deste blog, fiz também um texto apresentando as características técnicas do primeiro sistema que pretendia analisar desta forma: o Atari 2600. Escolhi este sistema por ser mais simples, por possuir o hardware (facilitando a tarefa de checar como ele foi confeccionado) e por ser mais antigo, não trazendo nenhum problema de patentes.
Além disto, desde o final do ano passado o KiCad lançou sua versão 4.0.0, cuja interface pode ser vista na figura acima. Pode-se ver a adição de alguns botões novos nesta interface, que são botões para acesso direto ao editor de bibliotecas de símbolos e de footprints, a retirada do botão para o acesso ao CvPcb e a adição do botão para acesso ao Layout Editor. A nova versão também alterou o formato para os arquivos de PCB e de bibliotecas.
Sendo assim, me pareceu também apropriado seguir a série do KiCad, usando o programa para implementar tudo que foi apresentado naquela série. Assim poderemos ver exemplos práticos do uso do KiCad para criar um esquemático, PCB, e sua visualização. Ao mesmo tempo, entenderemos como o Atari 2600 funcionava, abrindo caminho para projetos mais audaciosos... Então, muita coisa interessante será feita aqui.
Estarei dividindo toda esta tarefa em passos menores, para que a explicação fique bem detalhada. Espero que esta seja uma ótima série para quem nos acompanha.

terça-feira, 19 de março de 2013

Bibliotecas no KiCad: criando seus componentes

Índice da série
1- Apresentando o KiCad e o EESchema.
2- Desenhando os primeiros circuitos no Kicad
3- Bibliotecas no KiCad: criando seus componentes
4- Transportando seus componentes para o Pcbnew
5- Conhecendo o Pcbnew
6- Carregando e organizando seus componentes no Pcbnew
7- Roteando manualmente suas placas no Pcbnew
8- Dando acabamento em sua placa no Pcbnew
9- KiCad: preparando seu desenho para produção

Em nosso terceiro post da série sobre o KiCad, iremos tratar das bibliotecas de componentes e principalmente como criar seu próprio componente no KiCad. No primeiro post da série, nós descrevemos todos os botões do EESchema, o editor de esquemáticos do KiCad. Depois disto, fizemos um post sobre o básico para se desenhar um esquemático.
Como o foco do nosso blog é eletrônica e games, estaremos desenvolvendo no tutorial do KiCad, o esquemático do console Atari 2600. Escolhemos este console por alguns motivos básicos: ter um circuito mais simples do que outros consoles; por ser mais antigo, não teremos problemas com patentes; poderemos futuramente evoluir sua documentação, criando alguns projetos mais interessantes.
Bem, já fizemos uma apresentação sobre este console. Nela comentamos sobre dois circuitos integrados que provavelmente não teremos no KiCad. Assim, para a criação de componentes, vamos desenvolver nosso tutorial desenvolvendo um destes componentes. Baseando-se portanto no datasheet do CI R6532, nosso o circuito conhecido como TIA (Television Interface Adaptor), iremos criar nosso componente.

O editor de bibliotecas

Para criarmos nosso componente, devemos então ir no editor de Bibliotecas. Para isto, devemos clicar no botão 17 da barra superior, já documentado em nosso primeiro post da série. Isto abrirá uma nova janela, onde poderemos criar nossos componentes.


Mas do que um componente é composto? O componente possui em primeiro lugar, uma representação gráfica. Além disto, ele também é composto de pinos, que no KiCad são definidos por função (entrada, saída, clock...). Finalmente, componentes são compostos também por campos de textos.
Assim, a construção de componentes envolve a definição de suas propriedades gerais, como se o componente possui múltiplos elementos, quantos elementos são... Envolve também desenhá-lo, adicionar os pinos, adicionar campos de texto desejados para o componente, documentar este componente e salvá-lo em uma biblioteca específica.
O editor de bibliotecas possui uma barra de menu superior, que pode ser vista abaixo:


A função destes botões é:
1- Salva a biblioteca atual para disco: com este botão você criará sua própria biblioteca a partir de um componente criado sem bibliotecas.
2- Selecionar biblioteca de trabalho: com este botão você abre uma biblioteca existente.
3- Deletar componente da biblioteca atual: ao abrir um componente de uma biblioteca, você poderá apagá-lo através deste botão.
4- Criar novo componente: permite a criação de componentes.
5- Carregar componente da biblioteca atual: com este botão você poderá carregar componentes previamente criados, para a edição.
6- Criar novo componente a partir do atual: este botão faz uma cópia do componente atual para edição.
7- Sobrepor componente atual: este botão salva as atualizações na biblioteca selecionada.
8- Importar componente: com este botão, você busca o componente de outra biblioteca e salva na atual.
9- Exportar componente: com este botão, você salva o componente atual em outra biblioteca (permite a criação de nova biblioteca).
10- Salvar componente atual em biblioteca nova: o botão cria uma nova biblioteca para salvar o componente atual.
11 e 12- Comandos de refazer e desfazer a última ação.
13- Editar propriedades do componente: as várias propriedades do componente podem ser editadas através deste botão.
14- Adicionar, remover campos: com este botão você poderá definir os campos (RefDes, Valor) que serão exibidos no componente.
15- Verificação: verifica se há pinos duplicados ou se estão fora do grid.
16 e 17- Ferramentas de zoom.
18- Redesenhar: faz um refresh na tela.
19- Ajustar folha do esquema à tela: define o zoom de forma que o componente esteja todo na tela.
20- Mostrar como componente De Morgan normal.
21- Mostrar como componente De Morgan convertido.
22- Editar arquivo de documentação: aqui você visualiza o arquivo de documentação definido para o componente em suas propriedades.
23- Elementos: exibe os elementos que fazem parte de um componente, quando este possui mais de um elemento. Por exemplo, o CI 74LS00 é composto de 4 portas NAND. Cada uma delas é acessada através deste menu drop-down.
24- Este botão parece reunir todos os componentes parecidos com o atual em um menu drop-down.
25- Editar pinos por parte ou estilo de corpo.

É necessário sempre selecionar a biblioteca onde você está trabalhando. Isto é feito pelo botão 2 desta barra superior. Clicando-se nele, teremos uma lista das bibliotecas disponíveis. No nosso caso, queremos criar um novo componente, e para melhor organização, iremos criar uma biblioteca para os componentes do Atari.
Assim, primeiramente vamos clicar no botão 4 da barra acima, que cria um novo componente, abrindo a caixa de diálogo propriedades do componente, que podemos ver abaixo:


Nas opções gerais, devemos colocar o Nome do componente, que é obrigatório para a criação de nosso componente. Estaremos aqui colocando o nome R6532. O designador de referência é a letra usada nos RefDes de nossos componentes. Deixaremos U, que é o padrão adotado para circuitos integrados. Nosso CI terá apenas uma parte, mas é importante observar que CIs que possuem mais de uma parte, como portas lógicas, deverão ter este número especificado aqui.
Não vamos criar componente com estilo de corpo alternativo, não vamos criar símbolo de alimentação e não vamos especificar como partes travadas. Nas configurações de pinos deixaremos apenas mostrar nome de pino. Clicando-se em OK, poderemos passar para a etapa de criação de componentes.
No centro do desenho, temos já duas propriedades posicionadas: o nome do componente e o RefDes deste componente. Antes de continuarmos, vamos salvar nossa biblioteca. É no botão 10 da barra superior que pedimos para o Editor de Bibliotecas para que você salve o componente em uma nova biblioteca. Uma janela de salvar será aberta, e aqui nós colocaremos o nome atari.lib. O KiCad avisará que você só poderá utilizar a biblioteca se você a adicionar ao EESchema. Assim, no editor de bibliotecas mesmo, no menu Preferências>>Biblioteca, você poderá adicionar esta biblioteca. Ali, você precisa especificar o caminho para a biblioteca que você acabou de criar. Especificado o caminho, você poderá adicionar a biblioteca com o botão Adicionar que está ao lado da lista de bibliotecas. Agora estamos preparados para continuar a desenhar nosso componente.
Para isto, iremos usar agora alguns botões da barra lateral direita, que apresentamos aqui:


As funções destes botões são:
1- Desativar ferramenta atual. Selecione este botão para desativar qualquer ferramenta selecionada nesta barra lateral.
2- Adicionar pinos.
3- Adicionar textos.
4- Adicionar retângulos.
5- Adicionar círculos.
6- Adicionar arcos.
7- Adicionar linhas e polígonos.
8- Mover a âncora do componente.
9- Importar desenhos existentes.
10- Exportar desenho atual.
11- Apagar elementos.

Iremos começar nosso desenho com os pinos, para que tenhamos uma ideia do tamanho de nosso componente. Para inserir um pino, iremos clicar no botão 2 desta barra lateral direita, abrindo a caixa de diálogo Propriedades do pino:


Estaremos colocando estas propriedades para os pinos. Como o pino 1, segundo o datasheet do componente, é um pino de alimentação, definimos o tipo elétrico como sendo Entrada de Alimentação. Para os pinos de endereçamento, como os pinos A0 a A6, definiremos como Entrada. Os pinos PA0 a PA7, PB0 a PB7 e D0 a D7 são entradas e saídas. O pino de IRQ é de saída, e para que o seu nome apareça com o traço em cima, do mesmo jeito que aparece no datasheet, você deverá colocar o carácter '~' antes do nome. Os pinos RES, RS, CS1, CS2, RW e PHY2 são todos de entrada. Lembre-se de adicionar sempre o número do pino, que pode ser alfanumérico, já que em FPGAs, os "números" de pinos também possuem letras. É muito importante definir corretamente os pinos, para que a verificação de erros do KiCad funcione corretamente.
Assim que colocarmos os pinos e os organizarmos, nós podemos desenhar o "corpo" do circuito integrado. Para isto, utilizaremos a ferramenta de desenho de retângulos, que é o botão 4 da barra lateral direita. Clique no botão, clique no primeiro ponto do retângulo, mova o mouse para o segundo ponto e clique novamente. Pronto, temos nosso mais novo componente. Para terminar, vamos mover a âncora para o primeiro pino. Clique no botão 8 da barra lateral direita e clique no círculo do pino VSS. As duas linhas azuis finas que existem no desenho vão se mover para lá. Isto indica que quando você for inserir um componente, este será o ponto que você arrastará o componente.


Concluindo

Assim, terminamos nosso componente. Podemos voltar ao EESchema e usar ele à vontade. Lembre-se que você deverá sempre incluir sua nova biblioteca sempre que desejar usar seus componentes em um projeto.

sábado, 26 de junho de 2010

Desvendando o Atari 2600 - parte 1

Para os amantes dos jogos de videogame clássico, o Atari 2600 é uma peça muito importante. Não é para menos: este aparelho popularizou os jogos de videogames, bem como também causou uma repulsa tão grande por este tipo de entertenimento. É verdade que na época do lançamento, em 1977, eu não havia nascido ainda. Mas o Brasil manteve o uso deste aparelho mesmo quando em 1983, houve o chamado video game crash, por isto tive a oportunidade de possuir um.

Na época de seu lançamento, a Atari já fazia sucesso com o primeiro arcade desenvolvido: Pong. Este jogo fazia tanto sucesso, que milhares de clones deste jogo surgiram para tentar ganhar um pouco com o sucesso da Atari. O seu novo console obviamente traria grandes novidades para o mundo do entretenimento eletrônico, que ainda era um bebê: seu Atari 2600 já empregava um processador integrado da família 6502, ao contrário dos telejogos disponíveis no mercado, que empregavam lógica discreta para esta tarefa. Além disto, os jogos não vinham mais gravados no próprio aparelho, mas eram disponibilizados em cartuchos que, conectados ao console, possibilitavam ao usuário comprar quais jogos quisesse, sem que ele precisasse comprar um novo aparelho.

Se tudo desse certo, este Atari seria o primeiro console usando processador integrado. No entanto, a Fairchild Semiconductor se adiantou nesta empreitada, lançando o Video Entertainment System em agosto de 1976, mais tarde conhecido como Fairchild Channel F. Isto fez com que o projeto fosse agilizado, já que não era interessante para a poderosa Atari ser uma fabricante de clones de aparelho. Como as vendas de Pong estavam diminuindo, a Atari não tinha fundos suficientes para isto. Então neste mesmo ano, Nolan Bushnell vende a Atari para a Warner por 28 milhões de dólares, com a promessa que o Atari 2600 fosse lançado o mais rápido possível.

Assim, em oposição ao nome do console de seu concorrente, o Atari foi lançado com o nome de Video Computer System (abreviado como VCS) em 1977, com o custo de projeto de cerca de 100 milhões de dólares. Este aparelho fez muito sucesso desde então, até hoje possuindo fãs espalhados por todo o mundo. Seu fim se deu à crescente má qualidade de jogos lançados para este aparelho, sendo que os dois principais vilões nesta história são os jogos E.T., o extraterrestre, e, pasmem, Pacman (Isto se deve ao fato de que a versão de Pacman para o Atari 2600 não chegava nem perto do original, no arcade. Isto deixou muitos compradores insatisfeitos).

Portanto, de forma merecida, vamos dar início à nossa série de descrições técnicas de hardwares de videogames com este precursor dos games.

Descrição técnica

O hardware do Atari 2600 não é muito complexo, em vista dos aparelhos disponíveis hoje.

  • CPU: 1.19 MHz MOS Technology 6507
  • Processador de áudio e vídeo: TIA
    • 160 x ~192 pixel
    • 128 cores (128 na tela. Máximo de 4 por linha sem recursos de programação)
    • 2 canais de som mono. 1 de onda quadrada e um de ruído branco.
  • RAM incluída em um chip de tecnologia MOS chamado RIOT (RAM I/O-Timer): 128 bytes, sendo que mais memória RAM poderia ser adicionada nos cartuchos
  • ROM (memória de um cartucho): capacidade máxima de 4 kb (usando chaveamento de banco de memórias poderia chegar a 32 kb)
  • Entrada (controlada pelo chip MOS RIOT):
    • Dois conectores DE-9 sem parafusos para a entrada de joystick, que se tornou o padrão para joysticks desde então.
    • Seis botões na versão original: Power on/off, sinal para a TV (Preto e branco ou Colorido), Dificuldade para cada jogador, Select, e Reset. Os jogos poderiam atribuir outras funções para estes botões (exceto para o botão Power on/off). Em versões posteriores as chaves de dificuldade foram diminuídas e movidas para a parte traseira do console.
  • Saída: Imagem preto e branco ou colorida e sinal de som através de um conector RCA (NTSC, PAL ou SECAM, dependendo da região).
Fonte: http://en.wikipedia.org/wiki/Atari_2600_hardware

Como podemos ver, o processador usado pelo Atari é um 6507, que é uma versão mais barata do 6502, um chip de 28 pinos. Trata-se de um processador de 8 bits, trabalhando com um clock de 1.19MHz. Para isto o chip TIA da placa deve fazer a divisão do clock do Cristal por 3, já que este é um cristal de 3.579575MHz. Para quem gosta de ler Datasheets, abaixo há um link para o download do datasheet deste processador:

UM6507.shtml

O processador de áudio e vídeo, chamado de TIA (Television Interface Adaptor), é também outra parte interessante do sistema. Ele é o coração do Atari, e foi inclusive apelidado de Stella. Este chip é um chip desenvolvido sobre encomenda (ASIC), com o propósito de gerar gráficos e sons na televisão. Ele era capaz de desenhar uma linha por vez, já que o chip não possuía memória RAM de vídeo (esta era muito cara na época).

Além destes, havia o chip 6532, que reunia em um só chip, um timer, memória RAM e portas de entrada e saída. O datasheet deste componente se encontra no link abaixo:

R6532_datasheet.pdf

O joystick do Atari consistia de 4 botões direcionais e um botão de tiro. Basicamente o conector do joystick reservava um fio comum juntamente com um retorno para cada um destes botões.

Tenho um Atari 2600, que precisei abrir para trocar o conector do joystick. Aproveitei então a oportunidade para tirar uma foto do lado dos componentes para que todos possam ter uma idéia de como ela é. Esta placa é de um Atari da Polyvox, que fabricou o console aqui no Brasil:


Conclusão da primeira parte

Temos aqui portanto uma visão geral do hardware do Atari 2600. Vamos investigar mais a fundo cada parte deste hardware, tentando ajudar aqueles que gostam de consoles antigos a entender melhor seu aparelho e quem sabe até auxiliar na difícil tarefa de repará-lo.

Você também poderá gostar de