Atualize uma placa de depuração com um processador Baikal-T1: adicione um cartão SD

Desde abril do ano passado, as placas de depuração BFK3.1 com um processador Baikal-T1 a bordo estão disponíveis para venda. Tudo ficaria bem, mas essa depuração não tem a capacidade regular de conectar um cartão SD.

Precisamos de 30 minutos de tempo, um ferro de solda e um módulo Catalex-Micro-SD-Card externo no valor de 5 peças por 300 rublos - e a questão é removida.

Aqui está um guia passo a passo sobre como adicionar um leitor de cartão SD ao BFK3.1. Tudo o que é descrito é testado na prática. Usamos o SDK 4.16 mais recente atualmente disponível no site oficial de Baikal. No SDK versão 4.14 e anterior, isso não funcionará.

Primeiro passo

Pegue o módulo Catalex MicroSD-Card.



Para que a detecção da presença de um cartão no slot (Card Detection) funcione, faça o seguinte: puxe o primeiro pino (CD / DAT3) do slot do cartão para o 3V3 plus através do resistor 4K3. Aqui está o diagrama.

O princípio de operação é o seguinte: um nível alto no primeiro pino do slot do cartão significa que não há cartão no slot; um nível baixo indica que o cartão está inserido.



Segundo passo

Em seguida, conectamos o módulo externo ao conector XP25 na placa BFK3.1



Passo três

Adicione mmc à árvore do dispositivo em um editor de texto em um arquivo

baikal / src / kernel / arch / mips / boot / dts / baikal / baikal_bfk3.dts

Aqui está um exemplo de uma descrição do dispositivo em um arquivo dts:

&spi1 { num-cs = <1>; cs-gpios = <&portb 2 GPIO_ACTIVE_LOW>; /*<&porta 17 GPIO_ACTIVE_HIGH>;*/ status = "okay"; mmc@0 { status = "okay"; compatible = "mmc-spi-slot"; spi-max-frequency = <10000000>; reg = <0>; voltage-ranges = <3200 3400>; /*gpios = <Card Detection>, <Write Protection>;*/ gpios = <&porta 17 GPIO_ACTIVE_LOW>; /*non-removable;*/ disable-wp; }; 

Quarto passo

Crie o kernel e a imagem com o comando ./usr/scripts/build-boot-img.sh bfk3 -a



Quinto passo

sudo dfu-util -a 0 -D o quadro com o comando sudo dfu-util -a 0 -D , indicando o caminho em que a imagem montada está localizada. No nosso caso, este é sdk_4.16 / img / bfk3.rom


Voila, tudo funciona.

Aqui está como vai. O serviço que trabalha com sd / mmc está ativado, analisa parâmetros de dts, configura spi, conecta interrupções à Detecção de cartões.



Se um cartão SD for detectado no slot, este serviço o conectará.



Em seguida, um novo dispositivo aparece no dev.



Se você remover o cartão, o driver corrigirá isso e removerá o dispositivo.

Source: https://habr.com/ru/post/pt440732/


All Articles