Инфа по трансиверу TR24

Тема в разделе "WASM.ELECTRONICS", создана пользователем a9d, 3 фев 2010.

  1. a9d

    a9d New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2006
    Сообщения:
    234
    Адрес:
    Zimbabwe
    Это значит неправильно инициализированы трансиверы. Последовательность инициализации имеет значение.
     
  2. dimka11

    dimka11 New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2011
    Сообщения:
    7
    Подскажите пожалуйста что делаю не так, передаю посылки к примеру 0 1 2 3 4 5
    а принимаю почему то так _ 0 1 2 3 4 5

    То есть передатчик первую посылку отправляет пустую,и дальше как надо, со сдвигом,
    отправляю так:
    _tr24a(0x07,0x01,ch);
    _tr24a(0x52,0x80,0x00);
    _ ну и пишу в буфер.

    такое ощущение что в буфер надо писать перед тем как скидывать буфер,
     
  3. a9d

    a9d New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2006
    Сообщения:
    234
    Адрес:
    Zimbabwe
    По такому развернутому ответу можно сказать только ХЗ. Я не телепат.
    Не знаю как ты принимаешь, как отправляешь. И вообще для начала ты его инициализировал верно?
     
  4. dimka11

    dimka11 New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2011
    Сообщения:
    7
    Да конечно , инициализировал регистрами с даташита Register optimize value for EM198810, как принимаю думаю не важно так как на 100% уверен что передатчик первый байт отправляет пустой, а второй отправляет тот что записывал первым.
     
  5. a9d

    a9d New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2006
    Сообщения:
    234
    Адрес:
    Zimbabwe
    Первый байт это размер посылки.
     
  6. dimka11

    dimka11 New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2011
    Сообщения:
    7
    Нет вы не поняли я отправляю посылки по 1байту, Первую посылку он отправляет пустую, (вроде я в буфер не чего не писал),а вторую ту что записал первую(хотя в буфер уже записал вторую), и так дальше!
     
  7. dimka11

    dimka11 New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2011
    Сообщения:
    7
    Все разобрался, надо сначала заполнять буфер, а потом переходить в режим тх
     
  8. dimka11

    dimka11 New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2011
    Сообщения:
    7
    Все таки я чегото не пойму, А как перейти в режим тх? Через регистр reg7 бит 7??? Если да то у меня трансивер после установки этого бита начинает отправлять! Я делал сначала как вы написали, сначала переходил в режим тх, а потом заполнял буфер, а трансивер то уже отправил, вот поэтому у меня первая посылка приходила пустой!
     
  9. Efimov

    Efimov New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2011
    Сообщения:
    9
    dimka11, прауильно!
    Я сегодня запустил прём/передачу!!!!
    В один трансивер микроконтроллер отправляет посылку, а с другого принимает!!!!
    Итог - первичные эксперименты можно считать успешными.
     
  10. a9d

    a9d New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2006
    Сообщения:
    234
    Адрес:
    Zimbabwe
    2Efimov:
    Проверь двух стороннюю связь.
     
  11. Efimov

    Efimov New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2011
    Сообщения:
    9
    Когда считываешь FIFO трансивера, первый байт=длина, со второго начинаются данные.
     
  12. Efimov

    Efimov New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2011
    Сообщения:
    9
    Усё работает!
    Вначале первый передаёт, второй принимает.
    Потом наоборот. И в цикле, передача пакетов длиной от 2 до 63 байт.
     
  13. a9d

    a9d New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2006
    Сообщения:
    234
    Адрес:
    Zimbabwe
    Ты проверь содержание посылок.
    Важно, чтоб отправляемая посылка и возвращаемая были разные по размеру и содержанию.
     
  14. Efimov

    Efimov New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2011
    Сообщения:
    9
    что отправляю - то и принимаю.
    в принятой посылке - первый байт размер, остальные - посылка.
     
  15. a9d

    a9d New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2006
    Сообщения:
    234
    Адрес:
    Zimbabwe
    Вот это неправильно.
    Данные в буфере трансивера не удаляется. И далеко не факт, что ты получил посылку. Трансивер может сообщить о приходе пакета, но если код неверен то в буфер трансивера ничего не запишется.

    Первые версии моего кода содержали именно такой косяк. В них данные не принимались.
     
  16. Efimov

    Efimov New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2011
    Сообщения:
    9
    нет. Усё хорошо у меня.
    Один трансивер вгоняется в приём.
    Во второй впихивается посылка.
    Второй включается на передачу.
    Читается приёмник.

    main_work: while (FlagTik==0); // Ожидание нового тика 10 мсек
    FlagTik=0; Tik++; clock();
    // if (Tik==0) {Text_Work(); // puts("0123456789;\0x0D");
    // putc(SekD+T30); putc(SekE+T30);putc(0x0D);
    // };
    Test_Len++;
    if (Test_Len>63) Test_Len=2;
    //Заполнение буфера для передачи. [0]=Длина посылки, [1...]=посылка
    for (TR24_Temp=0;TR24_Temp<64;TR24_Temp++) {TR24_Buf[TR24_Temp]=0; };
    putc(0x55);
    TR24_Buf[0]=Test_Len; putc(TR24_Buf[0]);
    for (TR24_Temp=1;TR24_Temp<(TR24_Buf[0]+1);TR24_Temp++) {
    TR24_Buf[TR24_Temp]=TR24_Temp+TR24_Buf[0]*2;
    putc(TR24_Buf[TR24_Temp]);
    };
    //Включение трансивера на приём
    TR24_Number=2; //Трансивер 2
    TR24_set_RX_mode(); // -> приём
    delay_us(10); //
    //Включение трансивера на передачу
    TR24_Number=1; //Трансивер 1
    TR24_FIFO_W(); //Передача в трансивер данных из буфера
    TR24_set_TX_mode(); //В режим TX (отправка в антену)

    //Очистка буфера перед чтением из трансивера
    for (TR24_Temp=0;TR24_Temp<64;TR24_Temp++) {TR24_Buf[TR24_Temp]=0; };

    //Чтение принимающего трансивера
    TR24_Number=2; //Чтение трансивера в приёмный буфер
    TR24_FIFO_R();
    TR24_set_idle_mode();
    delay_ms(250); delay_ms(250); delay_ms(250);
    //Чтение буфера полученного из FIFO
    putc(0xAA);
    for (TR24_Temp=0;TR24_Temp<(TR24_Buf[0]+1);TR24_Temp++) {
    putc(TR24_Buf[TR24_Temp]);
    };
    delay_ms(250); delay_ms(250); delay_ms(250);


    goto main_work;
     
  17. a9d

    a9d New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2006
    Сообщения:
    234
    Адрес:
    Zimbabwe
    Отпишитесь те у кого получилось передать данные больше чем на пару метров.

    Ибо в интернете стало появляться все больше и больше статей с обвинением этих модулей а не своих рук.
    Капец если руки кривые зачем же статьи писать!
     
  18. Kondor

    Kondor New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2010
    Сообщения:
    3
    У человека получилось 20-30 метров. http://akb77.com/g/avr/usb-dongle-with-tr24a-radio-module/
     
  19. a9d

    a9d New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2006
    Сообщения:
    234
    Адрес:
    Zimbabwe
    Демонстрация работы протокола + демонстрация возможностей модуля. Модуль конечно же не идеал, но дешевле да еще с такими параметрами на рынке ничего нет.

    http://www.youtube.com/watch?v=HYnQRP0CEZY
     
  20. Kondor

    Kondor New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2010
    Сообщения:
    3
    какую камеру на роботе использовал?