Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CC1101 и MSP430F5438
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
mzhelezkin
Здравствуйте. Я не однократно писал на этом форуме. Теперь есть еще проблема, может кто подскажет. Кто работал с CC.

Есть две отладочные платы MSP-EXP430F5438. Первое что сделали, настроили воспроизведение голоса с микрофона на звуковой выход через наушники. В качестве ЦАП использовали ШИМ на Timer B. Для настройки использовали статью SLAA116 («Using PWM Timer_B as a DAC»). Перевод данной статьи можно посмотреть по этой ссылке http://www.gaw.ru/html.cgi/txt/app/micros/msp430/slaa116.htm
Для простоты разрядность АЦП и счетчиков Таймера B выбрали 8 бит. Тактирование АЦП и Таймера B осуществляется от SMCLK, частота которого равна 8,36 МГц. Использовав предделитель, частоту тактирования АЦП сделали равной 1,045 МГц. И частота дискретизации 32,46 кГц. В соответствии со статьей, указанной выше, частота тактирования Таймера B равна 8,36 МГц. Настроив таким образом работу АЦП и Таймера B, получили хорошее воспроизведение речи.
Дальше, для радиопередачи, используем микросхемы CC1101, настроенные на частоту 433 МГц. На приборе проверили антенны, у них рабочая частота 433 МГц. В качестве примера, использовали статью SLAA325A («MSP430 interface to CC1100/CC2500 code library») и, указанный в статье пример. Ссылка для скачивания примера http://www.ti.com/lit/zip/slaa325 (указана в статье). Зашив эту программу в контроллеры, платы стали перемигиваться светодиодами (нажимаешь кнопку на одной плате – загорается светодиод на другой).
Далее. В эту программу вносим небольшие изменения. В обработчике прерывания нажатия кнопки есть функция передачи. Она передает данные при нажатии на кнопку. Мы просто заменяем эти данные на свои (из АЦП). И зацикливаем эту функцию в бесконечном цикле. Т.е. при нажатии на кнопку будут передаваться данные из АЦП постоянно. В обработчике прерывания приема, опять же, есть функция приема данных. Она записывает принятые данные в определенный регистр. Мы просто меняем этот регистр на свой (регистр таймера cool.gif.
И еще одно. Так как для работы АЦП и Таймера B нам пришлось увеличить частоту SMCLK, то для работы UART в режиме SPI необходимо использовать предделитель частоты.
Все, больше никаких изменений в программу мы не внесли.
Голос в наушниках получается плохо разборчивый. Такое ощущение, что некоторые отсчеты АЦП пропадают.
Смотрели по спектроанализатору, передатчик передает на частоте 433 МГц.
И еще, радиопередача не стабильна. К примеру, платы стоят друг от друга на расстоянии максимум 15-20 см. Их не трогаешь, а радиопередача прекращается. Для возобновления радиопередачи необходимо нажать кнопку RESET, либо на принимающей плате, либо на передающей. Иногда радиопередача возобновляется сама по себе.
rx3apf
Цитата(mzhelezkin @ Feb 10 2010, 10:55) *
И еще, радиопередача не стабильна. К примеру, платы стоят друг от друга на расстоянии максимум 15-20 см. Их не трогаешь, а радиопередача прекращается. Для возобновления радиопередачи необходимо нажать кнопку RESET, либо на принимающей плате, либо на передающей. Иногда радиопередача возобновляется сама по себе.

Из практического опыта - CC1100(очевидно, и 1101) "затыкаются" при близком расположении (при очень большом уровне радиочастотного сигнала). Скажем, без антенн рядом, при +10 dBm - нормально, хоть в 5 сантиметрах. Если с антеннами - то минимум на метр надо разнести, иначе приемник просто не ловит синхронизацию, или ловит неустойчиво. Если уменьшить выходную мощность до минимума - расстояние можно уменьшить.

Ну а что до проблем с передачей речи - надо начинать с анализа надежности канала. Генерируем тестовые пакеты, контролируем прохождение, собираем статистику пропадания. И вот когда канал работает устойчиво - начинаем работать с реальными данными. Помня о том, что это реальный эфир, и в принципе потери (из-за помех) неизбежны (ну, в пределах комнаты, с большой мощностью - все должно работать 100%, если только совсем рядом нет мощной помехи).
fmdost
А какой тип модуляции?
Если ACK, то надо читать еррату.
Если FSK, то действительно, покрутите мощность.
Ещё, неплохо вывести на консоль RSSI.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.