|
|
  |
Начало работы с 8051 на FPGA фирмы Actel, Воопросы, возникающие при первом знакомстве с 8051. |
|
|
|
Sep 22 2013, 16:52
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 11-08-06
Пользователь №: 19 485

|
Здравствуйте! Есть проблема. Куплен A3PE-STARTER-KIT. Установил Libero SoC v 11.1. Скачал документ ProASIC3/E Proto Kit User’s Guide.pdf Пытаюсь создать простейший проект (помигать светодиодом,опросить кнопку и т.д.). Не получается. В документе, видимо, более старая версия Libero. Создаю проект, создаю файл Count8.vhd из документа. Что дальше делать не знаю. Как собрать проект, запустить симуляцию? Подскажите, пожалуйста. Не судите строго - с ПЛИС сталиваюсь впервые.
|
|
|
|
|
Sep 24 2013, 05:58
|
Частый гость
 
Группа: Свой
Сообщений: 100
Регистрация: 28-08-13
Из: SPb
Пользователь №: 78 086

|
Цитата(Serge_DVD @ Sep 22 2013, 20:52)  Здравствуйте! Есть проблема. Куплен A3PE-STARTER-KIT. Установил Libero SoC v 11.1. Скачал документ ProASIC3/E Proto Kit User’s Guide.pdf Пытаюсь создать простейший проект (помигать светодиодом,опросить кнопку и т.д.). Не получается. В документе, видимо, более старая версия Libero. Создаю проект, создаю файл Count8.vhd из документа. Что дальше делать не знаю. Как собрать проект, запустить симуляцию? Подскажите, пожалуйста. Не судите строго - с ПЛИС сталиваюсь впервые. Увас не получается создать работающий прект? Содержание не важно,просто порядок действий? Могу сделать скрины пошагово... Только у меня либеро 10. А еще это все же тема про ядро 8051, нам наверное лучше уйти в другую тему или личку.
|
|
|
|
|
Sep 24 2013, 07:29
|
Частый гость
 
Группа: Свой
Сообщений: 100
Регистрация: 28-08-13
Из: SPb
Пользователь №: 78 086

|
Цитата(styuf @ Sep 21 2013, 08:58)  А под что вы использовали кейл, если не секрет. Я, так понимаю, точно не nois. Писал для Aduc812. Очень не охота перползать на СофтКонсоль, уже возникли проблемы... мне необходимо писать на чистом ассемблере, для этой задачи практически нет чтива и примеров :-( . Вы используете Си? ;-)
|
|
|
|
|
Sep 28 2013, 10:03
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 11-08-06
Пользователь №: 19 485

|
Цитата(Kapsik @ Sep 20 2013, 11:53)  Мда... вы павы, дело то в ПЛЛ. Я проверял его в Либеро. А подключить ПЛЛ это физически питание подключить,все встало на свои места. Огромное спасибо! а можно побробнее? я понимаю, что нужно проводок пробросить, но откуда и куда?
|
|
|
|
|
Sep 30 2013, 08:35
|
Частый гость
 
Группа: Свой
Сообщений: 100
Регистрация: 28-08-13
Из: SPb
Пользователь №: 78 086

|
Цитата(Serge_DVD @ Sep 28 2013, 14:03)  а можно побробнее? я понимаю, что нужно проводок пробросить, но откуда и куда? страница 11 мануала по доске. Нужо подать 1.5В на 27 и 131 пины. Отверстия с 1.5В под разьемом джитаг, я оттуда бросил провода к необходимым пинам.
|
|
|
|
|
Oct 2 2013, 10:48
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 11-08-06
Пользователь №: 19 485

|
Спасибо. Запустил проект из под софтконсоли. Заработало. Но на пинах 27 и 131 ноль. Т.е. ПЛЛ не заботает, а светодиоды мигают. Как такое возможно? Для чего вообще ПЛЛ в это м пректе? И возник следующий вопрос - Как все это повторить без софконсоли? Как прошить HEX в плис, или как подключить внешнюю память, например через SPI (93c.. или DataFlash) ?
|
|
|
|
|
Oct 4 2013, 12:09
|
Частый гость
 
Группа: Свой
Сообщений: 100
Регистрация: 28-08-13
Из: SPb
Пользователь №: 78 086

|
Цитата(Serge_DVD @ Oct 2 2013, 14:48)  Спасибо. Запустил проект из под софтконсоли. Заработало. Но на пинах 27 и 131 ноль. Т.е. ПЛЛ не заботает, а светодиоды мигают. Как такое возможно? Для чего вообще ПЛЛ в это м пректе? И возник следующий вопрос - Как все это повторить без софконсоли? Как прошить HEX в плис, или как подключить внешнюю память, например через SPI (93c.. или DataFlash) ? Проект тов. styuf? Может вы тактируете ядро не от плл? Вопрос дурацкий,но все же,доска точно эта? А про то как прошить hex, вопрос открыт. Так что если это сообщение читает человек знающий,большая просьба помочь. Уже минимум трое чешут репу...
|
|
|
|
|
Oct 4 2013, 12:42
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 11-08-06
Пользователь №: 19 485

|
Цитата(Kapsik @ Oct 4 2013, 15:09)  Проект тов. styuf? Может вы тактируете ядро не от плл? Вопрос дурацкий,но все же,доска точно эта?
А про то как прошить hex, вопрос открыт. Так что если это сообщение читает человек знающий,большая просьба помочь. Уже минимум трое чешут репу... Да - проект тот, что выкладывал styuf (Example.rar). Шью без всяких измений. Доска, вроде, та же, фотку прилагаю. Напряжения мерял напрямую на ножках плис. Как узнать от чего я тактирую плис? (Изините за _совсем_ дурацкий вопрос). По-поводу прошивки флеша может быть кто-то подскажет как вообще это ядро делает выборку данных из памяти программ/данных? Может как-то можно вытащить шины данных и адреса наружу и использовать внешний флеш? Попутно возник еще один вопрос - подскажите, пожалуйста, где находятся сигналы RX,TX уарта и какой у него базовый адрес? Хочу опопробовать его работоспособность. И как посмотреть (изменить) расположение (соответствие) логических сигналов и физических ног плисины?
|
|
|
|
|
Oct 5 2013, 11:25
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 11-08-06
Пользователь №: 19 485

|
Цитата(styuf @ Aug 29 2013, 12:09)  Тут действительно вопрос интересный. Я пытался делать так - создаю память программы внутри плисины и, соответственно, создаю ему инициализационный файлик .hex (при компиляции проги получается). Но у меня ни разу микроконтроллер не запустился сам. А вот если войтив дебаг моду внутри софтконсоли и сделать run то программа начинает работать. Програмки я писал простые - светодиодики (которая у вас) + обработка кнопок(работала, но я убрал обработчик кнопок). Ничего конкретней сказать не могу, сейчас занимаюсь немного другими вещами. Но в скором времени должен прийти первый прототип с отдлеьной пзу на плате. А можно попдробнее о подключении .hex файла к проекту?
|
|
|
|
|
Oct 5 2013, 12:51
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 11-08-06
Пользователь №: 19 485

|
Цитата(Kapsik @ Sep 19 2013, 11:34)  нажимаю... может быть проблема в настройке дебага?
смущает еще No source available for ""
по поводу ошибки,сайт актела отправляет в настройки проекта,там во вкладе Memory map generator в строке Command прикрепить такстовый файл... Подключая ваш проект я расчитывал на перенос и настроек,но вдруг этого не произошло. Вы производили какие нибудь монипуляции с Tool Settings? Доброго дня! Пытаюсь достучаться до уарта, прописал в хидере базовый адрес, получил <No source available for ""> в строке, в которой выполняется обращение к регистру статуса уарта (первое обращение к регистрам уарта). что бы это могло значить? Ковыряясь дальше, нашел, что ошибку вызывает обращение к адресам тех модулей, которые не описаны в test_8051.vhd (там включены модули ядра, шины, IO порта). Возникает вопрос - как включить туда UART_APB, WatchDog и Timer? Помогите разобраться, пожалуйста!
|
|
|
|
|
Dec 24 2013, 17:01
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 11-08-06
Пользователь №: 19 485

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

Дима
    
Группа: Свой
Сообщений: 1 683
Регистрация: 15-12-04
Из: Санкт-Петербург
Пользователь №: 1 486

|
Здравствуйте все! Помогите, пожалуйста, кто может. Я пробую поморгать светодиодами в учебных целях при помощи ядра 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 не шевелится? Заранее признателен.
--------------------
|
|
|
|
|
Feb 2 2014, 11:34
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 11-08-06
Пользователь №: 19 485

|
Цитата(DSIoffe @ Feb 1 2014, 13:09)  Здравствуйте все! Помогите, пожалуйста, кто может. Я пробую поморгать светодиодами в учебных целях при помощи ядра 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.
|
|
|
|
|
Feb 2 2014, 15:37
|

Дима
    
Группа: Свой
Сообщений: 1 683
Регистрация: 15-12-04
Из: Санкт-Петербург
Пользователь №: 1 486

|
Огромное спасибо! Лёд наконец тронулся: 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-разрядным? Что бы ещё сделать, а? Вот проект в теперешнем виде.
--------------------
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|