roboforum.ru

Технический форум по робототехнике.

Калибровка СС2500

Калибровка СС2500

blindman » 14 окт 2008, 04:46

В микросхеме СС2500, как и во всех подобных, используется синтезатор частоты с ФАПЧ. Опорная частота стабилизируется кварцевым резонатором. Проблема состоит в том, что резонаторы имеют разброс значения частоты. Даже при использовании резонатора с точностью +-20ppm, разброс частоты резонаторов может быть до +-540Гц. Это приводит к тому, что даже при использовании резонаторов с одинаковой номинальной частотой, частоты на выходе синтезатора могут различаться на +-48кГц. В результате повышается процент ошибок, особенно на высоких скоростях передачи.

СС2500 имеет 3 конфигурационных регистра : FREQ0, FREQ1, FREQ2, предназначенных для установки базовой частоты. Для калибровки нужно измерить реальную частоту резонатора.

eskiz.png
Схема устройства калибровки

calibrate.zip
Исходный код и прошивка
(9.99 КиБ) Скачиваний: 64


Чтобы обеспечить достаточно большой период измерения без использования прерываний (для повышения точности) использован "часовой" кварц (32768Гц). Тактирование МК осуществляется от внутреннего RC-генератора. Результат измерения выдается через UART. Так как частота RC-генератора не устанавливается точно, для подстройки скорости передачи через UART используется подстроечный резистор. Частота кварцевого резонатора подключенного к CC2500 делится на 4 и с вывода GDO2 подается на вход таймера-счетчика 1. Подключение входа таймера-счетчика 1 показано на схеме для текущей схемы "мегаплаты" EdGull'а.

Процедура калибровки:

UART через адаптер подключить к компьютеру. Запустить терминал, установить скорость 19200 бит/с. После включения питания программа выдает в UART строки, содержащие информацию о текущей скорости передачи. Вращением подстроечного резистора добиться уверенного приема данных через UART. После этого в терминале нажать Enter. Начнется измерение, после чего будет выведено измеренное значение частоты резонатора и вычисленые значения регистров FREQ0, FREQ1, FREQ2. Один цикл измерения занимает 8 секунд. Значения регистров рассчитываются для базовой частоты (т.е частоты канало 0) 2403 МГц.

Внимание:
  1. программа написана для ATMega8, не ATMega88
  2. все устройства, предназначенные для совместной работы, должны калиброваться с использованием одного и того же часового кварца

Re: Калибровка СС2500

blindman » 02 мар 2009, 13:02

Обнаружен баг в программе. Частота кварца CC2500 для измерения делилась на 4 и подавалась на вход таймера-счетчика МК. Для кварца 27МГц эта частота получалась 6.75 МГц - что выше допустимой для МК (должно быть не более половины тактовой частоты, то есть 4 МГц). Мне просто попались МК, которые смогли "проглотить" высокую частоту.

Прикладываю исправленную прошивку - частота кварца теперь делится на 8.
Вложения
calibrate.zip
(10.05 КиБ) Скачиваний: 33

Re: Калибровка СС2500

avr123.nm.ru » 02 мар 2009, 13:33

Интересное устройство.

Re: Калибровка СС2500

bolt » 03 мар 2009, 10:58

измерять лучше не саму частоту, а их разность для двух девайсов, imho

Re: Калибровка СС2500

blindman » 03 мар 2009, 11:06

Мне это не кажется очевидным. Обоснуй.

Re: Калибровка СС2500

bolt » 03 мар 2009, 18:52

дабы пара модулей устойчиво работала между собой, должны совпадать частоты обоих PLL генераторов. И не столь важно чему эти частоты равны.
В старых 900МГц беспроводниках не было цифровой калибровки, а просто стоял подстроечный конденсатор в опорном генераторе. Аналогично я расстраивал свою пару кварцев в SSB сигнализации на 1кГц, при несущей 14*2=28Мгц, поскольку нулевые биения просто не слышно.

Re: Калибровка СС2500

blindman » 03 мар 2009, 19:53

bolt писал(а):дабы пара модулей устойчиво работала между собой, должны совпадать частоты обоих PLL генераторов. И не столь важно чему эти частоты равны.

Так я и не гарантирую абсолютно точного измерения. Просто берем достаточно стабильный кварц и объявляем его эталоном, от него и пляшем. Это у себя в приемнике ты на слух биения воспринимал, а здесь такое очевидно не возможно

Re: Калибровка СС2500

Виталий » 03 мар 2009, 19:59

Я полный профан в этом деле, но почему за эталон не взять один из пары настраиваемых приборов?

Re: Калибровка СС2500

blindman » 03 мар 2009, 20:09

В принципе нет никакой разницы, что объявлять эталоном. Просто надо этот эталон выбрать и всегда его использовать. Если делаешь всего 2 устройства - можно взять за эталон одно из них. Если делаешь партию - наверно имеет смысл сделать отдельный калибратор и установить в него стабильный кварц.

Re: Калибровка СС2500

boez » 03 мар 2009, 20:20

А зачем такая хитрая система с уартом и подстроечником? С основным кварцем никак не получалось? Там же вроде преддделители имеются в меге, да и прерывания в такой системе не нужны - пусть будут 2 таймера, один считает кварц атмеги, второй - сигнал СС2500, крутим примерно 8 секунд цикл ожидания с отловом переполнений и затем шустренько хватаем оба счетчика подряд (разница во времени - доли мкс) и делим один на другой. Точность - доли или малые единицы ppm. Подсчет переполнений - некритичная по времени задача.

Это раз. А два - у СС2500 есть еще одна интересная фича. Откалибровав одну плату по хорошему кварцу, или просто взяв ее за эталон, остальные можно калибровать чисто программно, без подключений. Для этого используем регистр FREQEST приемника при приеме сигнала от эталонного передатчика. Разрешение - чуть меньше 1 ppm, а вот про точность сходу не скажешь, пробовать надо.

Да, а еще любой генератор можно откалибровать по часам точного времени - запустить его на сутки и посчитать тики.

Сорри, щас не могу подкрепить идеи прогами - некогда :(

Re: Калибровка СС2500

bolt » 03 мар 2009, 20:38

Так я и не гарантирую абсолютно точного измерения.

Абсолютное измерение нам и не нужно. Модули работают в паре. Достаточно если частоты опорных генераторов просто совпадают.

Re: Калибровка СС2500

blindman » 03 мар 2009, 20:44

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

Да, и рассуждать о том как можно было бы сделать - можно очень много. Я выбрал для себя способ, который мне показался наиболее простым в реализации, и этот девайс реально использовался мною и еще одним человеком (он и обнаружил баг в программе). Тем кому подстроечник кажется неудобным - предлагаю самостоятельно модифицировать программу, и выложить сюда ;)

Re: Калибровка СС2500

EdGull » 03 мар 2009, 20:47

да-да... просим-просим другие варианты калибровки!!! :Bravo:

Re: Калибровка СС2500

blindman » 03 мар 2009, 20:47

bolt писал(а):Абсолютное измерение нам и не нужно. Модули работают в паре. Достаточно если частоты опорных генераторов просто совпадают.

Я не пойму, что ты хочешь сказать. Ты пишешь очевидные вещи, которые никак не противоречат ни идее девайса, ни его реализации.

Re: Калибровка СС2500

bolt » 04 мар 2009, 00:46

Если нужна серия с одинаковыми частотами, то за базу лучше взять один из модулей, как уже предложили, а не просто частотомер. А если нужно просто настроить пару, то базой может служить один из двух модулей.
Идея в том, что высокоточный измеритель на МК со своим кварцем не нужен. Достаточно просто сравнить кол-во импульсов по двум входам.


Rambler\'s Top100 Mail.ru counter