Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Переход с Cyclone III на MAX10.
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Jenya7
У нас заканчиваются LEs и мы решили перейти на MAX10.
Проблема следующая.
В Cyclone III внешняя загрузочная память. Есть программа на С# которая загружает *.rpd файл через UART.
В MAX10 загрузочная память находиться внутри. Как мне загрузить прошивку в MAX10? Нужен какой то бутлодер или есть какой то другой механизм?
jorikdima
Так в доках вроде подробно описано. https://www.altera.com/en_US/pdfs/literature/an/an741.pdf Ну и рядом другие аппноуты посмотрите.
Jenya7
Цитата(jorikdima @ Feb 7 2017, 20:34) *
Так в доках вроде подробно описано. https://www.altera.com/en_US/pdfs/literature/an/an741.pdf Ну и рядом другие аппноуты посмотрите.

я читал эти доки. там они дают решение если на камне есть Nios II Processor.
jorikdima
Можно по-иоему и без ниоса, насколько я помню, когда интересовался этим вопросом, у меня не возникло ощущения что ниос обязательный. Идея в том, что используя их IP для работы с внутренней флэш (On Chip Flash IP Core), нужно туда записать данные. Ниос лишь пример того, как можно управлять этим IP. Но можно и своей логикой видимо. В том числе логикой преобразования вашего уарта в команды к этому IP.
https://www.altera.com/en_US/pdfs/literatur..._m10_config.pdf
Страница 41
Jenya7
Цитата(jorikdima @ Feb 7 2017, 21:41) *
Можно по-иоему и без ниоса, насколько я помню, когда интересовался этим вопросом, у меня не возникло ощущения что ниос обязательный. Идея в том, что используя их IP для работы с внутренней флэш (On Chip Flash IP Core), нужно туда записать данные. Ниос лишь пример того, как можно управлять этим IP. Но можно и своей логикой видимо. В том числе логикой преобразования вашего уарта в команды к этому IP.
https://www.altera.com/en_US/pdfs/literatur..._m10_config.pdf
Страница 41

Спасибо. Попробую вникнуть. Их объяснения расчитанны на людей глубоко в теме. Я например смотрю на это как на китайский.
Цитата
Accessing Remote System Upgrade through User Logic
The following example shows how the input and output ports of a WYSIWYG atom are defined in the MAX 10 device.

fiftyfivenm_rublock <rublock_name>
(
.clk(<clock source>),
.shiftnld(<shiftnld source>),
.captnupdt(<captnupdt source>),
.regin(<regin input source from the core>),
.rsttimer(<input signal to reset the watchdog timer>),
.rconfig(<input signal to initiate configuration>),
.regout(<data output destination to core>)
);
defparam <rublock_name>.sim_init_config = <initial configuration for simulation
only>;
defparam <rublock_name>.sim_init_watchdog_value = <initial watchdog value for
simulation only>;
defparam <rublock_name>.sim_init_config = <initial status register value for
simulation only>;
jorikdima
Цитата(Jenya7 @ Feb 7 2017, 09:24) *
Спасибо. Попробую вникнуть. Их объяснения расчитанны на людей глубоко в теме. Я например смотрю на это как на китайский.

Так а на HDL язык вы как смотрите? Если тоже как на китайский, то да, не стоит sm.gif Вам, насколько я понимаю все это, нужно на логике сэмулировать то, что делается в их примерах с ниосом. Ну точнее то, что нужно из этих примеров. На ниосе (на цпу вообще) это скорее всего просто удобнее сделать, но ставить ниос только для этого... да, не очень. Поэтому делайте прослойку между уартом и этим IP.

Проблема в том, что голый чип или чип со слетевшей прошивкой, кроме как по JTAG не зашьешь. Вот это плохо.
Jenya7
Цитата(jorikdima @ Feb 7 2017, 22:37) *
Так а на HDL язык вы как смотрите? Если тоже как на китайский, то да, не стоит sm.gif Вам, насколько я понимаю все это, нужно на логике сэмулировать то, что делается в их примерах с ниосом. Ну точнее то, что нужно из этих примеров. На ниосе (на цпу вообще) это скорее всего просто удобнее сделать, но ставить ниос только для этого... да, не очень. Поэтому делайте прослойку между уартом и этим IP.

Проблема в том, что голый чип или чип со слетевшей прошивкой, кроме как по JTAG не зашьешь. Вот это плохо.


нет, VHDL я понимаю и пишу. не все еще слава богу, но я продвигаюсь.
я так понимаю тут аналогия с контролерами. по JTAG прошивается загрузочный интерфейс (прослойка) а потом через него можно прошивать и через UART.
Александр77
Нормально программируется по JTAG без лишних телодвижений и ниосов.
Перед программированием выбирается либо sof файл и прошивка "временная" до новой или выключения, либо pof файл и прошивка хранится до нового программирования.
Нажмите для просмотра прикрепленного файла
jorikdima
Цитата(Александр77 @ Feb 7 2017, 11:21) *
Нормально программируется по JTAG без лишних телодвижений и ниосов.

Про джитаг никто не спорит. Речь про что-то типа бутлоадера через уарт. Так вот, проводя аналогию с МК, бутлоадера в роме тут вроде как нет совсем.
goodsoul
Тут себе нужно задать вопрос - а есть ли польза в конкретном проекте от встроенного флеша? Если встроенный флеш дает больше проблем, чем пользы, то есть еще Cycone IV/Cyclone V.

А так все правильно написали - первая прошивка через JTAG. И уже в этой прошивке должен быть реализован remote update.
Примеры где обычно: https://cloud.altera.com/devstore/platform/?family=max-10

Там есть "I2C Remote System Update Example", "MAX10 Remote System Upgrade (RSU) over UART for Nios II Processor"
iosifk
Цитата(Jenya7 @ Feb 7 2017, 17:38) *
В Cyclone III внешняя загрузочная память. Есть программа на С# которая загружает *.rpd файл через UART.
В MAX10 загрузочная память находиться внутри. Как мне загрузить прошивку в MAX10? Нужен какой то бутлодер или есть какой то другой механизм?

Внешний микроконтроллер, по сравнению с ПЛИС стоит копейки. Включите его между флэшью и JTAG... Или же по SPI можно грузить. Ну и к нему же дайте UART. На Си напишите загрузчик и тестировщик для ПЛИС... Все юудет гораздо дешевле, чем гробить ресурсы ПЛИС на "самопрограммирование пр UART"...
jorikdima
Цитата(iosifk @ Feb 8 2017, 03:26) *
Включите его между флэшью и JTAG...

вы не поняли. Флэшь не доступна ниоткуда кроме как изнутри плиса. Внутри плиса она доступна по джитагу или этим самым IP.
iosifk
Цитата(jorikdima @ Feb 8 2017, 20:30) *
вы не поняли. Флэшь не доступна ниоткуда кроме как изнутри плиса. Внутри плиса она доступна по джитагу или этим самым IP.

Так все таки же доступна по джитагу... Автомат джитага воспроизвести на Си - не проблема. И последовательность для загрузки получит в кодах какого-нибудь Стапла - тоже не проблема...
А микроконтроллер внутри ПЛИС загружают, чтобы соблюсти времянки по прошивке страниц флэша...
jorikdima
Цитата(iosifk @ Feb 8 2017, 11:20) *
Так все таки же доступна по джитагу... Автомат джитага воспроизвести на Си - не проблема. И последовательность для загрузки получит в кодах какого-нибудь Стапла - тоже не проблема...
А микроконтроллер внутри ПЛИС загружают, чтобы соблюсти времянки по прошивке страниц флэша...

Все зависит от приемлемости таких усердий ради этого.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.