Перейти к содержанию

Подключение Трансивера Cc1101 К Arduino


Рекомендуемые сообщения

Доброго времни суток!

Не могу разобраться с радиомодулем на базе микросхемы CC1101 ( datasheet ). Читал его, понял не особо. Возникли вопросы:

1) Как читать и писать значения регистров? Надо по SPI подать бит записи или чтения (какой?) и адресс? А потом следующим байтом значение? Или в одном байте все?

2) Аналогично с коммандами (стробами)

3) И самый главный впрос какие регистры отвечают за прием и передачу данных, где хранятся переданные байты, куда записывать передаваемые байты?

Надеюсь, что кто-нибудь поможет разобраться. Заранее спасибо!

Дополнение #1:

В даташите дана таблица адресов SPI и регистров. В шапке таблицы написано, что для записи в таблицу используется +0x40, для чтения +0xC0. Далее даны адреса.

Каким образом надо записывать или считывать по этим адрессам. Если делать так, как написано Здесь Darkus'ом: 0x40Адресс, то это число много больше, чем байт. И еще остается вопрос, как слать данные. Так как все же правильно?

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Промучился с этой штукой день, практически ничего не получил.

Для начала конфигурирую:

1) беру SmartRF, выбираю трансивер, выбираю один из режимов по-умолчанию (433 Мгц, 1.2 кбод, частотная модуляция). Экспортирую регистры (адрес и значение), те, которые СмартРФ предлагает экспортировать по-умолчанию.

2)Заганию адреса и значения в массив

3)Записываю регистры. По SPI передаю сначала адрес регистра+0x40 (бурст запись), потом, вторым байтом передаю данные.

SPI.transfer(RegConfig[0]+0x40); \\RegConfig - тот самы массив (адрес)

SPI.transfet(RegConfig[1]); \\значение

Решил проверить, установились ли регистры, считываю их

_Val = SPI.transfer(RegConfig[0]+0xC0); \\0xC0 - маска для бурст чтения

В результате все значениея получаю "F" (00001111). Пробовал не бурст, а однобайтовые запись и чтение (0x00 и 0x80 соответвенно). Все равно получаю F. Это же число получатся вообще при любом вызове SPI.transfer с любым значением. Даташит утверждает, что этот статус байт (а это статус байт?) озночает, что трансивер включен и "TX FIFO has underflowed. Acknowledge with SFTX"

Что я неправильно делаю? Неправильно накладываю маску? Или что?

Дальше я посылаю комманды SFSTXON и SIDLE. Чтобы их послать,надо просто отправить указанный в даташите адрес, к примеру для SIDLE SPI.transfer(0x36)?

Потом пишу в регистр FIFOTX:

SPI.transfer(0x3F);

SPI.transfer(число, которое хочу отправить);

SPI.transfer(STX); \\STX - 0x35

И жду, пока на GD0 не станет сначала 1, потом 0. Это правильная последовательность действий? Или я где-то ошибся?

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Я так понял никто не знает? Или я написал не в ту тему? Люди, Ау!

Кто-нибудь, объясните хотябы, что значит "наложить маску на адресс 0х40 для записи". Как вообще считывать и писать в регистры?

Я пытаюсь так:

SPI.transfer(addr+0x80); //считать. в ответ получаю статус-байт. Нужно считать еще раз

_V=SPI.transfer(0); //И вместо значения регистра там...0! ВТФ?!

Изменено пользователем Alex_ME
Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...