|
|
  |
Можно ли работать с USB при частоте ядра 96 или 192 МГц?, а также поставить приоритет прерывания выше приоритета таймера FreeRTO |
|
|
|
Dec 5 2006, 11:56
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 5-12-06
Пользователь №: 23 146

|
Потихоньку разбираюсь с AT91SAM7X256 на Olimex'совской плате используя RowleyCrossWorks. При реализации поставленой передо мной задачей возникли два вопроса. Может кто-то сможет что и посоветовать, за что буду очень благодарен.
1. Собственно вопрос - может ли ядро процесора работать на частотах 96 или 192 МГц при условии использования USB? По даташиту вроде бы можна. То-есть PLL ставиться на частоту 96 или 192, с него через прескалер с коэфициентом 1 эта же частота идёт на процесор и на MCK, а USB через собственный делитель (на 2 или 4 соответсвенно) делит частоту PLL к 48. И должно работать, так как по даташиту блок USB нуждается в двух частотах 48 для работы 12-ти мегагерцовой части и MCK (любой частоты) для работы остальной части. Но это в теории. На практике я этого добиться не смог. А именно: Мучаю пример LwIP для кросворкса из пакета FreeRTOS. В примере реализован виртуальный ком порт через юсб. В начальных установках проца выбраны для PLL коэфициенты 5 для делителя и 25 для умножителя, что приводит к частоте 96 МГц (плюс-минус заданный процент точности), в прескалере установлен делитель 2, в юсб - тоже 2. В результате частота ядра равна 48. Винда видит виртуальный порт и нормально с ним работает. Но когда я ставлю делитель прескалера в 1, то-есть частоту ядра и MCK повышаю до 96 (оставляя при этом частоту USB 48), винда перестаёт видеть виртуальный порт. Выходит что при использовании USB частота ядра должна быть равна частоте USB - 48, или может я какую-то ещё настройку пропустил?
2. Второй вопрос касается работы с прерываниями: В моей задаче запускается таймер, по прерыванию от которого в SPI сбрасывается несколько байт. Мне важно, чтобы прерывания от таймера не прерывались другими прерываниями, в том числе и прерываниями FreeRTOS. Какие могут быть последствия, если я прерыванию тиков FreeRTOS дам приоритет ниже, нежели моему прерыванию?
|
|
|
|
|
Dec 5 2006, 16:01
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 5-12-06
Пользователь №: 23 146

|
Цитата(VAI @ Dec 5 2006, 12:49)  А, извините, сколько по даташиту максимальная MCK? стр. 606 в http://atmel.com/dyn/resources/prod_documents/doc6120.pdfПросмотрел я даташит ещё раз - похоже я таки не прав. Максимальная частота 55 МГц, но тогда вопрос - зачем нужна возможность гнать PLL аж до 200 МГц? И второй вопрос почему же, всё таки процесор работал, когда я ставил PLL 192, а прескалер в 1?
Сообщение отредактировал OlegHmt - Dec 5 2006, 16:20
|
|
|
|
|
Dec 6 2006, 10:49
|
Частый гость
 
Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687

|
Цитата(OlegHmt @ Dec 5 2006, 16:01)  Цитата(VAI @ Dec 5 2006, 12:49)  А, извините, сколько по даташиту максимальная MCK? стр. 606 в http://atmel.com/dyn/resources/prod_documents/doc6120.pdfПросмотрел я даташит ещё раз - похоже я таки не прав. Максимальная частота 55 МГц, но тогда вопрос - зачем нужна возможность гнать PLL аж до 200 МГц? И второй вопрос почему же, всё таки процесор работал, когда я ставил PLL 192, а прескалер в 1? Смотря что значит "работал". Ведь любой производитель, анонсируя максимальную частоту, дает ее для худшего случая допустимых условий эксплуатации. Кроме того, для различной периферии допустима различная максимальная частота. Поэтому в большинстве случаев возможен некий оверклокинг, только к чему это может привести? Можно огрести очень редкие, практически недиагностируемые, но очень большие проблемы. Вполне возможно, что в проце стоит быстрое ядро, а максимальную тактовую занизили для периферии, вот он и задышал у Вас на столе при идеальных для него условиях
|
|
|
|
|
Dec 19 2006, 11:56
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 5-12-06
Пользователь №: 23 146

|
Пока что остановился на стандартной рабочей частоте 48МГц и пробую всё успеть работая на ней. Если уж будут проблемы буду поднимать частоту и проверять ядро на стабильность  .
|
|
|
|
|
Dec 19 2006, 15:26
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 5-12-06
Пользователь №: 23 146

|
Цитата По-моему, при возникновении проблем следует искать правильное решение, а не создавать себе новые. Согласен, если такое решение существует.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|