Перейти к содержанию
    

Начало работы с 8051 на FPGA фирмы Actel

Здравствуйте! Есть проблема. Куплен A3PE-STARTER-KIT. Установил Libero SoC v 11.1. Скачал документ ProASIC3/E Proto Kit User’s Guide.pdf Пытаюсь создать простейший проект (помигать светодиодом,опросить кнопку и т.д.). Не получается. В документе, видимо, более старая версия Libero. Создаю проект, создаю файл Count8.vhd из документа. Что дальше делать не знаю. Как собрать проект, запустить симуляцию? Подскажите, пожалуйста. Не судите строго - с ПЛИС сталиваюсь впервые.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте! Есть проблема. Куплен A3PE-STARTER-KIT. Установил Libero SoC v 11.1. Скачал документ ProASIC3/E Proto Kit User’s Guide.pdf Пытаюсь создать простейший проект (помигать светодиодом,опросить кнопку и т.д.). Не получается. В документе, видимо, более старая версия Libero. Создаю проект, создаю файл Count8.vhd из документа. Что дальше делать не знаю. Как собрать проект, запустить симуляцию? Подскажите, пожалуйста. Не судите строго - с ПЛИС сталиваюсь впервые.

 

Увас не получается создать работающий прект? Содержание не важно,просто порядок действий? Могу сделать скрины пошагово... Только у меня либеро 10. А еще это все же тема про ядро 8051, нам наверное лучше уйти в другую тему или личку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А под что вы использовали кейл, если не секрет. Я, так понимаю, точно не nois.

 

 

Писал для Aduc812. Очень не охота перползать на СофтКонсоль, уже возникли проблемы... мне необходимо писать на чистом ассемблере, для этой задачи практически нет чтива и примеров :-( . Вы используете Си? ;-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Очень хочется ответить "конечно". Как показывает практика - писание на ассемблере очень полезная вещь для понимания, но для весьма не переносимая от разработчика к разработчику. С чем я недавно и столкнулся: ушел один из разработчиков, и все его наработки придется поднимать с нуля.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мда... вы павы, дело то в ПЛЛ. Я проверял его в Либеро. А подключить ПЛЛ это физически питание подключить,все встало на свои места. Огромное спасибо!

а можно побробнее? я понимаю, что нужно проводок пробросить, но откуда и куда?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а можно побробнее? я понимаю, что нужно проводок пробросить, но откуда и куда?

 

 

страница 11 мануала по доске. Нужо подать 1.5В на 27 и 131 пины. Отверстия с 1.5В под разьемом джитаг, я оттуда бросил провода к необходимым пинам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Запустил проект из под софтконсоли. Заработало. Но на пинах 27 и 131 ноль. Т.е. ПЛЛ не заботает, а светодиоды мигают. Как такое возможно? Для чего вообще ПЛЛ в это м пректе? И возник следующий вопрос - Как все это повторить без софконсоли? Как прошить HEX в плис, или как подключить внешнюю память, например через SPI (93c.. или DataFlash) ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Запустил проект из под софтконсоли. Заработало. Но на пинах 27 и 131 ноль. Т.е. ПЛЛ не заботает, а светодиоды мигают. Как такое возможно? Для чего вообще ПЛЛ в это м пректе? И возник следующий вопрос - Как все это повторить без софконсоли? Как прошить HEX в плис, или как подключить внешнюю память, например через SPI (93c.. или DataFlash) ?

 

Проект тов. styuf? Может вы тактируете ядро не от плл? Вопрос дурацкий,но все же,доска точно эта?

 

 

А про то как прошить hex, вопрос открыт. Так что если это сообщение читает человек знающий,большая просьба помочь. Уже минимум трое чешут репу...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проект тов. styuf? Может вы тактируете ядро не от плл? Вопрос дурацкий,но все же,доска точно эта?

 

 

А про то как прошить hex, вопрос открыт. Так что если это сообщение читает человек знающий,большая просьба помочь. Уже минимум трое чешут репу...

 

 

Да - проект тот, что выкладывал styuf (Example.rar). Шью без всяких измений. Доска, вроде, та же, фотку прилагаю.

Напряжения мерял напрямую на ножках плис. Как узнать от чего я тактирую плис? (Изините за _совсем_ дурацкий вопрос).

По-поводу прошивки флеша может быть кто-то подскажет как вообще это ядро делает выборку данных из памяти программ/данных?

Может как-то можно вытащить шины данных и адреса наружу и использовать внешний флеш?

 

Попутно возник еще один вопрос - подскажите, пожалуйста, где находятся сигналы RX,TX уарта и какой у него базовый адрес? Хочу опопробовать его работоспособность. И как посмотреть (изменить) расположение (соответствие) логических сигналов и физических ног плисины?

 

 

post-19485-1380889741_thumb.jpg

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут действительно вопрос интересный.

Я пытался делать так - создаю память программы внутри плисины и, соответственно, создаю ему инициализационный файлик .hex (при компиляции проги получается). Но у меня ни разу микроконтроллер не запустился сам. А вот если войтив дебаг моду внутри софтконсоли и сделать run то программа начинает работать. Програмки я писал простые - светодиодики (которая у вас) + обработка кнопок(работала, но я убрал обработчик кнопок). Ничего конкретней сказать не могу, сейчас занимаюсь немного другими вещами. Но в скором времени должен прийти первый прототип с отдлеьной пзу на плате.

 

А можно попдробнее о подключении .hex файла к проекту?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нажимаю... может быть проблема в настройке дебага?

 

смущает еще No source available for ""

 

 

 

по поводу ошибки,сайт актела отправляет в настройки проекта,там во вкладе Memory map generator в строке Command прикрепить такстовый файл... Подключая ваш проект я расчитывал на перенос и настроек,но вдруг этого не произошло. Вы производили какие нибудь монипуляции с Tool Settings?

 

Доброго дня! Пытаюсь достучаться до уарта, прописал в хидере базовый адрес, получил <No source available for ""> в строке, в которой выполняется обращение к регистру статуса уарта (первое обращение к регистрам уарта). что бы это могло значить?

Ковыряясь дальше, нашел, что ошибку вызывает обращение к адресам тех модулей, которые не описаны в test_8051.vhd (там включены модули ядра, шины, IO порта). Возникает вопрос - как включить туда UART_APB, WatchDog и Timer? Помогите разобраться, пожалуйста!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день!

Подскажите, пожалуйста, может кто сталкивался. Собрал проект, в котором работает 8051 с внутренней памятью - все хорошо. Решил заменить внутренюю память на внешнее ОЗУ. Пока меняю только память данных - все работает, когда пытаюсь таким же образом заменить память кода получается следующее: софтконсоль в режиме отладки записывает код программы в память, позволяет начать отладку, даже запустить программу, но программа работает нестабильно и недолго. Заканчивается все зависанием, причем бывает зависает так, что призодиться перегружать комп.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте все!

Помогите, пожалуйста, кто может.

Я пробую поморгать светодиодами в учебных целях при помощи ядра 8051s. Работаю в Libero 9.1.

Собираю проект в SmartDesign, как учили. Пишу маленькую программу, просто попробовать. Вот она вся:

#define APB3_BASE_ADDRESS               0xF000
__xdata at APB3_BASE_ADDRESS + 0x00A0 unsigned char tst;

void main()
{
        tst = 0x00;
        tst = 0xFF;
    for (;;)
    {
        tst = 0x00;
        tst = 0xFF;
    }
}

0x00A0 - это смещение выходных данных CoreGPIO, который лежит в адресном пространстве шины APB первым. Компилирую эту программу в SoftConsole через меню Project - Build All. Полученный HEX или IHX файл конвертирую самодельной программой (прилагается) в описание блока памяти на VHDL.

Запускаю Modelsim и не могу получить никаких изменений ни в одном сигнале CoreAPB3. При этом обращение к памяти идёт нормально. На выходах CoreGPIO тоже тишина.

Ещё непонятная мне вещь: сколько бы операторов я ни писал в цикле программы, на модели она зацикливается на четырёх выборках из памяти, всегда одинаковых.

Всё это происходит и в debug, и в release версиях.

Я показывал это дело знающему человеку. Он загрузил ту же программу в отладочное ОЗУ. Сказал: "содержимое получаемое в памяти после вашего конвертора и после импорта .hex в RAM совпадают, те проблема не в конверторе".

Проект я тоже прикладываю.

Объясните, пожалуйста, почему шина APB не шевелится?

Заранее признателен.

8051s_3.zip

HexToVHDL.exe.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте все!

Помогите, пожалуйста, кто может.

Я пробую поморгать светодиодами в учебных целях при помощи ядра 8051s. Работаю в Libero 9.1.

Собираю проект в SmartDesign, как учили. Пишу маленькую программу, просто попробовать. Вот она вся:

#define APB3_BASE_ADDRESS               0xF000
__xdata at APB3_BASE_ADDRESS + 0x00A0 unsigned char tst;

void main()
{
        tst = 0x00;
        tst = 0xFF;
    for (;;)
    {
        tst = 0x00;
        tst = 0xFF;
    }
}

0x00A0 - это смещение выходных данных CoreGPIO, который лежит в адресном пространстве шины APB первым. Компилирую эту программу в SoftConsole через меню Project - Build All. Полученный HEX или IHX файл конвертирую самодельной программой (прилагается) в описание блока памяти на VHDL.

Запускаю Modelsim и не могу получить никаких изменений ни в одном сигнале CoreAPB3. При этом обращение к памяти идёт нормально. На выходах CoreGPIO тоже тишина.

Ещё непонятная мне вещь: сколько бы операторов я ни писал в цикле программы, на модели она зацикливается на четырёх выборках из памяти, всегда одинаковых.

Всё это происходит и в debug, и в release версиях.

Я показывал это дело знающему человеку. Он загрузил ту же программу в отладочное ОЗУ. Сказал: "содержимое получаемое в памяти после вашего конвертора и после импорта .hex в RAM совпадают, те проблема не в конверторе".

Проект я тоже прикладываю.

Объясните, пожалуйста, почему шина APB не шевелится?

Заранее признателен.

 

Добрый день!

Программа правильная, конвертор тоже вроде работает (проверил первые 10 байт прошивки). Остается механизм выборки из памяти и настройки блоков в SmartDesigner. Попробуйте MEMSPACKI и MEMACKI подтянуть в "1", и добавить пару циклов обращения к памяти. Все неиспользуемые входы подтяните в неактивное состояние. В корке GPIO сделайте Number of I/O=8 и Output enable = Internal.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Огромное спасибо! Лёд наконец тронулся: Modelsim глохнет при обращении к CoreGPIO, то есть обращение есть!

Сначала вот такой warning: Fatal: (vsim-3734) Index value 29 is out of range 0 to 7.

Потом красным вот такое: Fatal error in Process line__887 at D:/Projects/Actel/2013-10_core8051/Libero/8051s-3/component/Actel/DirectCore/CoreGPIO/3.0.120/rtl/vhdl/core/coregpio.vhd line 891

Эта строка вот в таком участке кода:

  process (CONFIG_reg, PADDR, PADDR_INT)
  begin
    case (PADDR_INT) IS
      when 0 to 31 =>
        CONFIG_reg_o(7 downto 0) <= CONFIG_reg(PADDR_INT)(7 downto 0);  --она и есть
      when others => 
        CONFIG_reg_o(7 downto 0) <= X"00";
    end case;
  end process;

Но если вернуть 32-разрядный GPIO, то опять всё портится. Почему так? Он вообще не умеет быть 32-разрядным?

Что бы ещё сделать, а?

Вот проект в теперешнем виде.

8051s_3_v2.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...