Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: EPCS Altera
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
DisaPV
Всем привет. Такая есть проблема, не могу через Си в NIOS2 ДОСТУЧАТСЯ да EPCS16
Исходные данные:
-в QSYS (Quartus 13.0) добавил контроллер
- в Dual-Purpose Pins выставил все пены в Use ar reqular I/O
- контролер с EPCS запускается
- поставил SignalTap, что бы посмотреть как ходят сигналы data, sdo, dclk, sce триггер поставил на dclk по фронту
Не работает следующий код на Си

#include "epcs_commands.h"
int main()
{
alt_printf ("Start\n");
alt_printf ("d=%x\n",epcs_read_device_id(EPCS_BASE));
alt_printf ("End\n");

while (1) ;

return 0;
}

Контроллер просто зависает. Сообщение "Start" выводит, а дольше ничего. Триггер не срабатывает
Кто может подсказать в чем проблема.

krux
для начала сделайте
alt_printf ("EPCS_BASE = 0X%08X\n",EPCS_BASE);

если там null, значит забыли
#include "system.h"
в котором этот дефайн определен
DisaPV
Выводит:

Start
EPCS_BASE = 0x21000

и зависает база соответствует тому что прописано в system.h
krux
в таком случае зависание означает, что аппаратно в QSYS что-то неправильно сделано.
DisaPV
попробую заново создать проект
DisaPV
Не помогло выкладываю картинки
Нажмите для просмотра прикрепленного файла
это настройка QSYS
Нажмите для просмотра прикрепленного файла
это рапорт там есть три варинга, но не могу понять счем они связанны

Нажмите для просмотра прикрепленного файла
это настройка ЦПУ



#include <stdio.h>
#include "epcs_commands.h"
#include "system.h"
int main()
{
printf("Hello from Nios II!\n");
alt_printf ("EPCS_FLASH_CONTROLLER_0_BASE=0x%x\n",EPCS_FLASH_BASE);
alt_printf ("d=%x\n",epcs_read_device_id(EPCS_FLASH_BASE));
printf("END\n");
return 0;
}
и код
Нажмите для просмотра прикрепленного файла
Это то что выводит консоль


это в самом Quartus
Нажмите для просмотра прикрепленного файла
Realking
Цитата(DisaPV @ Nov 3 2015, 09:43) *
Не помогло выкладываю картинки
Нажмите для просмотра прикрепленного файла
это настройка QSYS
Нажмите для просмотра прикрепленного файла
это рапорт там есть три варинга, но не могу понять счем они связанны

Нажмите для просмотра прикрепленного файла
это настройка ЦПУ



#include <stdio.h>
#include "epcs_commands.h"
#include "system.h"
int main()
{
printf("Hello from Nios II!\n");
alt_printf ("EPCS_FLASH_CONTROLLER_0_BASE=0x%x\n",EPCS_FLASH_BASE);
alt_printf ("d=%x\n",epcs_read_device_id(EPCS_FLASH_BASE));
printf("END\n");
return 0;
}
и код
Нажмите для просмотра прикрепленного файла
Это то что выводит консоль


это в самом Quartus
Нажмите для просмотра прикрепленного файла


на варнинги эти не обращай внимание,
а вот какую ты частоту подаешь?
и еще.. у тебя в системе сброс не экспортирован, а на символе есть???
DisaPV
Частота 100Мгц
ресет я потом подцепил (а то проц не запускался)
Realking
Цитата(DisaPV @ Nov 3 2015, 10:23) *
Частота 100Мгц
ресет я потом подцепил (а то проц не запускался)


и если я не ошибаюсь, надо вроде так
epcs_read_device_id(EPCS_FLASH_BASE+EPCS_FLASH_BASE_REGISTER_OFFSET);

http://electronix.ru/forum/index.php?showtopic=93233
DisaPV
Точно, все заработало. Огромное спасибо
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.