CC1101 Проблемы с приемом и передачей

Неисправность трансивера CC1101


Введение в мою проблему

Всем привет! У меня есть Arduino Uno, и в последнее время я немного повеселился с трансиверами, включая CC1101. Я купил его в каком-то китайском магазине, и он помечен как D-Sun CC1101. Возможно, это не самое лучшее качество, но я думаю, что для новичка, такого как я, сойдет. Просто для ясности: он работает на частотах 3,3 В и 315/433/868/915 МГц с мощностью передачи +10 дБм. Хотя у меня были некоторые проблемы с его работой.

Что не так

Приемопередатчик CC1101 не получает никаких данных. Я пытался использовать ключ шлюза 433,92 МГц после правильной настройки CC1101, но на последовательном мониторе ничего не появилось. Я также пытался использовать другой Arduino Uno с подключенным передатчиком на 433 МГц и отправлять с ним некоторые буферы, но это тоже не сработало.

Несмотря на то, что я пробовал много библиотек, таких как:

  • Библиотека SpaceTeddy CC1101
  • SmartRC-CC1101-Driver-Lib от LSatan
  • И библиотеку ELECHOUSE_C1101, которую я получил из этого руководства на YouTube (содержимое этой библиотеки приведено ниже)

  • Файл .h
  • Файл .cpp

Что, по моему мнению, я сделал неправильно, с чем вы могли бы мне помочь

Короткое замыкание

Вначале я думал, что подключил приемопередатчик правильно, однако, когда я подключал провода vcc и gnd (замыкая цепь), плата Arduino "L" Светодиод выключался каждый раз, и я не думаю, что он должен так себя вести.

Arduino L Led

Для ясности, что "ВКЛ" Светодиод оставался включенным и полностью ярким. Это проводное соединение, которое я использовал:

Vcc    -    3.3V
SI     -    MOSI (11)
SO     -    MISO (12)
CS     -    SS   (10)
SCLK   -    SCK  (13)
GDO2   -    GPIO (3/9) (According to library)
GDO0   -    GPIO (2) (According to library)
GND    -    GND

Скетч arduino uno неверен

Обычно я использовал примеры кода получения (rx) из ранее упомянутых библиотек, однако в последнем случае я использовал фиксированный пример из видео на YouTube, и он выглядит следующим образом:

#include <ELECHOUSE_CC1101.h>
 
byte RX_buffer[61]={0};
byte size, flag;

 void setup()
{
  Serial.begin(9600);
  ELECHOUSE_cc1101.Init();
  ELECHOUSE_cc1101.SetReceive();
}

void loop()
{
  if(ELECHOUSE_cc1101.CheckReceiveFlag())
  {
    size = ELECHOUSE_cc1101.ReceiveData(RX_buffer);
    for(int i = 0; i < size; i++)
    {
      Serial.print(RX_buffer[i],DEC);
      Serial.write(' ');
    }
    Serial.println("");
    ELECHOUSE_cc1101.SetReceive();
  }
}

Исправленная версия ничего существенного не меняет, но стоит отметить, что она выглядит не так, как на видео. Я изменил его, потому что некоторые функции устарели. Но, как я уже сказал, ни один из примеров прослушивания не работал у меня. Один из них отображал некоторую информацию, но только когда я касался антенны и создавал короткое замыкание.

Приемопередатчик больше не работает

Меня беспокоит, что модуль CC1101 больше не работает, я не очень аккуратно с ним обращался, так что стоит подумать. У меня нет каких-либо продвинутых инструментов, которые помогли бы мне проверить качество схемы антенны или приемопередатчика, поэтому я полагаюсь на вас и ваши ответы.

Заключение

Было бы здорово, если бы мне кто-нибудь помог. Я провел некоторое исследование и увидел, что не так много тем, связанных с Arduino Stack Exchange CC1101, активно. Я знаю, что трансивер не так популярен среди электроники и может не получить нужной мне помощи. Если вам нужна дополнительная информация, просто скажите мне. Не удаляйте тему, я отредактирую ее по желанию.

Ура, дэб

, 👍-1

Обсуждение

пожалуйста, добавьте к своему сообщению целенаправленный вопрос, на который можно ответить, и кто-нибудь попытается на него ответить ... этот сайт не форум ... здесь нет темы ... есть вопрос, несколько комментариев, таких как этот, и ответы ... все ваши обновления должны войти в ваш вопрос, @jsotola

непонятно, что вы конкретно спрашиваете... вы хотите узнать о проверке того, что передатчик передает?, @jsotola

Я действительно не вижу смысла поправлять меня с точки зрения ярлыков и того, как я должен называть определенные вещи, если вы понимаете, что я имел в виду, поэтому, пожалуйста, не делайте этого. Я хочу спросить «конкретно», как я могу исправить свой cc1101 или его код, если он не передает и не получает. Я не могу задать конкретный вопрос, потому что я не профессионал в области электроники и сам не знаю, что не так, поэтому я дал вам свои теории о том, что я мог сделать неправильно. Так что еще раз, пожалуйста, не ненавидьте меня за то, что я не могу задать конкретный вопрос, если я не могу проверить, в чем заключается конкретная проблема. Вот о чем я вас прошу. дхеб, @dheb