Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Можно ли работать с USB при частоте ядра 96 или 192 МГц?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
OlegHmt
Потихоньку разбираюсь с 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 дам приоритет ниже, нежели моему прерыванию?
VAI
А, извините, сколько по даташиту максимальная MCK?
стр. 606 в http://atmel.com/dyn/resources/prod_documents/doc6120.pdf
OlegHmt
Цитата(VAI @ Dec 5 2006, 12:49) *
А, извините, сколько по даташиту максимальная MCK?
стр. 606 в http://atmel.com/dyn/resources/prod_documents/doc6120.pdf


Просмотрел я даташит ещё раз - похоже я таки не прав. Максимальная частота 55 МГц, но тогда вопрос - зачем нужна возможность гнать PLL аж до 200 МГц? И второй вопрос почему же, всё таки процесор работал, когда я ставил PLL 192, а прескалер в 1?
gladov
Цитата(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?


Смотря что значит "работал". Ведь любой производитель, анонсируя максимальную частоту, дает ее для худшего случая допустимых условий эксплуатации. Кроме того, для различной периферии допустима различная максимальная частота. Поэтому в большинстве случаев возможен некий оверклокинг, только к чему это может привести? Можно огрести очень редкие, практически недиагностируемые, но очень большие проблемы. Вполне возможно, что в проце стоит быстрое ядро, а максимальную тактовую занизили для периферии, вот он и задышал у Вас на столе при идеальных для него условиях
_4afc_
Цитата(OlegHmt @ Dec 5 2006, 11:56) *
1. Собственно вопрос - может ли ядро процесора работать на частотах 96 или 192 МГц при условии использования USB?


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

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

Кроме того Атмел снизил максимальную частоту с 66 до 55 МГц по каким-то причинам. Я разгонял свой проц до 96 МГц и он прекрасно работал. Температура кристала не менялась. Но когда я засунул плату в пластиковый корпус содержащий БП на 2Вт, то через 30 минут процессор частично или полностью повисал.
OlegHmt
Пока что остановился на стандартной рабочей частоте 48МГц и пробую всё успеть работая на ней. Если уж будут проблемы буду поднимать частоту и проверять ядро на стабильность smile.gif.
aaarrr
Цитата(OlegHmt @ Dec 19 2006, 11:56) *
Если уж будут проблемы буду поднимать частоту и проверять ядро на стабильность smile.gif.

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


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