Господа, а как правильно подстраивать частоту для работы с быстрыми асинхронными интерфейсами? Если требуется, например, 13 мегабит/с. Почитал про то как настраиваются PLL в STM32, но там все PLL которые возможно настроить на ходу вроде-как от 24МГц. Думаю снимать данные со всего порта параллельно и чем-то тактировать регистры, но вот чем : ) Подстраивать нужно на ходу, т.е. хотелось бы иметь возможность корректировать тактовую частоту в пределах +-5%
Комментарии: 7
Kaktys
PLL + clock recovery обычно делают, но это в общей теории
Anonim
Да, похоже на то что нужно, спасибо : ) Пойду изучать
Denys
ИМХО в асинхронных интерфейсах нужна периферия которая считывает состояние бита с oversampling. А подстройка частоты/PLL микроконтроллера это неправильное решение и пока вы подстроитесь - потеряете данные. Хотя конечно все зависит от протокола, теоретически если можно позволить передавать подобие preamble и корректировать понемногу, и плавать будет не сильно - то может и "прокатит". Но это именно "прокатит", а не правильно.
Anonim
Протокол подразумевает, что необходимо подстроить частоту, вплоть до погрешности в 0.3%, есть даже отдельный этап на котором частоты синхронизируется и также они синхронизируются в процессе через референсные промежутки. Думал над оверсемплингом, но передумал ) А время перестроить частоту там есть
Firelander
подстраивать или настраивать? подстраивать как правило ненужно, периферия сделана с учетом возможного небольшого расхождения частот. А по части настройки, вроде бы 12 мбит максимальная частота юарта для стандартной стмки при стандартном тактировани, хотя могу ошибаться ты usb что ли программный пишешь? На высоких частотах аппаратной возможности у контроллера так точно настраивать частоту нет. Ну либо ставить внешний vco и им управлять
Denys
Или как вариант как-то через clock recovery. Но не уверен актуально ли, мало данных по задаче ТС.
Anonim
Актуально, потому что по-хорошему оно должно уметь подстраиваться. Это не задача, а просто вопрос, чтобы выяснить чем пользуются для настройки частоты тактирования и не уйти в неправильном направлении, хехе. А вот для задачи уже просто стабильно выдать одну частоту не достаточно, так как нет гарантий, что устройство с которым будет происходить обмен данными не врёт по скорости передачи. И тогда уже нужно подстраиваться по нему, до 0.3% (из спецификации протокола)