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

Переход с Cyclone III на MAX10.

У нас заканчиваются LEs и мы решили перейти на MAX10.

Проблема следующая.

В Cyclone III внешняя загрузочная память. Есть программа на С# которая загружает *.rpd файл через UART.

В MAX10 загрузочная память находиться внутри. Как мне загрузить прошивку в MAX10? Нужен какой то бутлодер или есть какой то другой механизм?

 

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


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

Так в доках вроде подробно описано. https://www.altera.com/en_US/pdfs/literature/an/an741.pdf Ну и рядом другие аппноуты посмотрите.

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


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

Так в доках вроде подробно описано. https://www.altera.com/en_US/pdfs/literature/an/an741.pdf Ну и рядом другие аппноуты посмотрите.

я читал эти доки. там они дают решение если на камне есть Nios II Processor.

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


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

Можно по-иоему и без ниоса, насколько я помню, когда интересовался этим вопросом, у меня не возникло ощущения что ниос обязательный. Идея в том, что используя их IP для работы с внутренней флэш (On Chip Flash IP Core), нужно туда записать данные. Ниос лишь пример того, как можно управлять этим IP. Но можно и своей логикой видимо. В том числе логикой преобразования вашего уарта в команды к этому IP.

https://www.altera.com/en_US/pdfs/literatur..._m10_config.pdf

Страница 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>;

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


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

Спасибо. Попробую вникнуть. Их объяснения расчитанны на людей глубоко в теме. Я например смотрю на это как на китайский.

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

 

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

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


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

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

 

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

 

нет, VHDL я понимаю и пишу. не все еще слава богу, но я продвигаюсь.

я так понимаю тут аналогия с контролерами. по JTAG прошивается загрузочный интерфейс (прослойка) а потом через него можно прошивать и через UART.

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


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

Нормально программируется по JTAG без лишних телодвижений и ниосов.

Перед программированием выбирается либо sof файл и прошивка "временная" до новой или выключения, либо pof файл и прошивка хранится до нового программирования.

post-51111-1486495306_thumb.jpg

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


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

Нормально программируется по JTAG без лишних телодвижений и ниосов.

Про джитаг никто не спорит. Речь про что-то типа бутлоадера через уарт. Так вот, проводя аналогию с МК, бутлоадера в роме тут вроде как нет совсем.

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


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

Тут себе нужно задать вопрос - а есть ли польза в конкретном проекте от встроенного флеша? Если встроенный флеш дает больше проблем, чем пользы, то есть еще 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"

Изменено пользователем goodsoul

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


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

В Cyclone III внешняя загрузочная память. Есть программа на С# которая загружает *.rpd файл через UART.

В MAX10 загрузочная память находиться внутри. Как мне загрузить прошивку в MAX10? Нужен какой то бутлодер или есть какой то другой механизм?

Внешний микроконтроллер, по сравнению с ПЛИС стоит копейки. Включите его между флэшью и JTAG... Или же по SPI можно грузить. Ну и к нему же дайте UART. На Си напишите загрузчик и тестировщик для ПЛИС... Все юудет гораздо дешевле, чем гробить ресурсы ПЛИС на "самопрограммирование пр UART"...

 

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


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

Включите его между флэшью и JTAG...

вы не поняли. Флэшь не доступна ниоткуда кроме как изнутри плиса. Внутри плиса она доступна по джитагу или этим самым IP.

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


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

вы не поняли. Флэшь не доступна ниоткуда кроме как изнутри плиса. Внутри плиса она доступна по джитагу или этим самым IP.

Так все таки же доступна по джитагу... Автомат джитага воспроизвести на Си - не проблема. И последовательность для загрузки получит в кодах какого-нибудь Стапла - тоже не проблема...

А микроконтроллер внутри ПЛИС загружают, чтобы соблюсти времянки по прошивке страниц флэша...

 

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


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

Так все таки же доступна по джитагу... Автомат джитага воспроизвести на Си - не проблема. И последовательность для загрузки получит в кодах какого-нибудь Стапла - тоже не проблема...

А микроконтроллер внутри ПЛИС загружают, чтобы соблюсти времянки по прошивке страниц флэша...

Все зависит от приемлемости таких усердий ради этого.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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