2016-08-31 2 views
0

У меня есть плата MicroZed с Xillinux 1.3, работающая на ней. Я хотел связать с ним внешний АЦП SPI и написать приложение в Linux для чтения значений из АЦП. Аппаратный интерфейс SPI устройства Zynq не включен в Xillinux. Как я могу включить его, мне придется перекомпилировать FSBL и U-boot, но я не знаю с чего начать. Могу ли я просто изменить дизайн Vivado Xillinux и перейти оттуда или мне нужно начинать с нуля?Включить аппаратное SPI на Xillinux

ответ

0

Вам не нужно изменять FSBL или U-boot. Вам нужно только добавить контроллер SPI в дерево устройств и обновить программируемую логику, чтобы контакты SPI подключались к вашему АЦП.

В Xilinx SDK есть инструменты для создания файла дерева устройств, описанного на странице Build Device Tree Blob.

Обычно я редактирую файлы .dts вручную, но вам все равно нужно запустить dtc, чтобы преобразовать их в двоичный формат, как описано на этой странице.

Для примера, здесь .dts фрагмент для zynq-zc770-xm013.dts платы, позволяющей SPI подключен к флэш-памяти:

&spi0 { 
    status = "okay"; 
    num-cs = <4>; 
    is-decoded-cs = <0>; 
    eeprom: [email protected] { 
     at25,byte-len = <8192>; 
     at25,addr-mode = <2>; 
     at25,page-size = <32>; 

     compatible = "atmel,at25"; 
     reg = <2>; 
     spi-max-frequency = <1000000>; 
    }; 
}; 
0

вы должны сделать 2 шага.

1- модифицируйте файл дескриптора оборудования (.h) вашей платы в источниках ядра и добавьте устройство spi. Во-первых, посмотрите на схему платы и техническое описание на Processo, чтобы убедиться в использовании правильного устройства с правильным именем

2- добавить spidev на файл конфигурации ядра

Теперь построить и загрузите Ядро, если вы проверяете/dev /, вы должны найти spidev ** что-то.

Смежные вопросы