quarta-feira, 31 de janeiro de 2007

Módulo RTC.

O módulo RTC é baseado num PCF8563. Uma bateria tipo botão alimenta o circuito enquanto a alimentação está desligada. Abaixo encontra-se uma figura da placa, que foi projetada para encaixar-se sobre o leitor de MMC/SD.



O layout, em 300dpi, encontra-se abaixo.

terça-feira, 30 de janeiro de 2007

Mais um passo.

As modificações nos circuitos dos registradores de deslocamento foram testadas com sucesso. Agora é possível inclusive operar em modo SPI como se fosse num microcontrolador, ou seja, para transferir um byte, basta:

LD A,BYTE ; Byte a ser enviado
OUT (SPI_ADDRESS),A ; Envia byte
NOP ; entre o OUT e o IN é necessário que
; ocorram ao menos 8 ciclos de clock.
IN A,(SPI_ADDRESS) ; Recebe o byte

O circuito aogora está pronto para iniciar os primeiros testes com o cartão SD.

Mas antes é necessário realizar...

- Atualização do guia de montagem e teste, para contemplar as modificações já efetuadas;
- Atualização do circuito e do "layout" da placa para a revisão A;
- Limpeza da casa (mesas dos computadores, bancada, etc);

Nota: Entre o OUT e o IN é necessário que se passem ao menos 8 ciclos de clock. As instruções automáticas INIR e OTIR funcionam porque gastam ciclos de clock suficientes entre leituras ou escritas consecutivas.



Na foto, o protótipo 2 e a sonda lógica com contador digital, uma ferramenta desenvolvida especialmente para ajudar na montagem e teste do circuito (desde o protótipo 1). O projeto completo da sonda vai ser divulgado em breve.

Reta final do projeto de "hardware"

O Hardware do protótipo 2 está em fase final de testes. Falta ainda testar duas modificações, relacionada aos sinais "RCK" do 74HCT595 e "LD165" do 74HCT165, pois há um pequeno erro de conceito que passou batido durante o projeto do prototipo2.

Eu criei sinais pra desabilitar o "reset" do gerador automático de clock nos eventos de leitura e de escrita na porta SPI, mas me esqueci de que os sinais que acionam o 74HCT595 e o 74HCT165 ficaram DEPOIS do circuito de desabilitação, ou seja depois dos flip-flops sincronizadores. Assim, não é possível nem ler o byte que foi transferido anteriormente, nem carregar um novo byte para ser transferido depois.
Quanto ao sinal "LD165", que vai para o 74HC165, é fácil de resolver, pois basta conectar este sinao à linha /WR0, ou seja, antes do flip-flop. Já o sinal "RCK595" temque ser tirado de um outro ponto, pois este é invertido em relação ao sinal /RD0. Assim este sinal vai ser retirado do evento do STOP do gerador de clock automatico (pino 8 do contador 393).

Com estas configurações vai ser possível o funcionamento como se fosse um "hardware" SPI tradicional, ou seja

OUT (porta dados), valor
serialização automática do valor
e em seguida IN (porta de dados)

O circuito atual pode ser visto abaixo, já com as modificações incorporadas.


clique na imagem para ampliar

segunda-feira, 29 de janeiro de 2007

Resolvendo problemas no conversor 5V->3V

O conversor de 5V-3V estava apresentando um comportamento estranho. Logo após a tensão ter sido ajustada para 3,4Volts, o 74HC125 foi conectado e a tensão passou para 4,3Volts. E desta vez o potenciômetro de ajuste de nada adiantava.

A causa eram os diodos internos de proteção do 74HC125, que conduziam, grampeando assim a tensão do lado de 3V para 4,3Volts, que é exatamente 5V-0,7V da tensão direta do diodo.

A solução foi identificar as linhas responsáveis (SCK, CS e DIN) e colocar em serie um resistor de alguns kilo-ohms. Um capacitor eletrolítico logo após o regulador de 3V também foi colocado.

Em tempo: 3V é o nome da linha que é ajustada para 3,4Volts em aberto, mas cujo valor flutua um pouco, dependendo do consumo do cartão. Mas isso não é problema, pois o cartao trabalha bem entre 2,6 a 3,6 Volts

sexta-feira, 26 de janeiro de 2007

Mais alguns testes em vista, e mais algumas possibilidades

O protótipo 2 já está quase 100% testado, pronto portanto para ser usado no desenvolvimento dos drivers para cartão SD e MMC, mas algumas coisas no circuito ainda podem ser melhoradas.

  • O conversor 5V->3V pode ser melhorado,
  • A linha LIGA_3V3 que também aciona 2 portas do HC125 estã inútil, pois quando não há alimentação, não importa se as portas estão ou não conectadas. Com isso é provável que o diodo D5 saia do circuito, liberando assim uma linha do 74HCT595.
  • A porta IC6C talvez possa ser eliminada, ligando-se a linha SD_DOUT do cartão diretamente ao pino de entrada (SER) do 74HC595.
Porque estas mudanças são importantes? É que com mais uma linha de controle e com mais uma porta 5V->LV é possível conectat 2 cartões simultaneamente à interface, pois o protocolo SPI dos cartões tao MMC/SD usa uma estrutura de Barramento, com todas as linhas em comum, exceto a linha CHIP SELECT, que é individual para cada cartão.

Mas isso só vai ser testado depois que as rotinas básicas de acesso ao cartão já estiverem prontas. Além disso, o escopo dos requisitos definidos há um bom tempo é suportar um cartão.

quinta-feira, 25 de janeiro de 2007

HB-7000: Guia de Montagem e Teste

O guia de montagem para a interface leitora de SD/MMC está quase pronto.

O guia está sendo criado/revisado juntamente com a primeira montagem do protótipo 2. Até agora, os principais sub-circuitos já foram testados e estão funcionando.

Os testes de hardware se baseiam em comandos simples do BASIC do MSX, e têm como objetivo testar passo a passo o funcionamento do circuito, enquanto este está sendo montado.

A estrutura dos testes é apresentada abaixo. Os testes em verde já foram efetuados no protótipo2. Os testes em laranja ainda estão sendo escritos.

Durante os testes do "hardware" I2C, o teste permitiu isolar uma falha, cuja causa já foi descoberta e corrigida, gerando uma nota no roteiro de teste. O diodo que estava aberto foi substituído e os testes prosseguiram.


1. Montagem da placa
  • Testes Estáticos

2. Hardware Básico
  • Teste do Decodificador de Endereços
  • Teste do Registrador Endereçável
  • Teste do "flip-flop" Sincronizador
  • Teste do Gerador de "clock" Automático
  • Teste do "Hardware" I2C
  • Teste dos registradores de deslocamento
  • Teste do conversor 5V->3V
  • Teste do conversor TTL<->LV
Uma prévia do teste pode ser encontrada neste link

Enfim, um nome para o projeto

O projeto do leitor de SD/MMC, apesar de ter avançado bastante, ainda não tinha um nome. Apesar de vários terem surgido, nenhum ainda tinha soado bem.

Decidi então seguir a nomenclatura de produtos para o HotBit, e por isso projeto foi batizado de:

HB-7000: Interface rápida para cartões SD/MMC

quarta-feira, 24 de janeiro de 2007

Concluída a montagem do protótipo2

A montagem do protótipo 2 foi concluída. Eis a foto, ainda sem os CIs nos soquetes:



Os testes estáticos foram realizados comparando as ligações do diagrama contra o circuito montado. Foram necessárias apenas 3 correções, duas delas por falha na placa, durante a corrosão do circuito impresso, e uma por um erro no diagrama. Houve ainda uma modificação que não estava prevista inicialmente no diagrama, que também foi implementada.



Agora começam os testes dos diversos sub-circuitos.


O diagrama da Revisão A encontra-se abaixo:

terça-feira, 23 de janeiro de 2007

Montagem do Protótipo2

A montagem do protótipo 2 avançou um pouco. Agora falta colocar os conectores do cartão MMC, I2C e do barramento MSX.

Captura de Listagem

O "software" em assembler para captura de listagem foi testado e está funcionando. A configuração do HyperTerminal, ou de qualquer outro programa de captura serial é 9600Bauds, 8 bits, Sem paridade, 1 bit de parada (9600 8-N-1).

quinta-feira, 18 de janeiro de 2007

Protótipo 2 a caminho!

O protótipo 2 está a caminho...

Ainda não é a versão final, ja está bem próxima disso. A maior novidade, o "latch" endereçável, juntamente com o suporte (de hardware) a I2C já estão testados.
A placa já está roteada, corroída, e pronta para ser montada.



O circuito encontra-se abaixo: