INT 21h

Hi, I am Vladimir Smagin, sysadmin. Telegram Email

Трансиверы TR24A, TR24P и TR24F

№ 3760 В разделах: Программирование Электроника от October 27th, 2011,

Тема эта наболевшая для многих, поэтому выкладываю вообще все, что я смог накопать на TR24A, TR24P и TR24F. Будьте внимательны, A и F на разных чипах!

TR24A, TR24P:

TR24F:

Если у вас еще что-то есть (например, документация или код, которым не жалко поделиться), то присылайте мне в почту.

3 комментариев »

3 responses to “Трансиверы TR24A, TR24P и TR24F”

  1. Boris says:

    Посмотри здесь http://klim.in.ua/wp/
    я использую код с этого сайта для своего проекта.

  2. 21h says:

    по TR24F найти бы побольше. он практически нигде не освещен.

  3. chubik says:

    Здравствуйте! Пытаюсь связать два модуля TR24F – безрезультатно. Написал код(привожу ниже). По SPI регистры параметрируются, но как-то через раз, читаются отлично. Прерывание при отсылке на передатчике происходит, значит пакет с данными прошел, а вот на приемнике глухо. Регистры 0, 9-16 на стороне приемника и передатчика учтены и поставлены правильно. Помогите найти ошибку.
    Пишу на CVAVR под Atmega8

    Код:

    Код:
    #define RDY PORTC.4 //27 out
    #define SCK PORTC.2 //25 out
    #define DAT PORTC.0 // 23 in/out
    #define INDAT PINC.0// 23
    #define DAT_DDR DDRC.0 // 23
    #define EN PORTC.5 //28 out
    #define PSB PORTD.1 //3 out
    #define INT PIND.2 // 4 in
    //#define DRSSI PIND.6

    flash unsigned char regs[25]={
    0xA8,// 0x28 T/R Channel index
    0x03,// Crystal Frequency and RF Power
    0x78,// Data Function Control
    0x87,// RSSI Function Control
    0x20,// RSSI Value
    0x0F,// Data format control
    0x30,// Multi Burst Packet Repeat Control
    0x21,// Power Ramp Control
    0x03,// Addres Length
    0x02,// Destination Addres 0x34
    0x02,// Destination Addres 0x22
    0x02,// Destination Addres 0x55
    0x00,// Destination Addres
    0x00,// Destination Addres
    0x01,// Device Addres
    0x01,// Device Addres
    0x01,// Device Addres
    0x00,// Device Addres
    0x00,// Device Addres
    0x00,// Reserved
    0x00,// PLL Pre-Turn-On Time
    0xB4,// PLL Lock Time
    0x00,// Reserved
    0x22,// Option
    0x04 // RX Turn On Time
    } ;

    void spi_access_mode(void)
    {
    DAT=1;
    PSB=1;
    EN=1;
    RDY=0;
    SCK=0;
    #asm(“nop”)
    };

    void active_mode(void)
    {
    DAT=1;
    PSB=1;
    EN=0;
    SCK=0;
    RDY=1;
    #asm(“nop”)

    };

    // Output eight-bit value using selected bit-bang pins
    void spi_bitbang_out(char value)
    {
    char x;
    for(x=8;x>0;x–){
    if(value & 0x80)DAT=1;
    else DAT=0;
    #asm(“nop”)
    SCK=1;
    value<0;y–){
    SCK=1;
    #asm(“nop”)
    x<<=1;
    if(INDAT==1){x|=0b00000001;}
    SCK=0;
    #asm("nop")

    } // Store next bit
    return(x);
    }

    void spi_write_regs(unsigned char addres,unsigned char data)
    {
    spi_access_mode();
    DAT_DDR=1;
    spi_bitbang_out(addres|0x80); // Send address
    spi_bitbang_out(data); // Send data
    EN=0;
    } ;

    unsigned char spi_read_reg(unsigned char addres)
    { unsigned char data;
    spi_access_mode();
    DAT_DDR=1;
    spi_bitbang_out(addres); // Send address
    DAT_DDR=0;
    data=spi_bitbang_in(); //read data
    EN=0;
    return(data);
    };

    void tr24f_init(void)
    {unsigned char y;
    for(y=0;y0;y–)
    data[y]=spi_bitbang_in();
    return(data);
    };

    void fifo_write(unsigned char *data,unsigned char data_length)
    {
    unsigned char y;
    active_mode();
    DAT_DDR=1;
    delay_us(20);
    spi_bitbang_out(regs[0x09]);
    spi_bitbang_out(regs[0x0A]);
    spi_bitbang_out(regs[0x0B]);
    for(y=data_length;y>0;y–)
    spi_bitbang_out(data[y]);
    spi_bitbang_out(1);
    spi_bitbang_out(1);
    spi_bitbang_out(1);
    RDY=0;
    };

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Комментарии

  • 21h: нене ) без меня )
  • Серегй: Не совсем грабить)) если грабить можно и без рации, есть...
  • 21h: магазин грабить собрались? ) не, тут я не помощник ;)
  • Серегй: А что бы мне поймать чужую волну, что мне для этого нужно...
  • 21h: слушать никто не запрещает. нет закона, который запрещает...
  • Серегй: Я хотел узнать могу ли я просто прийти с данной рацией baofeng...
  • 21h: У меня есть только эти 2. По другим ничего не знаю. В интернете...

© Vladimir Smagin, 2005-2017. Копирование материалов без разрешения запрещено.
Яндекс.Метрика