- PVSM.RU - https://www.pvsm.ru -

Апгрейд отладочной платы с процессором Baikal-T1: добавляем SD-карту

С апреля прошлого года в открытой продаже доступны отладочные платы BFK3.1 c процессором Baikal-T1 на борту. Всё бы хорошо, но у этой отладки нет штатной возможности подключать SD-карту.

Нам потребуется 30 минут времени, паяльник, и внешний модуль Catalex-Micro-SD-Card-Module стоимостью 5 штук за 300 рублей — и вопрос снят.

Вот пошаговое руководство, как добавить SD-кард ридер на BFK3.1. Всё описываемое опробовано на практике. Использовался самый свежий на данный момент SDK 4.16, размещенный на официальном сайте «Байкала». [1] В SDK версии 4.14 и младше это работать не будет.

Шаг первый

Берём модуль Catalex MicroSD-Card.

Апгрейд отладочной платы с процессором Baikal-T1: добавляем SD-карту - 1

Для того, чтобы работало определение наличия карты в слоте (Card Detection) нужно сделать следующее: первый пин (CD/DAT3) слота карты подтянуть к плюсу 3V3 через резистор 4К3. Вот тут схема. [2]

Принцип работы следующий: высокий уровень на первом пине слота карты означает, что карта в слоте отсутствует, низкий уровень сигнализирует, что карта вставлена.

Апгрейд отладочной платы с процессором Baikal-T1: добавляем SD-карту - 2

Шаг второй

Дальше мы подключаем внешний модуль к разъему XP25 на плате BFK3.1

Апгрейд отладочной платы с процессором Baikal-T1: добавляем SD-карту - 3

Шаг третий

Добавляем mmc в дерево устройств в текстовом редакторе в файл

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

Вот пример описания устройства в 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;
		};

Шаг четвёртый

Собираем ядро и образ командой ./usr/scripts/build-boot-img.sh bfk3 -a

Апгрейд отладочной платы с процессором Baikal-T1: добавляем SD-карту - 4

Шаг пятый

Прошиваем плату командой sudo dfu-util -a 0 -D, указывая путь, по которому находится собранный образ. В нашем случае это sdk_4.16/img/bfk3.rom

Апгрейд отладочной платы с процессором Baikal-T1: добавляем SD-карту - 5
Вуаля, всё работает.

Вот как это происходит. Включается служба, работающая с sd/mmc, она разбирает параметры из dts, настраивает spi, подключает прерывания к Card Detection.

Апгрейд отладочной платы с процессором Baikal-T1: добавляем SD-карту - 6

При обнаружении в слоте SD-карточки эта служба производит ее подключение.

Апгрейд отладочной платы с процессором Baikal-T1: добавляем SD-карту - 7

Затем в dev появляется новое устройство.

Апгрейд отладочной платы с процессором Baikal-T1: добавляем SD-карту - 8

Если карточку вынуть, то драйвер зафиксирует это и удалит устройство.

Апгрейд отладочной платы с процессором Baikal-T1: добавляем SD-карту - 9

Автор: Андрей Малафеев

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/diy-ili-sdelaj-sam/309325

Ссылки в тексте:

[1] Использовался самый свежий на данный момент SDK 4.16, размещенный на официальном сайте «Байкала».: https://www.baikalelectronics.ru/products/bfk31/?type=razrabotka

[2] Вот тут схема.: https://habrastorage.org/webt/qw/gd/if/qwgdif9wmwccqd01gnm5filhyfs.png

[3] Источник: https://habr.com/ru/post/440732/?utm_source=habrahabr&utm_medium=rss&utm_campaign=440732