реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Использование выводов LOAN IO на Altera SoC Cyclone V
COMA
сообщение Mar 5 2015, 11:16
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 851
Регистрация: 28-08-04
Пользователь №: 559



Всем привет!

Разбираюсь с работой LOAN IO на своей плате. Задача - поморгать светодиодом посредством вывода HPS LOANIO.

Собрал систему с HPS, NIOS II и PIO.

У HPS сконфигурировал вывод LOANIO 48.
Выход LOANIO 48 подключен к выводу PIO.
PIO также подключен к обычному выводу FPGA.

HPS стартует с SD карты, на карту записан spl загрузчик.
После подачи питания, HPS выполняет spl загрузчик (выводится информация в консоль).
Далее я прошиваю FPGA и запускаю в режиме отладки программу, которая переключает состояние вывода PIO.

На отладке вижу, что светодиод который подключен к обычному выводу переключается, а светодиод подключенный к LOANIO 48 не меняет своё состояние (горит постоянно).

Возможно я что-то пропустил?


Прикладываю гланвый модуль проекта. Вырезал ненужное:

Код
module fpga (

    //loaner IOs
    inout           hps_gpio_LOANIO48,

    // FPGA
    // clock and reset
    input           fpga_clk_25,
    input           fpga_reset_n,

    // pio
    output          fpga_pio    
    );

    // wire instances of the 3 loan IO buses from Qsys instance
    wire    [66:0]  loan_io_in;
    wire    [66:0]  loan_io_out;
    wire    [66:0]  loan_io_oe;



    // loan_io    
    // cpu_led
    assign loan_io_out[48] = led_export;
    assign loan_io_in[48] = 1'b0;
    assign loan_io_oe[48] = 1'b1;
    
    assign fpga_pio = led_export;

    altpll_dev u0 (
        .rst            (~fpga_reset_n),
        .refclk         (fpga_clk_25),
        .outclk_0       (pll_clk_50),
        .locked         (pll_locked)
    );

    soc_system u1 (
        // HPS
        .hps_io_hps_io_gpio_inst_LOANIO48   (hps_gpio_LOANIO48),

        .hps_loan_io_in                     (loan_io_in),
        .hps_loan_io_out                    (loan_io_out),
        .hps_loan_io_oe                     (loan_io_oe),

        // FPGA
        .clk_50_clk                         (pll_clk_50),
        .reset_50_reset_n                   (pll_locked),
        
        .led_export                         (led_export),
    );
    
endmodule //fpga
Go to the top of the page
 
+Quote Post
serjj
сообщение Mar 5 2015, 13:56
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



hps_gpio_LOANIO48 сами назначили ножку в qsf или это какая то дефолтная нога? Spl пересобирали после первой компиляции проекта? Программа в процессоре вообще запускается (по jtag дает о себе знать)?
Go to the top of the page
 
+Quote Post
COMA
сообщение Mar 5 2015, 14:07
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 851
Регистрация: 28-08-04
Пользователь №: 559



hps_gpio_LOANIO48 - это дефлотная нога, квартус сам назначает ноги HPS.
spl собрал заново после полной компилции проекта, когда сгенерировались новые файлы hps_isw_handoff. Я их предварительно удалил.
spl рабочий, выводит отладочную информацию в терминал.
По jtag программа в NIOS II дебажится прекрасно - светодиод подключенный к выводу FPGA моргает.

Подозреваю, что кроме spl необходим убут.

P.S. Остаются неясные для меня моменты - что делает с HPS spl, когда не находит убут или приложение. Где все таки конфигурируются выводы HPS - в spl или в убуте.
Go to the top of the page
 
+Quote Post
serjj
сообщение Mar 5 2015, 14:35
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
Подозреваю, что кроме spl необходим убут.

P.S. Остаются неясные для меня моменты - что делает с HPS spl, когда не находит убут или приложение. Где все таки конфигурируются выводы HPS - в spl или в убуте.


Убут нужен для линукса. Bare metal приложение требует только spl. Ноги конфигурируются в spl (pinmux). То, что он рассказывает в терминал что-то, еще не значит что все хорошо - у меня было такое, что в терминал выводится, а что-то конкретное не работало. 1 раз было, что spl не знал про qspi контроллер, а другой - конфликт на ноге, которая нужна интерфейсу. Ну вы мои темы видели про эти проблемы rolleyes.gif

Я вот только не понял, у вас программа в ниосе, которая управляет светодиодом или в hps? Если используете дефолтную ногу проца, то подозреваю, что в проце. Вы ее по jtag заливаете или она у вас на sd карте рядом с preloader'ом лежит?
Go to the top of the page
 
+Quote Post
COMA
сообщение Mar 5 2015, 16:12
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 851
Регистрация: 28-08-04
Пользователь №: 559



На SD карте только spl. Больше ничего нет.

Программа запущена на NIOS, управляет выводом PIO - led_export.
Вывод PIO -led_export подключается к hps_gpio_LOANIO48 и к выводу FPGA - fpga_pio.
Получается одним светодиодом я управляю через hps_gpio_LOANIO48, а другим через fpga_pio.
Светодиод подключенный к fpga_pio переключается, а подключенный к hps_gpio_LOANIO48 нет.

Выше я привел код.

Может дело в spl?
Он ищет приложение которе должен запустить, не находит его и портит выводы?
Вотчдог в настройках spl отключен.
Go to the top of the page
 
+Quote Post
serjj
сообщение Mar 5 2015, 17:10
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



У меня сильное предчувствие, что здесь что-то не так. Разве можно ножками HPS рулить со стороны FPGA? Вы можете переназначить некоторые интерфейсы что бы HPS использовал ножки FPGA. Но насколько мне известно обратная операция недопустима. Единственное исключение - SDRAM bridge, но и то он даёт только интерфейс к контроллеру памяти, который находится в HPS.

Выложите плиз qsys файл, тут нужно глядеть настройки HPS компонента и как там что соединено.
Go to the top of the page
 
+Quote Post
tvcam
сообщение Mar 5 2015, 18:18
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 10-12-04
Из: spb
Пользователь №: 1 435



Ножками HPS рулить со стороны FPGA можно! У меня так сделано.
В выше выложенном коде явных ошибок не нащёл. led_export подключен к HPS, а не как написано к НИОСу.
Только у меня имена длиннее и везде присутствует "wire".
...
inout wire hps_io_hps_io_gpio_inst_LOANIO49,
...
sopc_0 sopc_0_inst ( // это HPS

.hps_io_hps_io_gpio_inst_LOANIO49 (hps_io_hps_io_gpio_inst_LOANIO49),

.hps_0_h2f_loan_io_in (loan_in), // <-- [66:0] Connect to FPGA logic
.hps_0_h2f_loan_io_out (loan_out), // <-- [66:0] Connect to FPGA logic
.hps_0_h2f_loan_io_oe (loan_oe) // <-- [66:0] Connect to FPGA logic If '1' , then it is an output

);

wire [66:0] loan_in,loan_out,loan_oe;

assign loan_oe[49] = 1'b1;
assign loan_out[49] = MigSveto[25];

В qsys в hps в пинах должна быть нажата кнопка LOANIOxx , где хх ваш пин.
Go to the top of the page
 
+Quote Post
COMA
сообщение Mar 5 2015, 20:20
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 851
Регистрация: 28-08-04
Пользователь №: 559



Цитата(serjj @ Mar 5 2015, 20:10) *
У меня сильное предчувствие, что здесь что-то не так. Разве можно ножками HPS рулить со стороны FPGA? Вы можете переназначить некоторые интерфейсы что бы HPS использовал ножки FPGA. Но насколько мне известно обратная операция недопустима. Единственное исключение - SDRAM bridge, но и то он даёт только интерфейс к контроллеру памяти, который находится в HPS.

Выложите плиз qsys файл, тут нужно глядеть настройки HPS компонента и как там что соединено.


Завтра на работе прикреплю sm.gif

tvcam, у меня примерно также:

soc_system u1 () // система в QSYS содержит в себе ниос и hps

.led_export (led_export), // Это выход из системы с NIOS

assign loan_io_out[48] = led_export; // соединяем с выводом led_export которым управляет NIOS II
assign loan_io_in[48] = 1'b0;
assign loan_io_oe[48] = 1'b1; // Конфигурируем на выход

assign fpga_pio = led_export; // led_export - дополнительно выводим на обычный вывод FPGA

кнопка LOANIO48 нажата.

tvcam, с чего у Вас грузится hps?

P.S. Попробую явно объявить wire.
Go to the top of the page
 
+Quote Post
tvcam
сообщение Mar 5 2015, 20:25
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 10-12-04
Из: spb
Пользователь №: 1 435



COMA, это осталось последней проблеммой для сдачи заказа к которой я не притрагивался, пока грузится прямо из компьютера из DS-5.
FPGA зашита, сброс через отключение питания=> FPGA работает => затем загрузка HPS с компа по JTAGу.

.led_export (led_export), // Это выход из системы с NIOS
Теперь понятно, но зачем вам NIOS, пользуйтесь HPS, а всё что подключено к ниосу цепляйте к HPS через авалон.


Сообщение отредактировал tvcam - Mar 5 2015, 20:30
Go to the top of the page
 
+Quote Post
COMA
сообщение Mar 6 2015, 05:35
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 851
Регистрация: 28-08-04
Пользователь №: 559



tvcam, NIOS используется для своих задач, HPS - для своих.
Go to the top of the page
 
+Quote Post
serjj
сообщение Mar 6 2015, 07:36
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
Завтра на работе прикреплю

Ждём rolleyes.gif мне уже стало интересно, не думал, что можно к ногам HPS из FPGA залезть.

Цитата
это осталось последней проблеммой для сдачи заказа к которой я не притрагивался, пока грузится прямо из компьютера из DS-5

Ох зря не притрагивались, там столько подводных камней... Если будут проблемы с этим пишите в личку, в январе много с этим ковырялся, получил пару рабочих конфигураций.
Go to the top of the page
 
+Quote Post
tvcam
сообщение Mar 6 2015, 08:29
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 10-12-04
Из: spb
Пользователь №: 1 435



serjj, Вот по этому и не притрагивался , уверен что там много подводных камней. Спасибо за предложение, воспользуюсь. Я и так пол года осваивал этот HPS.
В конце концов мне он надоел со своими глюками и не мерянным софтом. К примеру чтобы заработал RS232 нужно скомпилировать в СИ 1000 строк, подключить кучу .h файлов, чума. Вот тут меня достало и я завёл нужные мне ноги RS232, SPI и Ethernet от HPS прямо в FPGA, а там на шине авалон работают проверенные блоки, а HPS использую как NIOS.
Да, только на эти ноги невозможно положить констрейны, он не знает время от триггера FPGA до Пина HPS, и там только простые входы и выходы (нет триггеров в пинах).
Go to the top of the page
 
+Quote Post
serjj
сообщение Mar 6 2015, 08:52
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
В конце концов мне он надоел со своими глюками и не мерянным софтом. К примеру чтобы заработал RS232 нужно скомпилировать в СИ 1000 строк, подключить кучу .h файлов, чума. Вот тут меня достало и я завёл нужные мне ноги RS232, SPI и Ethernet от HPS прямо в FPGA, а там на шине авалон работают проверенные блоки, а HPS использую как NIOS.

Ну RS232 в hwlib есть, так что должно быть все норм. Я из hwlib пробовал qspi, timer, nand, watchdog, mmu. Всё работает, пару раз только нужно было кое что ручками править в исходниках. Проблема с тем, чего нет в hwlib. Вот например EMAC. Я начинал разбираться с драйвером для этого дела, пока получилось только достучаться до контроллера и до физики через MDIO. За основу брал линуксовый драйвер для designware с выкидыванием кучи лишнего. Обмен я так и не поднял, переключился на более нужные задачи и оставил все это до лучших времен. Там нужно с DMA заморачиваться и с динамическим выделением памяти, на этом мой непрограммистский мозг устал и я пошел на верилоге писать rolleyes.gif .
Go to the top of the page
 
+Quote Post
COMA
сообщение Mar 6 2015, 12:24
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 851
Регистрация: 28-08-04
Пользователь №: 559



Прикладываю проект.
Прикрепленные файлы
Прикрепленный файл  fpga.zip ( 52.24 килобайт ) Кол-во скачиваний: 25
 
Go to the top of the page
 
+Quote Post
serjj
сообщение Mar 6 2015, 13:12
Сообщение #15


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Ну я не знаю! laughing.gif
2 варианта - попробуйте перейти на 14.1 квартус
или еще вот есть на альтере описание одной фичи
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 20:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01518 секунд с 7
ELECTRONIX ©2004-2016