... ou como fornecer ao seu projeto DIY MIPS ou ARM leve com um cartão micro-SD rápido.
Bom dia a toda comunidade respeitada. Gostaria de continuar minha história sobre o
dispositivo de caixa , ou seja, sobre como ela conseguiu conectar um cartão micro-SD à porta USB 2.
A raiz de todo o problema foi que o USB 2, e não apenas um, possui seu módulo de processador, mas, infelizmente, nenhum QSPI (QuadSPI) ou uma interface de cartão. Como esse triste fato está relacionado aos cartões SD? Muito simples, qualquer cartão SD na base física de sua conexão possui uma interface SPI (SerialPeripheral). O SPI clássico usa uma linha física para transmitir e receber dados seriais. Simples e econômico, tanto em termos de dinheiro quanto em miliamperes. No entanto, as desvantagens, como você sabe, são uma continuação das vantagens e, para o SPI, elas se tornaram principalmente uma taxa de troca de dados relativamente baixa. Para resolver esse problema, foi inventado um modo de troca de dados de quatro bits com um cartão SD, que é um parente próximo do protocolo QSPI. Ao usar esse modo, o controlador host e a placa primeiro concordam com os parâmetros de troca no modo de bit único e depois mudam para o modo de quatro bits quando usam não uma linha para receber e transmitir, mas quatro para tudo (mais uma para indicar o comando).
O que fazer se o equipamento não suportar diretamente o protocolo de quatro bits, mas ainda precisar de uma troca rápida? A resposta óbvia é fornecer ao projeto uma ponte de "interface rápida" - um "cartão SD de quatro bits".
Para resolver esse problema, alguns adaptadores USB-SD foram comprados e submetidos a preparação (a vivissecção não foi usada - não somos monstros). Antes de aquecer o ferro de soldar e o secador de cabelo, uma verificação muito importante foi feita para verificar se o módulo do processador Debian vê o apito do adaptador oferecido a ele. O teste foi um grande sucesso, bem-vindo à sala de operações. O apito comprado é assim:
E assim:
Após a desmontagem do gabinete, tornou-se possível distinguir a placa de circuito impresso (dos dois lados).
O circuito é simples, sua base é o IC GL823F - um microcontrolador com sistema de comando 8051 e com uma memória de máscara, equipada com uma unidade de interface de hardware USB 2, aparentemente sem qualidade muito alta (por que digo isso - não vejo o resistor de polarização exato da parte analógica e o oscilador de cristal , o que significa restaurar a frequência do sinal recebido com base no gerador calibrado interno). Vai funcionar, mas não HiFi, não. Tudo o resto é um kit de corpo mínimo: capacitores de bloqueio, resistores de pull-up e limitadores de corrente, LEDs e conectores, isso é tudo de engenharia.
Retiramos os componentes com um secador de cabelo e examinamos a placa de circuito impresso. De várias maneiras, a placa é dupla face com orifícios de revestimento. Após um breve exame da placa em um microscópio, esboçando o diagrama de conexão e comparando-o com uma folha de dados sobre ICs relacionados à GL, restauramos o diagrama de circuito.


E aqui estamos agora começando a ver um pequeno aborrecimento. O que exatamente? Nossa caixa é alimentada por uma tensão garantida de 3,3V, e o circuito no GL823 requer 5 volts. Bem, conforme necessário - ela está tão acostumada com isso, porque é muito que o USB oferece a ela. O próprio Micro SD é alimentado por 3,3V, então o estabilizador LDO embutido é adicionado ao GL823. Daí a pergunta - e se o circuito é alimentado a partir de 3.3V, ele pode funcionar? Se o LDO conseguir não deixar cair muita tensão, pode, mas nem todos os LDOs são igualmente úteis. A folha de dados fornece uma pequena dica - a saída que alimenta o cartão SD é chamada PMOS. Essa abreviação não pode deixar de se alegrar - pode-se supor que o esquema HighSide PMOS seja usado, no qual a queda de tensão no elemento de controle pode ser muito pequena. No entanto, tudo isso é raciocínio, e o único argumento decisivo é a experiência: ele é filho de erros difíceis.
Então, que tipo de experiência ofereceremos? Vamos tentar alimentar o IC com duas tensões comutadas - de 5 V USB ou de 3,3 V, obtidas por um estabilizador separado. Agora, temos conhecimento suficiente para desenhar um diagrama esquemático.
A numeração dos componentes no circuito é um tanto estranha pelo motivo de uma ordem múltipla com vários circuitos de teste ter sido encomendada no fabricante das placas de circuito impresso, e todos eles tiveram a numeração dos componentes. Enquanto preparava o artigo, trouxe o diagrama de circuito de acordo com a fotografia, e o resultado foi o que aconteceu.
O que vemos no diagrama? Claramente, o núcleo é GL823F. O conector micro-SD está obviamente conectado a ele. A única coisa que deve ser observada - o pino 9 no conector é o contato deslizante da placa no slot, quando a placa está no lugar, ela está em curto-circuito. C7-C10 - capacitores de bloqueio nos circuitos de potência. Se você deseja aumentar um pouco a imunidade a ruídos, os pinos 2 e 16 DD1 podem ser conectados através de um bloqueador de ferrite. R4 limita a corrente através de HL1, R5 puxa a linha GPIO para uma na ausência de um cartão no slot. DA2, C11 e C12 formam um regulador de tensão linear de 3,3V.
Como naquele momento em que o circuito estava sendo desenhado, por um lado, não estava claro quanto consumiria e, por outro, houve uma experiência desagradável no uso de algumas unidades flash USB (que não apontariam com um dedo) que consumiam 400 mA durante a gravação, decidiu-se adicionar R6. Em geral, essa é uma técnica padrão - com um consumo perceptível de LDO linear no circuito (as palavras-chave aqui são LowDropout), coloque um resistor de baixa resistência com maior potência na entrada e dissipe parte do calor nele, e não no estabilizador. A experiência, no entanto, mostrou que não há necessidade do R6, e você ainda o verá na foto do quadro.
O XS4 foi projetado apenas para conduzir um experimento - alternando a potência DD1 entre 5 e 3,3 Volts. O XS2 é um conector USBB padrão, para que você possa colocá-lo à sua frente e não subir para liberar portas USB sob a mesa para o PC.
Aqui está o que aconteceu após o rastreamento, fabricação de software e instalação:
Como você pode ver, o lado inferior do quadro é completamente direto e o lado superior não é muito mais complicado.
Não vou atrasar o final da plotagem, direi imediatamente que a experiência mostrou que é possível alimentar o GL823F a partir de uma fonte de 3,3 V, a comutação do XS4 não afeta nada, exceto o consumo de energia (não atual).
Para garantir que a placa fabricada esteja funcionando corretamente, medimos a velocidade de gravação e a corrente consumida ao mesmo tempo em três cartões micro-SD diferentes. Concorrentes de fotos - no estúdio!
A avaliação do consumo de corrente (medindo o que foi feito, minha língua não pode ser chamada) foi realizada usando um medidor combinado da quantidade de tensão-corrente da carga da bateria. Francamente falando, acabou por ser uma surpresa que ele também transmita dados USB.
Usamos apenas a indicação da corrente consumida, o preço de divisão deste instrumento, por assim dizer, é 0,01A, mais pelo menos um erro de amostragem de 1 unidade do dígito menos significativo ainda é 0,01A. Portanto, a tabela mostra apenas as faixas de indicações, entre as quais o número da corrente consumida saltou. Espero, no entanto, que para aqueles que estão interessados em aplicar o GL823 em suas decisões, ainda seja possível avaliar a barra de consumo superior.
Além de testar a placa feita, para aumentar a objetividade, algumas medidas de controle foram feitas usando outro leitor de cartão SD. Aqui está um:
Esta amostra não foi preparada, peguei emprestada da minha filha por 5 minutos e, se a tivesse estripado, elas teriam me estripado imediatamente. Uma coisa é certa - o chip não pertence à família GL823, cujos membros são capazes de trabalhar tanto com o padrão SD, um multi-padrão é muito difícil para eles.
As velocidades de leitura e gravação foram medidas da maneira mais simples: o mesmo arquivo com um tamanho de 1.058.268 kB foi gravado e lido no cartão de teste. O experimento de controle (em outro leitor) foi realizado apenas para excluir erros do sistema por uma ou outra ordem decimal; os dados não foram processados; só fiquei convencido de que aproximadamente os tempos e as correntes de consumo superavam os obtidos no estágio anterior.
Se você deseja aplicar o circuito descrito em seu projeto, ao estimar o consumo, corrija o fato de que a corrente de alimentação veio de uma voltagem USB de 5 Volts, mas o GL823 foi alimentado com uma voltagem de 3,3 V e a diferença é de 5-3,3 = 1,7 (e isso é 50 % de 3,3) foi perdida no DA2. Quando alimentados por uma fonte centralizada (e, espero, pulsante) de 3,3 Volts, obtemos economias decentes.