quarta-feira, 30 de julho de 2008

[Iniciantes] Aula sobre resistores

Aula sobre resistores (Português Brasil)

Soldagem de SMDs

Mais uma vez posto aqui alguns vídeos sobre soldagem de SMDs ... só que desta vez com a estação de solda do primo-rico, sopro de ar-quente e pasta de solda... hehehe... vale a pena assistir se você está iniciando na montagem de SMDs.





segunda-feira, 28 de julho de 2008

Setando Direction Bits no Port 0 do R8C/25

Pois bem pessoal, estou eu aqui mais uma vez dividindo minhas horas de labuta em cima do R8C/25 com vocês. Hoje com uma dica importantíssima que economizará algumas horas em testes e consulta no manual do hardware.
Ao fazer o setup dos Direction Bits do Port 0 é necessário antes desproteger o mesmo. Mas porquê isso ocorre?
Existe um registro na SFR que chama-se Protect Register. Ele serve para proteger registros importantes para não ser facilmente sobrescritos quando o programa pode estar fora de controle. Os registros protegidos são:

• PRC0 bit: CM0, CM1, OCD, FRA0, FRA1 and FRA2 registers
• PRC1 bit: PM0 and PM1 registers
• PRC2 bit: PD0 register (olha o nosso vilão aqui!)
• PRC3 bit: VCA2, VW0C, VW1C and VW2C registers

E agora um esquema desta entrada na SFR:

Mas vamos ver um exemplo disto funcionando...

Primeiro um exemplo do que vamos fazer... e como me deparei com o problema.
A tarefa é simples e aparentemente trivial, e o é... simplesmente quero setar um SFR bit a bit e não o byte todo... olhem o exemplo fazendo isso no port 1...

Em seguida o exemplo original como o HEW monta no ambiente, alterando o prc2 para 1 e em seguida alterando o byte todo...


Executando o código acima, vamos abrir o View -> CPU -> IOs para acompanhar o que está sendo feito dos nossos registros (Valeu André por me lembrar desta ferramenta dentro do HEW!)


Notem que ao executar e chegar no break-point pd0 contém o valor 0x0F...

Agora vamos tentar fazer o mesmo só que bit a bit... notem que foi alterado somente o primeiro bit. Isso se deve ao fato que foi desprotegido o registro e após setarmos o primeiro bit, ele retornou ao estado protegino original. Portanto não executando conforme eu pretendia.


Pois bem, se a cada bit nós desligarmos o protect register do pd0, nós conseguiremos setar todos os bits conforme imaginamos.

Bom pessoal, é isso... notem que este aspecto somente ocorre com o pd0 e não com os outros registros deste SFR, conforme nota no quadro do SFR postado neste artigo...

PS: As informações deste post foram retiradas do Datasheet do R8C/24 e 25, página 96, Tópico 11.

Geração de Energia Sustentável


É pessoal... todos falam em preservas reservas naturais e melhorar nossa relação com nosso planeta, no entanto pouco fazemos para mudar realmente nosso impacto no meio ambiente. No entanto em Rock Port, no Missouri, uma cidade com 1300 habitantes resolveu revulcionar sua geração de energia e hoje usam energia 100 gerada pelo vento...
Quatro turbinas geram toda a energia necessária para suprir as necessidades da pequena cidade. Veja mais em http://www.sciencedaily.com/releases/2008/07/080715165441.htm.

5Vcc também é preservação ambiental!

domingo, 27 de julho de 2008

Cilindro de LEDs

Como todos sabem eu adoro brincar com LEDs e também gosto de postar o que aparece de interessante...
Saiu no BricoGeek este novo circuito que esse sujeito fez...

quarta-feira, 23 de julho de 2008

Dissecando o iPhone3G ...

Sim gente... dissecaram o coitadinho do celular...
Saiu no iTrixx desta semana um artigo com vídeo mostrando dois caras muito curiosos abrindo um iPhone 3G e comentando sobre suas descobertas...
O mais interessante é descobrir que a Apple continua desenvolvendo coisas simples e muito funcionais.. apesar de eu ODIAR touchscreen!
Vídeo muito legal ... e valioso também pelo fato de poupar o iPhone de muita gente que eu conheço e que com certeza iria desmontar o danadinho...



domingo, 20 de julho de 2008

Hackearam o SIM CARD do GSM ...

Sim pessoal é isso mesmo ... acabo de ver este link que saiu no Vimeo ... interessantíssimo!!! O pior que eu sempre disse que era possível fazer a quebra exatamente desta forma ... felizmente apareceram dois loucos com tempo sobrando pra isso ...hehehe ;-)


Citizen Engineer from citizen engineer on Vimeo.

Brincando com Bluetooth

Dia desses rolou na PICList uma thread falando sobre antenas Bluetooth ... e como muitos sabem eu estou trabalhando muito com Bluetooth, pelas razões mais malucas que se possa imaginar. Desde entrega de conteúdos para campanhas publicitárias (temos hoje a maior rede do Brasil de emissão de sinal Bluetooth www.yesmobilemedia.com.br) como também Bluetooth para indústria.
O amigo da PICList postou fotos de antenas Bluetooth falsificadas do dongle USB com chipset Blutonium BCM2035... pois bem como eu acabo comprando muito dessas anteninhas para minha aplicação de entrega de conteúdo, resolvi postar um pouco da minha experiência para que desavisados não caiam no golpe do baú na hora de comprar seu Dongle.
Vejam a foto a seguir:



Da esquerda para a direita:

Antenas 1 e 2 - Blutonium Verdadeiras - A antena é real e realmente funciona, não só para transmissão como para recepção também... a diferença de cobertura/sensibilidade é da ordem de 40 metros do ponto central em campo aberto.

Antena 3 - Blutonium Falsa - O Windows não reconhece naturalmente, não deixa de ser um bom Dongle, no entanto, não tem a mesma potência de cobertura que a original e também precisa de software de terceiros para funcionar porcamente (na minha opinião).

Antena 4 - Trendnet 104UB - Uma porrada! De longe a melhor antena que testei até agora... o problema é o preço... perto de 150 reais quando se consegue achar aqui no Brasil.

Dicas para não comprar gato por lebre:

1. Se possível tente sempre comprar pessoalmente para verificar o produto. Caixa mal acabada é sinal de antena falsificada ou produto de má qualidade.
2. Não se faça de "cliente bonzinho". Abra o pacote e plugue a antena numa máquina o mais possível parecida com a sua, no meu caso levo meu notebook e testo sem dó!
3. Antenas que precisam de driver utilizam implementação dos serviços básicos Bluetooth por software. Não que isso vá acabar com o processamento do seu computador, mas só isso já é sinal de que colocaram um chip barato na placa, portanto, não espere potência de uma Trendnet ou Belkin dessa anteninha!
4. Suspeite e risque da sua lista de opções as antenas muito baratas, certeza que é produto inferior. Exisem empresas vendendo antenas que dizem ser blutonium por R$15,00, principalmente no mercado livre... saia fora destes caras... certeza que é golpe. E o pior é que muitas vezes o vendedor nem sabe que está sendo golpista! Existem casos de vendedores que tecem longos discuros a respeito das vantagens de se comprar um Dongle com antena externa e que o mesmo é um produto que vale ouro. E quando você vai abrir a caixinha do Dongle, se depara com uma antena falsa. Geralmente nestes casos é só perguntar se precisa de CD para instalar... se precisar... pule fora... não é a Blutonium original. Para ter uma base de valores... o Dongle Bluetooth com antena externa com chipset da Blutonium custa por volta de R$50,00...
Bom... fora isso... eu andei fazendo uma gambiarras em algumas antenas lá na empresa pra mostrar pro pessoal que para a antena, não é necessário mais que o que vem originalmente no projeto.
Vejam isto:




Pluguei uma antena telescópica dessas de radinho a pilha pra poder testar em vários tamanhos da mesma... e... não surtiu nenhum efeito prático... conforme esperado... na verdade fiz isso pra mostrar pra um cliente que não fazia diferença ... sabe como é... além disso era uma desculpa pra gambiár um Donglezinho e postar pra vocês...

Agora falando de coisa séria... sérissima...
Estou produzindo meus próprios conectores Bluetooth para serem utilizados em Campo com o padrão SPP... e esta semana chegaram as PCIs de protótipo que mandei fazer.


Notem nas fotos seguintes... a gambi para o regulador de tensão (LD33) que eu utilizei...
Ao desenhar o mesmo do Eagle os pólos Vin e GND saíram invertidos... conclusão... Tabajarisse prá mais de metro... na primeira placa fiz uma gambi com fios mesmo...




Na segunda cologuei CI por baixo...acabou ficando mais bonitinho...


Essa daí é a mãozinha do Selo de Qualidade Tabajara (né Xandão?) ...

O módulo que vocês viram instalado é um Sena SD100... funciona muito bem para ambientes críticos. Em geral indústria etc... tem uma qualidade e estabilidade bem diferente dos Dongles USB que estamos acostumados... o que por si só justifica o projeto...

Abraços a todos...

segunda-feira, 14 de julho de 2008

Adaptador LQFP52 para Pinos DIN para ligar o R8C/25 no protoboard Versão 1.0

Pois bem pessoal...

Como os projetos aqui estão apertando e preciso prototipar rapidamente no protoboard... apresento a versão 1.0 do adaptador do Pereira LQFP52 para DIN ... Segue fotos...

A placa transferida com a Eca-Laser transferência...



O Layout no note...



Corroendo a placa...



Placa pronta para inserir o R8C/25 e os PIN-HEAD...



Placa pronta para a brincadeira...

Led POV Globe

Da série: "Coisas que eu adoraria ter tempo para fazer..." ...



Boa semana...

domingo, 13 de julho de 2008

IOs com R8C/25 e um breve comparativo com PIC

Pessoal, depois de mais uma semana daquelas... segue mais um pouco de teoria e um tiquinho de prática com o R8C/25 ...
Desta vez vamos falar um pouco sobre IOs no R8C/25 e comparar com seus "equivalentes" em PIC.
Para alguns pode ser um assunto fácil e até trivial, mas é interessante explicar bem para o pessoal que está iniciando em microcontroladores... afinal isso aqui é um blog para divulgar informações e incentivar o desenvolvimento tecnológico...
O mais interessante é que tudo que for escrito neste post poderá ser aplicado para outros MCUs como o PIC, AVR, etc...

Vamos lá!

Basicamente todo MCU(Microcontrolador) tem um conjunto de Entradas(Inputs) e Saídas(Outputs) ou IOs como são comumente chamados. É através destes IOs que os MCUs se comunicam com componentes externos, como sensores, displays de LCD, teclados, teclas, Leds, e toda sorte de dispositivos que podemos conectar num MCU dentro de um projeto.

A princípio todo pino de um MCU é um pino de IO com algumas excessões como por exemplo os pinos de alimentação (Terra e 5V), pinos do clock (cristal) e alguns pinos que eventualmente em alguns modelos funcionam somente como Entrada ou como Saída. Além é claro de casos onde existem pinos NC ou Not Connected.

A quantidade de IOs que cada chip tem depende basicamente do seu invólucro. Veja alguns exemplos abaixo:

PIC 16F628A - invólucro de 18 pinos sendo 16 IOs dependendo da configuração de clock que se escolhe.
PIC 16F877A - invólucro de 40 pinos sendo 33 IOs
R8C/25 - invólucro de 52 pinos sendo 41 pinos de IO, mais 3 de input only...

Para maiores informações relativos à serie R8C Tiny da Renesas veja gráfico abaixo e visite a página http://america.renesas.com/fmwk.jsp?cnt=r8ctiny_series_landing.jsp&fp=/products/mpumcu/m16c_family/r8c_tiny_series/.



Somente à título comparativo, o link equivalente da Microchip é http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1002&mid=10〈=en&pageId=74 para os MCUs de 8Bits.

Muitos pinos em vários MCUs podem ter funções especializadas de IOs, como por exemplo ADCs, saídas PWM, UART(serial), I2C, etc...

Todo pino de IO deve ser inicializado antes de ser utilizado, e configurado de acordo com a utilização que se deseja dentro do seu design. Essa inicialização serve para sinalizar a direção do bit, se entrada; ou saída; se é analógico, etc... Processo também conhecido como Bit Direction (em inglês).

Em geral, todo MCU tem uma área específica de memória onde contém informações de configuração de todos os pinos, definidos na inicialização e ao decorrer da execução do programa em sua memória. Esta área chama-se SFR, ou Special Function Registers.
SFR é nada mais que uma coleção de bits divididos ao longo de um trecho da memória do microcontrolador onde setamos bits contendo informações sobre comportamente de cada periférico dentro do MCU. Por exemplo se um determinado pino é de entrada ou saída, e se esta entrada por exemplo é analógica ou digital... a ainda mais... se for escolhida como entrada analógica, qual a profundidade de bits da conversão do ADC ou em outras palavras se esta entrada analógica será de 8 ou 10 bits de resolução. Dentre outras utilizações que tratam direta ou indiretamente IOs.

Em linguagem C fica um pouco mais fácil de acessar os SFRs e configurá-los.
Mais especificamente falando em CCSC nós temos funções pré-concebidas para configurar os SFRs, no caso dos PICs. No caso dos R8C Tiny, temos sempre gerado na criação do projeto um arquivo de inicialização contendo vetores para cada registro do SFR ou para conjuntos de Bits específicos.

Usando incialmente como exemplo vamos pegar um PORT do PIC... por exemplo o Port B de um 16F877:

Cada port representa 1 Byte de Dados ou 8 Bits... cada Bit em um port pode ter sua configuração de direção ... em outras palavras ...

1 Byte = 8 Bits = 0b00000000

Podemos colocar somente 4 bits alternadamente como saída e 4 como entrada.

0b01010101

Bits setados como 1 são marcados para input enquanto que os bits marcados como 0 são de output.

em CCSC ficaria algo assim:

set_tris_b(0b01010101);

Por outro lado usando o HEW e o compilador C para o R8C/25 temos a seguinte situação para a mesma configuração só que no Port 2:
No arquivo hwsetup.c, na função ConfigurePortPins() nós acrescentamos a seguinte linha:

pd2 = 0b11110000;

Como dito anteriormente o vetor pd2 aponta para o SFR correspondente no chip e sua definição estará em sfr_r825.h . Se você não o fez, então faça uma leitura deste arquivo e compare o mesmo com o Datasheet do chip. Verás que tudo corresponde.

Do mais... para setar o port inteiro podemos usar:

Em CCSC
#byte port_b=6
no header do programa ...
e port_b = 0xFF;
para setar tudo com nível alto na saída.

Em Renesas:
p2=0xFF;

Agora vamos ler os bits individualmente...

Em geral no CCSC tem os todos os pinos do microcontrolador que usamos declarados no arquivo de header do mesmo, por exemplo o PIC 16F877 temos todos os pinos identificados... vale a pena dar uma olhadinha no arquivo header do microcontrolador que você está utilizando.

PIN_D0 = 1; //para setar o pino D0 do 16F877 como nível alto.
PIN_D0 = 0; //para setar o pino D0 do 16F877 como nível baixo.

ou

if(PIN_D0) { // para testar se o pino D0 está em nível alto.
if(!PIN_D0) { // para testar se o pino D0 está em nível baixo.

Obviamente ao utilizarmos estes procedimentos devemos setar anteriormente o pino como entrada ou como saída, de acordo com o datasheet do mesmo.
Lembren-se que alguns pinos geralmente os pinos do port a são iniciados como entradas ou saídas analógicas nos PICs, portanto no processo de inicialização é necessário setar corretamente a configuração para utilizá-los de forma correta e evitar leituras/escritas incorretas.

Nos Renesas podemos identificar os pinos individualmente através da colocação do underline e do número do pino do port que queremos acessar. Mais uma vez vale a dica de dar uma olhada no arquivo header do dispositivo que você estiver utilizando para conferir os pinos disponíveis e possíveis recursos que podem ser utilizados, assim como literalmente conhecer o datasheet de cabo a rabo, lendo inclusive as observações. A maioria dos problemas que eu geralmente tenho quando quero fazer algo acontecem justamente nestas observações.

Por exemplo:

p2_0 = 1; // seta o pino zero do port 2 como nível alto
p2_0 = 0; // seta o pino zero do port 2 como nível baixo

analogamente podemos usar o mesmo método para ler o pino:

if(p2_0) { // para testar se o pino zero do port 2 está em nível alto.
if(!p2_0) { // para testar se o pino zero do port 2 está em nível baixo.

Bom pessoal é isso, espero ter esclarecido este ponto.

sexta-feira, 11 de julho de 2008

Logic Analyser usando arduino...

Como todos sabem, ATMega não é o meu forte... mas esse projeto eu achei tão legal que eu vou postar aqui...
O cara fez um Analisador Lógico com o Arduíno, usando um Buffer de 1000 Bytes em Barramento I2C... muito legal!



E o link para a página com o projeto não funciona... mas está lá no Youtube... que pena...

Nanotecnologia, Telefones Conceito e oLeds... um pouco sobre tecnologia...

Lendo um post em uma lista de discussão sobre Microcontroladores, sobre oLeds ou Leds Orgânicos resolvi ir um pouco mais além e colocar aqui algumas coisas legais também sobre nanotecnologia e também alguns vídeos da Nokia sobre telefones conceito baseados nestas duas tecnologias...

Seguem os links no YouTube...

Sobre o oLed da Sony...



E um vídeo apresentando os oLed da Universal Display Corporation



E aplicando tudo isso em produtos...

Fone Conceito da Nokia... draft...



Fone Conceito da Nokia modelo 888 ...



E o Nokia Aeon ... esse já existe e usa no lugar do LCD um oLed...

quarta-feira, 9 de julho de 2008

Teclado de bancada com Sucata de TK3000

Pois bem pessoal, eu estava precisando de um teclado de bancada mais parrudo do que os teclados de telefone... na verdade o problema não era o espaço e sim um equipamento que ficasse em cima da bancada, um equipamento maior seria melhor...
Olhando minhas sucatas me deparei com um velho TK3000 (para desespero completo do meu amigo Xandão do Tabajara Labs... a placa mãe vai pra você tá?) que torrou no passado e então eu resolvi desmontar o teclado e reutilizar o que pudesse para criar o meu teclado de bancada. Sigam com a loucura...

A vítima...


A vítima por dentro...


O lindo coração da vítima... um 65C02 do mais alto calibre...


Uma etiqueta da fonte que estava jogada dentro do gabinete... viu? Cuidado alta-tensão... fonte chaveada! PERIGO!!! Não tentem isso em casas crianças ... pelo menos não sem a supervisão de um Nerd!

A parte de baixo retirada...

O teclado... objetivo do massacre...

O teclado retirado...

O coitadinho sem as teclas ... olha que sujeira ... quantos anos de poeira heim?

As teclas retiradas...

Um banho relaxante paras as mesmas com direito a detergente...

O detalhe do teclado... sem as teclas... um pouco mais limpo... uma leve pincelada por cima...

A placa já com tudo dessoldado...


Olha os leds... pisca, pisca, pisca...


As teclas que foram retiradas... para reaproveitamento...


E tudo separadinho em saquinhos de 20 unidades... vai pro arquivo...


Pois bem... agora com todo o material em mãos resta saber o que fazer... foi daí que eu resolvi abrir meu santo e idolatrado Eagle e mandar ver no layout... desenhei o botão já que é praticamente impossível achar isso em qualquer lib... e montei um layout básico...


E roteada a placa...

Olhem o resultado... um lindo e "robusto" teclado de bancada... meu sonho dourado...

E o teclado ligado para um teste...

E agora segue pra variar um videozinho do bichinho funcionando...



Desta vez matamos a cobra, um TK3000 e mostramos o pau... quer dizer... o teclado de bancada... Bratzos a todos...

terça-feira, 8 de julho de 2008

RSK R8C/25 Tunning

Bom gente... não dá pra viver só olhando aquele maravilhoso kit de desenvolvimento do R8C/25 sem integrar ele com outras coisas... alguns dias atrás liguei um LCD de 16x2 no lugar do 8x2 original... só que agora necessito integrar mais alguns periféricos como teclados matriciais, DS1307, eeprom externa, dentre outras coisas...

O primeiro passo é preparar o material a ser utilizado...


Utilizamos conectores pinhead femea e machos... os femeas colocamos nas extremidades da placa e os machos colocamos em volta do mcu... precisei cortar e fazer um acabamento coma retífica para ficar um serviço bem feito.


O conector soldado na extremidade e os conectortes machos soldados em volta do R8C/25.


Em seguida modificamos alguns resistores para habilitação da RS232 na UART1 ... colocamos resistores de Zero Ohm em R45 e R46 e retiramos o resitor de 4K7 que faz o pull-up. (acho que é isso, depois vou testar)


Em seguida vamos ligar a placa e colocar um Jumper do p2_0 até o terra, para detectarmos um status e ver se está tudo funcionando... juntamente com isso vamos ligar o osciloscópio e acompanhar o sinal do led ligado em p2_7 ...

Depois coloco mais detalhes sobre I/Os e como fazer para setar os Directions de cada bit da porta p2 e outros ...

Taí a cobra morta e o pau! Mais uma vez...

segunda-feira, 7 de julho de 2008

StormTrooper Dance ...

É tá na hora de dormir... depois desse "Stormtrooper soldier" dançarino... só faltou dançar What a Feeling do filme Flashdance... hahuahuahu... fui... boa semana para todos...

domingo, 6 de julho de 2008

Robô que joga AirHockey

Vai ser complicado ganhar deste oponente no Air Hockey...

Saiu no PopSci uma notícia de um robô que joga Air Hockey com um adversário humano.



Vai lá...
http://www.popsci.com/gear-gadgets/article/2008-07/new-robotic-frontier-air-hockey

sábado, 5 de julho de 2008

5vcc é notícia no RenesasRulz

Pessoal,

Navegando há alguns dias atrás vi que saiu uma notícia do 5vcc na página principal do RenesasRulz... isso só pode significar que este meu arquivo pessoal pode estar sendo útil para mais alguém. O que me deixa muito feliz...

Olha aí um capture da página principal do site.


E um capture da página com a notícia.

Para quem quiser conferir pessoalmente, vá em http://www.renesasrulz.com/

Grande abraço a todos... aguardem por muitas novidades...