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

Нужно вывести частоту с PLL на пин .

Если я правильно понял (поправьте если ошибаюсь), то у каждого PLL есть лишь один пин (PLL#_CLKOUT)

на который можно подать его выход, и то только с канала C0.

Вроде всё понятно.

А как сделать так чтобы в зависимости от состояния некоего пина (или внутр. регистра или еще как)

иметь возможность получить на пине CLKOUT разные частоты не меняя прошивку?

 

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


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

Приветствую!
 

34 minutes ago, zombi said:

...

А как сделать так чтобы в зависимости от состояния некоего пина (или внутр. регистра или еще как) иметь возможность получить на пине CLKOUT разные частоты не меняя прошивку?

Как минимум для этого надо почитать  Intel MAX 10 Clocking and PLL Architecture and Features  2.3.14. PLL Reconfiguration.

Удачи! Rob. 

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


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

1 hour ago, RobFPGA said:

Intel MAX 10 Clocking and PLL Architecture and Features

Почитал, но как то туманно всё.

Как понял, надо загрузить в сдвиговый регистр PLL 144 бита данных (в которых должны быть новые значения всех внутренних регистров PLL)

и "дёрнуть" сигналом CONFIGUPDATE.

Где взять эти 144 бита? Где и в каком виде эти данные должны находиться?

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


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

Приветствую!

11 minutes ago, zombi said:

Где взять эти 144 бита? Где и в каком виде эти данные должны находиться?

Где взять: рассчитать! нужные коэффициенты (или содрать из визарда с нужными параметрами)  

В каком виде:  тут уж вам виднее что проще - внутри прошивки в виде ROM, снаружи во FLASH или на перфоленте/IDE/SATA/SSD диске :yes:

Удачи! Rob.

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


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

53 minutes ago, RobFPGA said:

или на перфоленте

О! точно.

А получится ли сделать так:

сигналы scandata,scanclk,scanclkena,configupdate,areset просто вывести на пины, и внешним МК выполнить всё необходимое?

Ведь scandata,scanclk,scanclkena это вообще просто SPI.

 

Или нужно обязательно использовать ALTPLL_RECONFIG?

 

1.jpg

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


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

4 hours ago, zombi said:

А получится ли сделать так:

сигналы scandata,scanclk,scanclkena,configupdate,areset просто вывести на пины, и внешним МК выполнить всё необходимое?

ну, если кажется что так проще......

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


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

4 часа назад, zombi сказал:

О! точно.

А получится ли сделать так:

сигналы scandata,scanclk,scanclkena,configupdate,areset просто вывести на пины, и внешним МК выполнить всё необходимое?

Ведь scandata,scanclk,scanclkena это вообще просто SPI.

 

Или нужно обязательно использовать ALTPLL_RECONFIG?

 

1.jpg

Если интересует - могу завтра выложить свой пример работы по реконфигурации PLL. Правда он на VHDL и для Cyclone3, однако судя по интерфейсу должен подойти с минимальными доработками.

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


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

2 hours ago, Flip-fl0p said:

Если интересует - могу завтра выложить свой пример работы по реконфигурации PLL. Правда он на VHDL и для Cyclone3, однако судя по интерфейсу должен подойти с минимальными доработками.

Выкладывайте. Можете сразу сделать ссылку здесь

:)

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


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

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


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

On 2/21/2020 at 7:44 AM, Flip-fl0p said:

Добавил модуль:

Ух ты ж ёханый бабай!

Столько писанины и только для того чтобы загнать 144 бита в сдвиговый регистр и передёрнуть CONFIGUPDATE!?

Извините, но это за гранью моего понимания :shok::wacko2:

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


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

54 минуты назад, zombi сказал:

Ух ты ж ёханый бабай!

Столько писанины и только для того чтобы загнать 144 бита в сдвиговый регистр и передёрнуть CONFIGUPDATE!?

Извините, но это за гранью моего понимания :shok::wacko2:

А что Вас смутило ? 

Реконфиг PLL состоит из двух этапов:

Первый этап мы загружаем новый конфиг в PLL. Это делается посредством альтеровского IP ядра PLL_RECONFIGURATOR, которому управляющий автомат выдает соответствующую команду.

Второй этап: после того, как у нас была загружена новая конфигурация мы дергаем вывод reconfig модуля PLL_RECONFIGURATOR, и у нас активируется новый конфиг.

Все, кроме управляющего автомата - рекомендации от Altera.

Из самописных модулей - по сути только простой управляющий автомат, задачей которого - после того, как придет команда сменить конфиг, сохранить этот запрос на время работы модуля, в нужные моменты времени выдать команды ядру PLL_RECONFIGURATOR, а также сообщать внешним устройствам свой статус reconfig_done и  ready

Приведите пример, как это можно более просто написать. И самое главное - понятнее ! 

Для меня главное - что я этот код могу спокойно применять, в нем легко разобраться, его легко поддерживать. Я вот глянул этот код, написанный полтора года назад - и сразу понял, как он работает. И это  - главное.

 

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


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

17 minutes ago, Flip-fl0p said:

Приведите пример, как это можно более просто написать.

Нее. У меня задача простая.

По включению питания, МК (если необходимо) должен перенастроить PLL на нужную частоту.

18 байт конфигурации лежат в прошивке МК.

Сейчас просто поэкспериментировал, вывел сигналы необходимые для конфигурации (scandata,scanclk,scanclkena,configupdate,areset) на внешние пины плиса.

А МК ногодрыгом делает всё что надо.

Причем как оказалось ARESET можно и не формировать - и без него всё работает.

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


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

44 минуты назад, zombi сказал:

Нее. У меня задача простая.

По включению питания, МК (если необходимо) должен перенастроить PLL на нужную частоту.

18 байт конфигурации лежат в прошивке МК.

Сейчас просто поэкспериментировал, вывел сигналы необходимые для конфигурации (scandata,scanclk,scanclkena,configupdate,areset) на внешние пины плиса.

А МК ногодрыгом делает всё что надо.

Причем как оказалось ARESET можно и не формировать - и без него всё работает.

Идеологический вопрос. Не правильнее ли хранить конфиг PLL внутри ПЛИС, а МК будет лишь давать команду начала реконфига ? Как мне кажется такой вариант более надежный, за счет того, что нет вероятности возникновения ошибки в процессе передачи МК ---> ПЛИС. 

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


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

Нисколько не надёжнее.

Думаете МК может сойти с ума и начать дёргать своими ногами в эпилептическом припадке?

Да и у меня 10М02, в талмуде где-то читал что не может он в своем флеше данные для конфигурации хранить.

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


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

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

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

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

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

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

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

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

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

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