реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Можно ли работать с USB при частоте ядра 96 или 192 МГц?, а также поставить приоритет прерывания выше приоритета таймера FreeRTO
OlegHmt
сообщение Dec 5 2006, 11:56
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 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 дам приоритет ниже, нежели моему прерыванию?
Go to the top of the page
 
+Quote Post
VAI
сообщение Dec 5 2006, 13:49
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



А, извините, сколько по даташиту максимальная MCK?
стр. 606 в http://atmel.com/dyn/resources/prod_documents/doc6120.pdf


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post
OlegHmt
сообщение Dec 5 2006, 16:01
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
gladov
сообщение Dec 6 2006, 10:49
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 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?


Смотря что значит "работал". Ведь любой производитель, анонсируя максимальную частоту, дает ее для худшего случая допустимых условий эксплуатации. Кроме того, для различной периферии допустима различная максимальная частота. Поэтому в большинстве случаев возможен некий оверклокинг, только к чему это может привести? Можно огрести очень редкие, практически недиагностируемые, но очень большие проблемы. Вполне возможно, что в проце стоит быстрое ядро, а максимальную тактовую занизили для периферии, вот он и задышал у Вас на столе при идеальных для него условиях
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Dec 19 2006, 10:46
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(OlegHmt @ Dec 5 2006, 11:56) *
1. Собственно вопрос - может ли ядро процесора работать на частотах 96 или 192 МГц при условии использования USB?


Вероятно да. Но в обработчиках прерываний надо будет проверять, что биты которые вы установили или сбросили в USB устройстве действительно успели сбросится до следующей операции.

Попробуйте также устанавливать делитель USB одновременно или раньше процессорного, чтоб на него не попадала неправильная частота.

Кроме того Атмел снизил максимальную частоту с 66 до 55 МГц по каким-то причинам. Я разгонял свой проц до 96 МГц и он прекрасно работал. Температура кристала не менялась. Но когда я засунул плату в пластиковый корпус содержащий БП на 2Вт, то через 30 минут процессор частично или полностью повисал.
Go to the top of the page
 
+Quote Post
OlegHmt
сообщение Dec 19 2006, 11:56
Сообщение #6


Участник
*

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



Пока что остановился на стандартной рабочей частоте 48МГц и пробую всё успеть работая на ней. Если уж будут проблемы буду поднимать частоту и проверять ядро на стабильность smile.gif.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 19 2006, 14:29
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(OlegHmt @ Dec 19 2006, 11:56) *
Если уж будут проблемы буду поднимать частоту и проверять ядро на стабильность smile.gif.

По-моему, при возникновении проблем следует искать правильное решение, а не создавать себе новые.
Go to the top of the page
 
+Quote Post
OlegHmt
сообщение Dec 19 2006, 15:26
Сообщение #8


Участник
*

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



Цитата
По-моему, при возникновении проблем следует искать правильное решение, а не создавать себе новые.


Согласен, если такое решение существует.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 03:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.02313 секунд с 7
ELECTRONIX ©2004-2016