Mês: janeiro 2015

FRDM-KL25Z – alternativas ao PE e outras opções caras

Um problema sério da Freescale é que para desenvolver é necessário debuggers caros da PE ou Segger. As FRDM pareciam uma mudança na postura da Freescale, mas o OpenSDA não foi tão “Open” assim. E foi só marketing. As FRDM de fábrica só programam o chip da placa e nenhum outro, mesmo que sejam o mesmo. Isso porque cada Kinetis tem um ID (olha o número da besta ai) único e assim o chip debugger fica amarrado ao chip original. Esses malditos IDs…

Mas logo opções baratas apareceram. As duas atualmente são o USBDM e CMSIS-DAP.

USBDM

Este nasceu lá traz como uma opção ao BDM para os HCS e Coldfires. São várias opções de hardware que podem ser feitos em casa – o dificíl é conseguir os JS16 – e transformados em um gravador BDM por preço baixo. Em seguida acrescentaram o SWD para permitir também o uso nos novos processadores ARM Kinetis. E em pouco tempo viram que as FRDM continham tudo que precisávamos para poder gravar um ARM bastava um firmware que não ficasse amarrado ao ID da placa.

Para poder usufruir é fácil.

  •  Faça o download do USBDM mais novo e procure pelos arquivos normalmente nas pastas FlashImages\MKxx:
  • USBDM_OpenSDAv1.sx
  • USBDM_OpenSDAv1_Unique_ID.sx
  • USBDM_OpenSDAv2_0.bin
  • USBDM_OpenSDAv2_0_Unique_ID.bin
  • USBDM_OpenSDAv2_1.bin
  • USBDM_OpenSDAv2_1_Unique_ID.bin
  • Desligue a placa e com o botão apertado (o unico nela) pluge o USB e o LED verde começara a piscar e um driver irá aparecer em meu computador com nome “bootloader”.
  • Copie o USBM_OpenSDAv1.sx ou outros para outras FRDM mais novas. Espere alguns segundo e pronto.
  • Desligue e ligue novamente e você estará livre das mãos da PE.
  • Para funcionar ainda é necessário instalar os drivers. Todos os pacotes podem ser baixados no SourceForge:

Link: USBDM

Link: Drivers

Eu como usuário do ArchLinux tive uma derrota. As dependências WX dos softwares GUI são para um versão diferente da compilada pelo Arch. Mesmo um link não deu certo. Mas o drive (na verdade as regras udev) funcionou corretamente.

CMSIS-DAP

Esta opção funciona através do OpenOCD e um firmware da Keil (fonte: http://karibe.co.ke/)

  • Faça download do Kickstart da Freescale e localize CMSIS_DAP_OpenSDA.s19 ou parecido.
  • Coloque a placa em modo bootloader e copie este arquivo para o driver do bootloader.
  • Ao desligar e ligar novamente já muda o dispositivo USB para o CMSIS.

O OpenOCD pode ser usado com esta placa no Kinetis Visual Studio, ou mesmo um ambiente próprio configurado no Eclipse ou makefiles. Estou usando o OpenOCD com o Code::Blocks para debug de STM32.

 

Docker – roubando a cena

docker-logo-loggedout
Docker ultimamente é o nome da vez. Provavelmente o nome de 2015.

Não vou me aprofundar em explicar o que ele é então basicamente o Docker é um daemon no Linux que permite aplicações dentro de um container (entenda Sandy Box) protegido dos demais containers e obviamente do sistema hospedeiro.

No Arch Linux para instalar ele use o pacman

pacman -S docker

e logo sem seguida habilite o daemon

sudo systemctl enable docker

e inicie-o

sudo systemctl start docker

Descobrindo o que é por exemplos:

Imagine que você queira rodar uma imagem Ubuntu no console do Arch Linux você apelaria para o VirtualBox. O docker evita todo este overhead e facilita a instalação veja como é fácil:

[fabio@15:31 ~]$ docker run -t -i ubuntu:12.04 /bin/bash


Unable to find image 'ubuntu:12.04' locally
ubuntu:12.04: The image you are pulling has been verified

511136ea3c5a: Pull complete 
3e620b0cd0e1: Pull complete 
9cd5c1770233: Pull complete 
aa1f17efe798: Pull complete 
3e09053df658: Pull complete 
Status: Downloaded newer image for ubuntu:12.04

Neste comando pedimos ao docker recém instalado rodar uma imagem ubuntu no repositório de nome ‘ubuntu:12.04’.

Como é uma primeira instalação você provavelmente não terá a imagem em seu computador. Então ele irá automaticamente baixar o arquivo necessário e logo irá rodar o /bin/bash como passado na linha de comando.

Então a linha de comando do novo linux rodando (dentro do linux hospedeiro) será visto dessa forma:

root@a2babec10ee4:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin selinux srv sys tmp usr var
root@a2babec10ee4:/# ps
 PID TTY TIME CMD
 1 ? 00:00:00 bash
 11 ? 00:00:00 ps
root@a2babec10ee4:/# clear

Neste caso o root@a2babec10ee4 é nossa linha de comando e o a2babec10ee4 é o identificador do container. É um linux rodando! Não há segredo. Use, então, o Apt-get para instalar programas úteis como servidores, compiladores.

Para sair deste console use CTRL+P+Q. Ao sair o container é colocado em modo Stop.

Para voltar primeiro descubra novamente suas imagens (provavelmente você não anotou este código):

[fabio@17:11 ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a2babec10ee4 ubuntu:12.04 "/bin/bash" About an hour ago Up About an hour loving_darwin

Para voltar a rodar este container use:

 docker attach a2babec10ee4

Se você acha que eles devem usar alguma forma melhor de nomear estes containers estou com você.

Isso tudo parece o Screen não é mesmo? Mas é diferente. No screen você roda uma aplicação em outro console mas no mesmo sistema operacional com todos os privilégios e acessos do usuário. No Docker uma caixa protegida contém tudo que precisamos sem acesso externo mas somente dos recursos de hardware da máquina e aqui esta a sacada: das bibliotecas e binários do sistema operacional mas de forma protegida.

Line Length Match – Atraso de sinais

pcb-tracks

Impendância e clocks

Nas placas mães é comum vermos trilhas que não seguem direto ao ponto mas fazem zigue-zagues como na figura do post. Porque?

O objetivo destes zigue-zagues é o de evitar que dados que devem chegar em sincronismo não se atrasem por diferença de tamanhos. Para um simples projeto de até alguns Mhz essa não é uma preocupação, mas ao começar a subir a frequência os efeitos capacitivos das trilhas começam a atrasar em alguns nano segundos ou pico segundos o sinal e isso pode ser um problema.

Para distribuição de clock em uma placa entre vários componentes é importante que o clock chegue ao mesmo tempo em todos os circuitos assim um componente distante deve receber o mesmo clock do componente perto do gerador. Para este que esta perto uma trilha com o mesmo tamanho do que esta longe é necessário e para isso ‘gastamos’ trilhas fazendo estes zigue-zagues aumentando seu percurso.

Não somente clock devem ter esse comportamento, barramentos de dados de memórias e periféricos rápidos também que dependem que os dados cheguem juntos ao seu destino.

Outra função é gerar uma induntância na trilha e filtrar algum espúrio de alta frequência que possa atrapalhar o sinal original.

Pequenas quantidades de PCB profissional por preço justo?

Adaptador VGA+PS2 para arduino, uC e CPUs

PS2 + VGA da WaveShare

PS2+VGA da WaveShare

Comprei este adaptador da WaveShare VGA+PS2 para um futuro projeto de computador utilizando o Z80 ou 68000 (ou ambos) ambos comprados no Ebay/Aliexpress.

Isto irá facilitar fazer um computador de ‘verdade’ sem a necessidade da comunicação Serial para ver o computador funcionando, nada contra, mas meu objetivo é de fato fazer um microcomputador nos moldes do MSX ou Amiga com teclado embutido e gabinete.

Como se pode ver no esquema abaixo (fornecido pelo próprio fabricante no site) cada linha RGB vem com 8 níveis de tensão o que juntando as três cores darão 512 cores. Entretanto há também conexão direta aos níveis RGB para posterior upgrade de cores. O fabricante já fornece um código exemplo para o EPM1270 em Verilog facilitando o teste. Nada impede seu uso no Arduino, Raspberry PI.

A tempos atrás fiz um projeto de jogo em um FPGA Altera simples em modo VGA e em poucas palavras um código para exibir no vídeo vai precisar de pulsos de sincronismo Vertical e Horizontal e entre estes pulsos vem os níveis seguidamente de cada linha de cor.

PS2+VGA

Se você estiver interessado em códigos Arduino para fazer funcionar este dois módulos segue os links:

PS2Keyboard

Arduino Basic VGA (Ino)

Aliexpress, Ebay, DX e outros para o hobby e projetos em eletrônica.

Vácuo e o renascimento do hobby

Tempos atrás o hobbista em eletrônica tinha a facilidade das revistas famosas e da Santa Efigênia. Hoje as revistas não apitam mais, a Santa Efigênia virou Made in China e houve um vácuo de 2000 para cá que junto ao sucesso das gadgets do Sr. Steve Jobs acabou matando de fato os ‘hackers’.

Mas veio o Arduino o Raspberry PI e tantos outros. Comprar um destes no Brasil é rasgar dinheiro. Logo percebemos que seria mais fácil fazer o impensável a tempos atrás: Importar diretamente e esperar que os correios entregue. Descobrimos que funciona! E uma indústria de kits se desenvolveu com o sucesso do Arduino. Renasceu o hobby em eletrônica.

Sites como DX logo deram destaque a toda a flora de kits e componentes em volta do Arduino. Os Brasileiros e o mundo descobriram que era mais barato ter a paciência oriental e comprar pela internet seus componentes e kits.

 Lucrativo

Comprar um Arduino no DX pode sair 500% mais barato que no Brasil. Para quem já tem o seu ou não gosta deste ‘kit para garotos” outras diversões e utilidades como CPLD e FPGAS são encontrados facilmente no DX.

Mas os comerciantes chineses logo descobriram o Ebay e o Aliexpress e começaram a colocar seus produtos para venda. Dessa forma não somente é possível encontrar a flora “Dev Boards” como também componentes específicos e alguns difíceis de se achar. Onde você compraria um Z180? Um MC68010? Na Farnell? Boa Sorte. Já pensou em comprar 5 Peças de CPLDs da Xilinx?

Diferenças entre DX, Ebay, Aliexpress

Enquanto o DX é uma empresa em si com seu próprio estoque e venda o Ebay e Aliexpress são apenas leilões ou anunciantes-intermediários de terceiros. Comprar no DX é seguro pois a empresa tem boa reputação, bom tratamento com perdas e por ser uma única empresa a solução é rápida e direta. É uma ótima empresa para quem nunca comprou em sites internacionais.
Arduino uno no dx.comArduino uno no dx.comArduino uno no dx.com

O Ebay e o Aliexpress são lugares ideais para garimpar componentes difíceis de se achar a preços mais baixos. Enquanto o Ebay tem comunidade maior espalhada pelo mundo o Aliexpress fica no domínio chinês. Assim no Ebay pode-se facilmente comprar um clone do Z80 na Russia ou um pacote de peças retiradas por algum reparador espalhado pelo mundo. O problema do Ebay é o Frete. Alguns lugares tem frete muito alto. Normalmente os paises de primeiro mundo como o próprio EUA tem frente de U$ 20,00 no mínimo. Isso limita muito o que comprar. Curiosamente os componentes de frete gratuitos são vindos da China o que nos leva ao Aliexpress. Este composto quase que exclusivamente pela comunidade Chinesa oferece na maioria de seus produtos fretes gratuitos (free shipping) ou muito baratos. Não é um lugar ideal para se comprar um componente obsoleto ou usado. Devido ter nascido de seu irmão Alibaba há a tendência no Aliexpress da compra somente por lote. Algo que no Ebay não é tão mandatório. A compra por lote pode ser ruim ou bom. As vezes os preços são ótimos mas o lote grande demais para nossos bolsos.

No Ebay você pode comprar um MC68030, umas memórias SIMM de 30 pinos e no Aliexpress um pacote de SDRAMs, de lógicas TTLs ou um Kit completo para montar um MSX e ainda fazer pequenas quantidades de uma placa PCB com 4 camadas. Tudo para montar um computador retrô profissional inclusive com a placa pcb própria envernizada, com silk screen e 4 camadas. Não é maravilhoso?

E o “Brazil” como fica?

O Brasil? O Brasil não tem fábrica de semicondutores, temos impostos altíssimos de produção, vendas e importação, um distribuidor no Brasil ou cobra caro, ou só vende barato para quem tem CNPJ. E assim aos poucos o conhecimento tão importante nesta época que é o da técnologia vai se apagando e tornando de fato este país em somente um país agricola e turistico. Por sorte ainda temos estes sites para continuarmos a manter um pouco vivo estes conhecimentos tão raros aqui. Não tenha vergonha de comprar lá fora. Pois daqui nada se aproveitará.
Porém eu tenho tido boas compras com o site soldafria os preços são bons. Não da para achar itens na moda como uC ou Cplds porém comprei muitas portas lógicas e cristais por lá.