Este é meu blog sobre eletrônica e duas paixões minhas que estão ligadas à eletrônica: jogos eletrônicos e ferreomodelismo. Não sou um expert em nenhum dos três, por isto o que tenho aqui é o que estou aprendendo.
sábado, 31 de outubro de 2015
Microcontrolador tolerante a radiação espacial é lançado pela Atmel
E provavelmente por isto a Atmel resolveu lançar uma linha de microcontroladores com estas características: o ATmegaS128. A Atmel é uma das empresas qualificadas pela ESCC, e isto garante um ponto positivo para esta nova linha de microcontroladores.
A Atmel garante que seu microcontrolador é capaz de suportar uma dose de ionização de 30 Krad (equivalente a 300 Gy no sistema internacional, ou seja, 300 Joules por quilo). Fora isto, o microcontrolador é compatível pino a pino com outros microcontroladores da Atmel, podendo ser programado através das ferramentas já disponibilizadas pela empresa. Com isto, a Atmel espera baratear projetos aero-espaciais.
sexta-feira, 15 de fevereiro de 2013
Von Neumann X Harvard
Harvard Mark-I, primeiro computador a usar a arquitetura Harvard. |
A primeira arquitetura que devemos falar é sobre a arquitetura Von Neumann1, que recebeu este nome de seu criador, o matemático e pioneiro cientista da computação, John von Neumann. Ele teria feito um artigo intitulado First Draft of a Report on the EDVAC2, onde ele descrevia uma máquina que, entre outras coisas, descrevia uma memória onde tanto dados quanto instruções eram armazenados. Esta se tornou a característica principal da arquitetura Von Neumann. Ou seja, nesta arquitetura, dados e instruções (código) são armazenados na mesma memória, pois há um compartilhamento do mesmo barramento. Isto permitia que alguns programas se atualizassem, por exemplo. No entanto, por compartilhar o mesmo barramento, uma instrução não poderia ser buscada na memória ao mesmo tempo que um dado, o que reduz o throughput (velocidade de transferência de dados) entre CPU e memória. Isto limita seriamente a velocidade de processamento quando a CPU precisa realizar um processamento baixo em grande quantidade de dados. Este problema acabou sendo conhecido como o gargalo de Von Neumann (Von Neumann bottleneck).
Em contrapartida, a arquitetura Harvard3 possui dois barramentos, um para dados e outro para instruções. Há várias vantagens nesta arquitetura e por isto ela é preferida em nossos dias. Em primeiro lugar, por separar dados de instruções, o problema do gargalo de Von Neumann é evitado. Não só isto, mas as memórias de dados e instruções podem ser de tipos diferentes (Flash, RAM), ter tamanhos diferentes (8, 16, 32 bits)... Uma limitação, no entanto, é que esta arquitetura não permite que o programa se atualize, ou que um programa seja executado a partir da memória de dados.
Embora tenhamos estas duas definições, na prática, o que temos hoje é uma variação de cada uma destas arquiteturas para contornar os problemas apresentados. Por exemplo, hoje se usa mais a arquitetura Harvard Modificada, que permite o acesso à memória de instruções como se fosse memória de dados. Aqui ela ainda se diferencia da arquitetura Von Neumann por fornecer caminhos distintos no acesso a estas memórias.
Vamos então agora dar uma olhada nos diagramas em bloco de alguns microcontroladores de cada arquitetura. O primeiro é o microcontrolador PIC18F45504, que apresenta uma arquitetura Harvard. Observe que há um barramento de dados e outro de instruções:
Não são todos os blocos que acessam o barramento de instruções, e não é todos os blocos que acessam o barramento de dados. Agora compare com o microcontrolador MSP430F1695 da Texas, definido como seguindo a arquitetura Von Neumann6:
Observe que apesar de possuir dois barramentos, um de dados (MDB, memory data bus) e outro de endereços (MAB, memory address bus), todos os blocos possuem acesso a estes dois barramentos. Vemos portanto uma diferença na construção dos dois microcontroladores.
Na prática, a questão envolve velocidade de processamento. O programador provavelmente não verá diferenças entre as duas arquiteturas, mas há um caso onde esta diferença pode ser percebida: no acesso à memória de instruções. O programador que pretenda fazer atualização de seu firmware à distância, por exemplo, terá que buscar um microcontrolador cuja arquitetura seja ou Von Neumann ou Harvard Modificada. No caso de uma arquitetura Harvard Modificada, ele ainda terá que checar quais as formas apresentadas pelo microcontrolador para o acesso à memória de instruções.
Referências
1. Arquitetura Von Neumann na Wikipedia: http://en.wikipedia.org/wiki/Von_Neumann_architecture2. Artigo original pode ser lido em http://qss.stanford.edu/~godfrey/vonNeumann/vnedvac.pdf.
3. Arquitetura Harvard: http://en.wikipedia.org/wiki/Harvard_architecture
4. Datasheet PIC18F4550: http://ww1.microchip.com/downloads/en/devicedoc/39632e.pdf 5. Datasheet MSP430F169: http://www.ti.com/lit/ds/symlink/msp430f169.pdf
6. Wiki Texas: http://en.wikibooks.org/wiki/Embedded_Systems/Texas_Instruments_MSP430_microcontrollers
quinta-feira, 14 de julho de 2011
Worms para sistemas embarcados.
Trata-se do worm stuxnet, um worm bem sofisticado: ele ataca CLP's de sistemas de controle industriais, tentando roubar informações sobre a planta. Os alvos deste worm são indústrias de óleo, gasolina, energia elétrica ou nuclear. Ano passado a Fox news noticiou a invasão de usinas nucleares no Irã com este worm.
O worm, depois de se instalar no sistema, é capaz de criar uma conexão com um servidor remoto, para onde ele envia todas as informações coletadas e pode receber comandos. Quem precisa de James Bond hoje em dia?
Nagaraj faz uma interessante reflexão sobre a existência deste worm. Muitas vezes os desenvolvedores de sistemas embarcados não se preocupam muito com segurança. E a cada dia mais sistemas embarcados estão trabalhando conectados com a Internet. É uma boa hora para começarmos a nos preocupar com este tipo de ameaça, se nós não queremos criar dores de cabeça para nossos clientes.
segunda-feira, 27 de junho de 2011
Falando um pouco sobre o Arduino
Minha busca por mais informações na verdade só iniciaram quando neste mês, eu comercializei uma placa de Arduino Uno pelo Mercado Livre. Há uma boa variedade de vendedores ali, e uma boa variedade de modelos sendo vendidos. Optei pela placa de Arduino Uno, principalmente pelo preço. Com o mesmo vendedor adquiri também uma placa de Ethernet. Não demorou muito para chegar meu pedido, e logo iniciei meus testes com este módulo.
Muito bem então, o que seria o Arduino? Para quem ainda não ouviu falar desta plataforma, o Arduino é simplesmente uma plataforma de desenvolvimento de hardware gratuito. A intenção dos idealizadores desta plataforma é facilitar ao máximo este desenvolvimento, o que na minha opinião é algo realmente sensacional. Na minha época de estudante de eletrônica, tínhamos um kit de desenvolvimento para os microcontroladores 8051, kit este desenvolvido por professores da Escola Técnica. Hoje em dia, o Arduino funciona muito bem como kit de aprendizado, uma vez que é de preço bem reduzido e de fácil aprendizado.
O software de desenvolvimento é encontrado gratuitamente no site do Arduino. A linguagem de programação é baseada em C++, e os programas consistem em um arquivo apenas, não sendo necessário a criação de projetos. O arquivo tem que ter basicamente duas funções, como se segue:
void setup() { // ponha seu codigo de setup aqui, para rodar uma vez. } void loop() { // ponha seu codigo principal aqui, para executar em loop. }A primeira função, setup, faz inicialização de variáveis. Ela é executada quando o programa inicia. A segunda função é executada sempre, como chamada em um loop. É nesta segunda função que o programador irá inserir chamada a funções e outras coisas necessárias ao projeto.
O Arduino funciona em cima de bibliotecas disponibilizadas pelos desenvolvedores de hardware. Cada placa que é encaixada em cima do módulo do Arduino se chama Shield. Eu por exemplo comprei um Shield Ethernet, e o desenvolvedor deste Shield criou também bibliotecas para o uso do Shield. Assim, eu posso ter um servidor web escrevendo apenas 30 linhas de código!
Como amante da eletrônica, vejo este projeto com bons olhos. Este projeto facilita o aprendizado, além de compartilhar com um número maior de pessoas o maravilhoso mundo da eletrônica. Quem não quer ter trabalho, pode comprar esta placa pronta. Mas quem estiver a fim de gastar menos, todos os esquemáticos estão disponíveis para download. Todas as bibliotecas usadas no Arduino podem ser encontradas na pasta do Arduino, e são escritas em C. Se você deseja portanto transportar o projeto que você iniciou para uma placa própria, não encontrará problemas.
Aos novos desenvolvedores recomendo, portanto, este projeto. Parabéns aos idealizadores.
terça-feira, 17 de maio de 2011
Sim! Nós fabricamos semicondutores.
A CEITEC é uma empresa estatal, e sua primeira fábrica está localizada em Porto Alegre. Os profissionais da área só podem ver esta iniciativa com bons olhos, afinal, o crescimento desta estatal pode significar um crescimento na demanda por profissionais nesta área. Se o governo está disposto a investir na área de eletrônica, nós só temos a ganhar.
A empresa tem se dedicado a desenvolver produtos na área de RFID. Para tanto, recentemente, criaram o primeiro laboratório de RFID do Brasil. Seus produtos variam de identificação para gado até etiquetas para veículos.
A IT Web foi fazer uma visita ao centro de estudos de RFID. O vídeo está abaixo.
Muito legal a iniciativa, que, aliada à fabricação de iPads no Brasil (com previsão de contratação de mão-de-obra local), além da "cidade inteligente", poderá aumentar muito a demanda por profissionais qualificados. Vamos continuar observando de perto o desenvolvimento desta empresa, e torcendo para tudo dar certo.
Página da CEITEC: http://www.ceitec-sa.com
sexta-feira, 25 de março de 2011
Como funcionam as pistolas para jogos de tiro?
![]() |
Pistola Zapper |
Não demorei muito para achar. O site HowStuffWorks fez um bom trabalho de tanto explicar o funcionamento como disponibilizar a patente da invenção da Nintendo, a pistola Zapper. Realmente era algo muito simples de se fazer.
A pistola em si não emite nenhum tipo de sinal para a televisão. Na verdade, como vi em outro site, é a televisão que "dispara" algo na pistola: luz. É importante observar que estas pistolas funcionam em televisões de tubo de raios catódicos. O LCD não ajuda muito neste processo.
Em televisores antigos, havia um feixe de elétrons que era disparado em cada ponto da tela, para que este ponto fosse iluminado. Sendo a tela dividida em linhas e colunas, este feixe iniciaria com a linha de cima e terminaria pela linha de baixo.
A luz emitida por este feixe deveria então ser detectada por um fotodiodo, presente na ponta de nossa pistola. Mas, poderíamos nos perguntar, o fotodiodo detecta qualquer tipo de luminosidade, então como o NES sabia que ele estava apontando para o alvo, e não para qualquer outro lugar na tela?
Aí é que vem o pequeno truque... Quando a pessoa aperta o gatilho, o console verifica se há presença de luz no fotodiodo. Se houver, então a pistola está apontada para o televisor. Então o console rapidamente pinta toda tela de preto, mas deixa apenas o alvo branco. Isto é muito rápido, e nossos olhos não percebem muito bem (é o tempo de uma varredura completa na tela). Mas é o suficiente para que o fotodiodo detecte o sinal. Assim, se ele detectar luz, significa que o usuário estava apontando para o alvo. Se não detectou, ele não estava apontando.
Tudo isto era feita no jogo que era muito conhecido naquela época, o Duck Hunt. Eu não tinha o aparelho, mas tive a oportunidade de jogá-lo na casa de meu primo, que possui um aparelho que roda jogos do Nintendo 8 bits. É um jogo muito legal, e talvez nossos emuladores não consigam ainda nos dar o mesmo tipo de diversão que este jogo podia nos proporcionar no passado.
Parece que esta técnica usada pelo Nintendo 8 bits não é a mesma de outros fabricantes. Também, com a tecnologia patenteada, eles teriam que fazer algo diferente. Parece então que alguns fabricantes trabalham com os tempos de varredura. Quando o usuário aperta o gatilho, o console envia um sinal para o monitor preencher a tela com pontos brancos. Medindo-se o tempo gasto para que a pistola detecte luz, o console poderá saber para onde o jogador está apontando a pistola.
Bem, mas minha pesquisa não parou por aí... Resolvido a buscar algo mais aprofundado, fui checar se alguém possuía o esquemático da pistola Zapper. Eu mesmo possuo uma, e vi que é muito simples. Para minha surpresa, não só encontrei um esquemático, mas também encontrei um projeto para adaptar esta pistola aos nossos monitores de LCD, para podermos usá-la como mouse, ou como controle para emuladores. O esquemático eu coloco aqui, para que todos vejam como era simples seu funcionamento:
![]() |
Esquemático da pistola Zapper |
Fico feliz de descobrir todas estas coisas. Como entusiasta dos video-games e da eletrônica, é sempre interessante ver como alguns problemas eram resolvidos pelos engenheiros daquela época.
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).
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.shtmlO 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.pdfO 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.