roboforum.ru

Технический форум по робототехнике.
Текущее время: 20 апр 2025, 17:26

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Калибровка СС2500
СообщениеДобавлено: 14 окт 2008, 04:46 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
В микросхеме СС2500, как и во всех подобных, используется синтезатор частоты с ФАПЧ. Опорная частота стабилизируется кварцевым резонатором. Проблема состоит в том, что резонаторы имеют разброс значения частоты. Даже при использовании резонатора с точностью +-20ppm, разброс частоты резонаторов может быть до +-540Гц. Это приводит к тому, что даже при использовании резонаторов с одинаковой номинальной частотой, частоты на выходе синтезатора могут различаться на +-48кГц. В результате повышается процент ошибок, особенно на высоких скоростях передачи.

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

Вложение:
Комментарий к файлу: Схема устройства калибровки
eskiz.png
eskiz.png [ 14.19 КиБ | Просмотров: 3703 ]

Вложение:
Комментарий к файлу: Исходный код и прошивка
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. все устройства, предназначенные для совместной работы, должны калиброваться с использованием одного и того же часового кварца

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Калибровка СС2500
СообщениеДобавлено: 02 мар 2009, 13:02 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Обнаружен баг в программе. Частота кварца CC2500 для измерения делилась на 4 и подавалась на вход таймера-счетчика МК. Для кварца 27МГц эта частота получалась 6.75 МГц - что выше допустимой для МК (должно быть не более половины тактовой частоты, то есть 4 МГц). Мне просто попались МК, которые смогли "проглотить" высокую частоту.

Прикладываю исправленную прошивку - частота кварца теперь делится на 8.


Вложения:
calibrate.zip [10.05 КиБ]
Скачиваний: 33

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Калибровка СС2500
СообщениеДобавлено: 02 мар 2009, 13:33 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Интересное устройство.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Калибровка СС2500
СообщениеДобавлено: 03 мар 2009, 10:58 
Не в сети

Зарегистрирован: 01 дек 2008, 19:21
Сообщения: 281
измерять лучше не саму частоту, а их разность для двух девайсов, imho


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Калибровка СС2500
СообщениеДобавлено: 03 мар 2009, 11:06 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Мне это не кажется очевидным. Обоснуй.

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Калибровка СС2500
СообщениеДобавлено: 03 мар 2009, 18:52 
Не в сети

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Калибровка СС2500
СообщениеДобавлено: 03 мар 2009, 19:53 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
bolt писал(а):
дабы пара модулей устойчиво работала между собой, должны совпадать частоты обоих PLL генераторов. И не столь важно чему эти частоты равны.

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

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Калибровка СС2500
СообщениеДобавлено: 03 мар 2009, 19:59 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
Я полный профан в этом деле, но почему за эталон не взять один из пары настраиваемых приборов?

_________________
Все новости о моих проектах http://savethebest.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Калибровка СС2500
СообщениеДобавлено: 03 мар 2009, 20:09 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
В принципе нет никакой разницы, что объявлять эталоном. Просто надо этот эталон выбрать и всегда его использовать. Если делаешь всего 2 устройства - можно взять за эталон одно из них. Если делаешь партию - наверно имеет смысл сделать отдельный калибратор и установить в него стабильный кварц.

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Калибровка СС2500
СообщениеДобавлено: 03 мар 2009, 20:20 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
А зачем такая хитрая система с уартом и подстроечником? С основным кварцем никак не получалось? Там же вроде преддделители имеются в меге, да и прерывания в такой системе не нужны - пусть будут 2 таймера, один считает кварц атмеги, второй - сигнал СС2500, крутим примерно 8 секунд цикл ожидания с отловом переполнений и затем шустренько хватаем оба счетчика подряд (разница во времени - доли мкс) и делим один на другой. Точность - доли или малые единицы ppm. Подсчет переполнений - некритичная по времени задача.

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Калибровка СС2500
СообщениеДобавлено: 03 мар 2009, 20:38 
Не в сети

Зарегистрирован: 01 дек 2008, 19:21
Сообщения: 281
Цитата:
Так я и не гарантирую абсолютно точного измерения.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Калибровка СС2500
СообщениеДобавлено: 03 мар 2009, 20:44 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Использовать FREQEST имеет смысл на небольшой дальности - при слабом сигнале это ненадежно. Конечно можно калибровать в лабораторных условиях, но тогда это мало отличается от прямого измерения.

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

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Калибровка СС2500
СообщениеДобавлено: 03 мар 2009, 20:47 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
да-да... просим-просим другие варианты калибровки!!! :Bravo:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Калибровка СС2500
СообщениеДобавлено: 03 мар 2009, 20:47 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
bolt писал(а):
Абсолютное измерение нам и не нужно. Модули работают в паре. Достаточно если частоты опорных генераторов просто совпадают.

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

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Калибровка СС2500
СообщениеДобавлено: 04 мар 2009, 00:46 
Не в сети

Зарегистрирован: 01 дек 2008, 19:21
Сообщения: 281
Если нужна серия с одинаковыми частотами, то за базу лучше взять один из модулей, как уже предложили, а не просто частотомер. А если нужно просто настроить пару, то базой может служить один из двух модулей.
Идея в том, что высокоточный измеритель на МК со своим кварцем не нужен. Достаточно просто сравнить кол-во импульсов по двум входам.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO