реклама на сайте
подробности

 
 
> Мои мучения с CC2500
zheka
сообщение Jun 12 2009, 06:37
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Господа. Начал я мучиться с сс2500.
Спаял две платки - одну отладочную, на ней контроллер mega32L, на другой собственно чип.
Не могу прочитать регистры. Нет ответа от чипа.

Ну как всегда, 3 версии:
- горелый чип
- ошибки монтажа
- ошибка программы.

1 первую версию проверить не представляется возможным, пока нет уверенности во второй и третьей.
Ошибки монтажа: сигналы на чип точно поступают, включал MOSI, MISO и SCK и мерял напряжение непосредственно на ножке чипа. Везде единицы. Прозванивал цепь от SO чипа до MISO контроллера - связь есть. Питание тоже в порядке.
Теоретически может быть непропай контактной площадки под CC2500 и контактных площадок под кварцем, внимание вопрос - это может быть причиной неработоспособнотси цифровой интерфейсной части чипа? Вообще для того чтобы читать регистры хватит ли подключения сигнальных линий и питания при игнорировании остальных выводов?

Ошибка программы.
Использую готовый проект для mega88, немного переделал его под mega32L, питание 3,24 вольт.
В оригинальном проекте кварц был на 14мгц, у меня же 8 Мгц. По идее не должно сказываться на SPI, ибо он программный, я правильно понял?
Далее на отладочной плате сидит дисплей от S65 он использует аппаратный SPI, на его же ноги я назначил программный SPI от чипа, CS линии естественно, раздельные, может ли это быть причиной? Сам дисплей, а следовательно и аппаратный SPI для него инициализируются после чтения регистра, так что конфликт исключен, тем более, что дисплей не имеет выхода MOSI и на поток данных он влиять никак не может.


Весь проект приводить смысла нет, там шаманство с USART и прерываниями, которые я отключил для чистоты эксперимента. Приведу лишь функции, которые работают:

основной файл:
Код
#include <mega32.h>
#include <delay.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>

  
#include "TI_CC_spi.h"
#include "TI_CC_spi.c"


void main ()
{
char str;

   TI_CC_SPISetup();                         // Initialize SPI port

       TI_CC_PowerupResetCCxxxx();               // Reset CCxxxx
       writeRFSettings();                        // Write RF settings to config reg
       TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE,paTable,paTableLen );//Write PATABLE  
       TI_CC_SPIStrobe(TI_CCxxx0_SIDLE);
       TI_CC_SPIStrobe(TI_CCxxx0_SFRX);
       TI_CC_SPIStrobe(TI_CCxxx0_SFTX);

str=TI_CC_SPIReadReg(TI_CCxxx0_PARTNUM);

lcd_str_ram(str,f8x14,red); // строки инициализации дисплея опущены.

}



файл TI_CC_spi.h
Код
#define mosi PORTB.5
#define miso PINB.6
#define sck PORTB.7
#define cs PORTB.1
#define gdo2 PIND.2
#define gdo0 PIND.3
#define light PORTD.4

// Configuration Registers
#define TI_CCxxx0_IOCFG2       0x00        // GDO2 output pin configuration
#define TI_CCxxx0_IOCFG1       0x01        // GDO1 output pin configuration
#define TI_CCxxx0_IOCFG0       0x02        // GDO0 output pin configuration
#define TI_CCxxx0_FIFOTHR      0x03        // RX FIFO and TX FIFO thresholds
#define TI_CCxxx0_SYNC1        0x04        // Sync word, high byte
#define TI_CCxxx0_SYNC0        0x05        // Sync word, low byte
#define TI_CCxxx0_PKTLEN       0x06        // Packet length
#define TI_CCxxx0_PKTCTRL1     0x07        // Packet automation control
#define TI_CCxxx0_PKTCTRL0     0x08        // Packet automation control
#define TI_CCxxx0_ADDR         0x09        // Device address
#define TI_CCxxx0_CHANNR       0x0A        // Channel number
#define TI_CCxxx0_FSCTRL1      0x0B        // Frequency synthesizer control
#define TI_CCxxx0_FSCTRL0      0x0C        // Frequency synthesizer control
#define TI_CCxxx0_FREQ2        0x0D        // Frequency control word, high byte
#define TI_CCxxx0_FREQ1        0x0E        // Frequency control word, middle byte
#define TI_CCxxx0_FREQ0        0x0F        // Frequency control word, low byte
#define TI_CCxxx0_MDMCFG4      0x10        // Modem configuration
#define TI_CCxxx0_MDMCFG3      0x11        // Modem configuration
#define TI_CCxxx0_MDMCFG2      0x12        // Modem configuration
#define TI_CCxxx0_MDMCFG1      0x13        // Modem configuration
#define TI_CCxxx0_MDMCFG0      0x14        // Modem configuration
#define TI_CCxxx0_DEVIATN      0x15        // Modem deviation setting
#define TI_CCxxx0_MCSM2        0x16        // Main Radio Cntrl State Machine config
#define TI_CCxxx0_MCSM1        0x17        // Main Radio Cntrl State Machine config
#define TI_CCxxx0_MCSM0        0x18        // Main Radio Cntrl State Machine config
#define TI_CCxxx0_FOCCFG       0x19        // Frequency Offset Compensation config
#define TI_CCxxx0_BSCFG        0x1A        // Bit Synchronization configuration
#define TI_CCxxx0_AGCCTRL2     0x1B        // AGC control
#define TI_CCxxx0_AGCCTRL1     0x1C        // AGC control
#define TI_CCxxx0_AGCCTRL0     0x1D        // AGC control
#define TI_CCxxx0_WOREVT1      0x1E        // High byte Event 0 timeout
#define TI_CCxxx0_WOREVT0      0x1F        // Low byte Event 0 timeout
#define TI_CCxxx0_WORCTRL      0x20        // Wake On Radio control
#define TI_CCxxx0_FREND1       0x21        // Front end RX configuration
#define TI_CCxxx0_FREND0       0x22        // Front end TX configuration
#define TI_CCxxx0_FSCAL3       0x23        // Frequency synthesizer calibration
#define TI_CCxxx0_FSCAL2       0x24        // Frequency synthesizer calibration
#define TI_CCxxx0_FSCAL1       0x25        // Frequency synthesizer calibration
#define TI_CCxxx0_FSCAL0       0x26        // Frequency synthesizer calibration
#define TI_CCxxx0_RCCTRL1      0x27        // RC oscillator configuration
#define TI_CCxxx0_RCCTRL0      0x28        // RC oscillator configuration
#define TI_CCxxx0_FSTEST       0x29        // Frequency synthesizer cal control
#define TI_CCxxx0_PTEST        0x2A        // Production test
#define TI_CCxxx0_AGCTEST      0x2B        // AGC test
#define TI_CCxxx0_TEST2        0x2C        // Various test settings
#define TI_CCxxx0_TEST1        0x2D        // Various test settings
#define TI_CCxxx0_TEST0        0x2E        // Various test settings

// Strobe commands
#define TI_CCxxx0_SRES         0x30        // Reset chip.
#define TI_CCxxx0_SFSTXON      0x31        // Enable/calibrate freq synthesizer
#define TI_CCxxx0_SXOFF        0x32        // Turn off crystal oscillator.
#define TI_CCxxx0_SCAL         0x33        // Calibrate freq synthesizer & disable
#define TI_CCxxx0_SRX          0x34        // Enable RX.
#define TI_CCxxx0_STX          0x35        // Enable TX.
#define TI_CCxxx0_SIDLE        0x36        // Exit RX / TX
#define TI_CCxxx0_SAFC         0x37        // AFC adjustment of freq synthesizer
#define TI_CCxxx0_SWOR         0x38        // Start automatic RX polling sequence
#define TI_CCxxx0_SPWD         0x39        // Enter pwr down mode when CSn goes hi
#define TI_CCxxx0_SFRX         0x3A        // Flush the RX FIFO buffer.
#define TI_CCxxx0_SFTX         0x3B        // Flush the TX FIFO buffer.
#define TI_CCxxx0_SWORRST      0x3C        // Reset real time clock.
#define TI_CCxxx0_SNOP         0x3D        // No operation.

// Status registers
#define TI_CCxxx0_PARTNUM      0x30        // Part number
#define TI_CCxxx0_VERSION      0x31        // Current version number
#define TI_CCxxx0_FREQEST      0x32        // Frequency offset estimate
#define TI_CCxxx0_LQI          0x33        // Demodulator estimate for link quality
#define TI_CCxxx0_RSSI         0x34        // Received signal strength indication
#define TI_CCxxx0_MARCSTATE    0x35        // Control state machine state
#define TI_CCxxx0_WORTIME1     0x36        // High byte of WOR timer
#define TI_CCxxx0_WORTIME0     0x37        // Low byte of WOR timer
#define TI_CCxxx0_PKTSTATUS    0x38        // Current GDOx status and packet status
#define TI_CCxxx0_VCO_VC_DAC   0x39        // Current setting from PLL cal module
#define TI_CCxxx0_TXBYTES      0x3A        // Underflow and # of bytes in TXFIFO
#define TI_CCxxx0_RXBYTES      0x3B        // Overflow and # of bytes in RXFIFO
#define TI_CCxxx0_NUM_RXBYTES  0x7F        // Mask "# of bytes" field in _RXBYTES

// Other memory locations
#define TI_CCxxx0_PATABLE      0x3E
#define TI_CCxxx0_TXFIFO       0x3F
#define TI_CCxxx0_RXFIFO       0x3F

// Masks for appended status bytes
#define TI_CCxxx0_LQI_RX       0x01        // Position of LQI byte
#define TI_CCxxx0_CRC_OK       0x80        // Mask "CRC_OK" bit within LQI byte

// Definitions to support burst/single access:
#define TI_CCxxx0_WRITE_BURST  0x40
#define TI_CCxxx0_READ_SINGLE  0x80
#define TI_CCxxx0_READ_BURST   0xC0



// PATABLE (0 dBm output power)
char paTable[] = {0xff};
char paTableLen = 1;


void TI_CC_SPISetup(void);
void TI_CC_PowerupResetCCxxxx(void);
void TI_CC_SPIWriteReg(char, char);
void TI_CC_SPIWriteBurstReg(char, char*, char);
char TI_CC_SPIReadReg(char);
void TI_CC_SPIReadBurstReg(char, char *, char);
char TI_CC_SPIReadStatus(char);
void TI_CC_SPIStrobe(char);
void RFSendPacket(char *txBuffer, char size);
void writeRFSettings(void);
char RFReceivePacket(char *rxBuffer, char *length);
void RF_TX_proc(void);
void RF_RX_proc(void);




функции из TI_CC_spi.c

Код
void TI_CC_SPISetup(void)
{
    DDRB.5=1; // MOSI в out
    DDRB.1=1; // CS в out
    DDRB.6=0; // MISO в in
    DDRB.7=1; // SCK в out
    cs=1;
    sck=0;
    mosi=0;
}

// Output eight-bit value using selected bit-bang pins
void TI_CC_SPI_bitbang_out(char value)
{
  char x;

  for(x=8;x>0;x--){
    if(value & 0x80)mosi=1;                                    
    else mosi=0;
    #asm("nop")
    
    sck=1;
    value<<=1;
    #asm("nop")
    sck=0;
    #asm("nop")
    
    }
}

// Input eight-bit value using selected bit-bang pins
char TI_CC_SPI_bitbang_in()
{
  unsigned char x=0;
  unsigned char y;
        x=0;
  for(y=8;y>0;y--){
    sck=1;
    #asm("nop")
    x<<=1;
    if(miso==1){x|=0b00000001;}
    sck=0;
    #asm("nop")
    
    }                                         // Store next bit
  return(x);




}

void TI_CC_SPIWriteReg(char addr, char value)
{
    cs=0;                                   // /CS enable
    while (miso);                           // Wait CCxxxx ready
    TI_CC_SPI_bitbang_out(addr);            // Send address
    TI_CC_SPI_bitbang_out(value);           // Send data
    cs=1;                                   // /CS disable
}

void TI_CC_SPIWriteBurstReg(char addr, char *buffer, char count)
{
    char i;

    cs=0;                                   // /CS enable
    while (miso);                           // Wait CCxxxx ready
    TI_CC_SPI_bitbang_out(addr | TI_CCxxx0_WRITE_BURST);   // Send address
    for (i = 0; i < count; i++)
      TI_CC_SPI_bitbang_out(buffer[i]);     // Send data
      cs=1;                                   // /CS disable
}

char TI_CC_SPIReadReg(char addr)
{
  char x;

  cs=0;
  while (miso);
  TI_CC_SPI_bitbang_out(addr | TI_CCxxx0_READ_SINGLE);//Send address
  x = TI_CC_SPI_bitbang_in();               // Read data
  cs=1;                                   // /CS disable
  return x;
}

void TI_CC_SPIReadBurstReg(char addr, char *buffer, char count)
{
  char i;
  cs=0;
  while (miso);
  TI_CC_SPI_bitbang_out(addr | TI_CCxxx0_READ_BURST);    // Send address
  for (i = 0; i < count; i++){
    buffer[i] = TI_CC_SPI_bitbang_in();// Read data
    }    
  cs=1;                                   // /CS disable
  }

char TI_CC_SPIReadStatus(char addr)
{
  char x;
  cs=0;
  while (miso);                           // Wait CCxxxx ready                                   // /CS enable
  TI_CC_SPI_bitbang_out(addr | TI_CCxxx0_READ_BURST);      // Send address
  x = TI_CC_SPI_bitbang_in();               // Read data
  cs=1;                                   // /CS disable
  return x;
}

void TI_CC_SPIStrobe(char strobe)
{
  cs=0;
  while (miso);                           // Wait CCxxxx ready                                   // /CS enable
  TI_CC_SPI_bitbang_out(strobe);            // Send strobe
  cs=1;                                   // /CS disable
}

void TI_CC_PowerupResetCCxxxx(void)
{
    cs=1;
    delay_us(40);
    cs=0;
    delay_us(40);
    cs=1;
    delay_us(45);
    cs=0;
    
    while(miso);
    TI_CC_SPI_bitbang_out(TI_CCxxx0_SRES);
    while(miso);
    cs=1;
    delay_ms(45);
    
}


// Chipcon
// Product = CC2500
// Chip version = E
// Crystal accuracy = 10 ppm
// X-tal frequency = 26 MHz
// RF output power = 0 dBm
// RX filterbandwidth = 551.067708 kHz
// Phase = 1
// Datarate = 250.240707 kbps
// Modulation = (7) MSK
// Manchester enable = (0) Manchester disabled
// RF Frequency = 2432.999988 MHz
// Channel spacing = 199.788952 kHz
// Channel number = 0
// Optimization = Sensitivity
// Sync mode = (3) 30/32 sync word bits detected
// Format of RX/TX data = (0) Normal mode, use FIFOs for RX and TX
// CRC operation = (1) CRC calculation in TX and CRC check in RX enabled
// Forward Error Correction = (0) FEC disabled
// Length configuration = (1) Variable length packets, packet length configured by the first received byte after sync word.
// Packetlength = 255
// Preamble count = (2)  4 bytes
// Append status = 1
// Address check = (0) No address check
// FIFO autoflush = 1
// Device address = 0
// GDO0 signal selection = ( 6) Asserts when sync word has been sent / received, and de-asserts at the end of the packet
// GDO2 signal selection = (11) Serial Clock
void writeRFSettings(void)
{
    // Write register settings

TI_CC_SPIWriteReg(TI_CCxxx0_FSCTRL1,0x0c);
TI_CC_SPIWriteReg(TI_CCxxx0_FSCTRL0,0x00);
TI_CC_SPIWriteReg(TI_CCxxx0_FREQ2,0x5B);
TI_CC_SPIWriteReg(TI_CCxxx0_FREQ1,0xFB);
TI_CC_SPIWriteReg(TI_CCxxx0_FREQ0,0x04);//04 rx    7c jeep
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG4,0x2d);
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG3,0x36);
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG2,0x73);
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG1,0xc2);
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG0,0xEF);
TI_CC_SPIWriteReg(TI_CCxxx0_CHANNR,0x00);
TI_CC_SPIWriteReg(TI_CCxxx0_DEVIATN,0x01);
TI_CC_SPIWriteReg(TI_CCxxx0_FREND1,0x56);
TI_CC_SPIWriteReg(TI_CCxxx0_FREND0,0x10);
TI_CC_SPIWriteReg(TI_CCxxx0_MCSM2,0x07);
TI_CC_SPIWriteReg(TI_CCxxx0_MCSM1,0x3c);//30
TI_CC_SPIWriteReg(TI_CCxxx0_MCSM0,0x18);
TI_CC_SPIWriteReg(TI_CCxxx0_FOCCFG,0x15);
TI_CC_SPIWriteReg(TI_CCxxx0_BSCFG,0x6C);
TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL2,0xc3);
TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL1,0x00);
TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL0,0x91);
TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL3,0xea);
TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL2,0x0A);
TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL1,0x00);
TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL0,0x11);
TI_CC_SPIWriteReg(TI_CCxxx0_FSTEST,0x59);
TI_CC_SPIWriteReg(TI_CCxxx0_TEST2,0x8f);
TI_CC_SPIWriteReg(TI_CCxxx0_TEST1,0x21);
TI_CC_SPIWriteReg(TI_CCxxx0_TEST0,0x0B);
TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG2,0x0F);
TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG0,0x06);
TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL1,0x0d);//05
TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL0,0x05);
TI_CC_SPIWriteReg(TI_CCxxx0_ADDR,0x01);
TI_CC_SPIWriteReg(TI_CCxxx0_PKTLEN,0xff);
TI_CC_SPIWriteReg(TI_CCxxx0_FIFOTHR,0x07);

}


Ваши мнения? Как найти ошибку?

еще один момент: к DVDD4 и DCOUPLE подключены конденсаторы как на 0.1 мкф так и на 47 пф. Товарищ ksv198 в своем реально работающем проекте один конденсатор убрал, другой заменил на 220 пф. Работало. Я же по ошибке убрал оба, то есть у меня на этих выводах только 0.1 мкф.

Разводку прилагаю

Ну и еще вопрос вдогонку: у меня ограниченное количество cc2500, зато валяется штук 20 сс1101. Вроде бы они идентичны по пинам. Смогу ли я тупо напаяв его на плату для сс2500 читать и писать регистры? Не хочется портить сс2500, а сс1101 не жалко.

Сообщение отредактировал zheka - Jun 12 2009, 06:30
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zheka
сообщение Jun 20 2009, 02:57
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Тихо сам с собою я веду беседу...

ДОбавил задержку в 2 мс после строба включения передачи. ВРоде бы буфер опустошается. Но почему то до единицы. Ноль только после специального строба. Но все равно на приемнике ничего не читается. хотя GDO0 сначала включается, а потом выключается. О чем это говорит? Могу ли я быть уверенным, что подстройки частоты не требуется?

Плюс непонятки с RSSI он у меня всегда в районе 210, изменяясь в пределах 10, независимо от того, включен передатчик или нет.

Вот полный код:

Код
#include <mega32.h>
#include <delay.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <stdio.h>
#include <disp.h>
#include <spi.h>

void putchar(char c);
unsigned int Clc_tim0=0;
unsigned int Clc_tim0_timout=0;
bit Clc_tim0_timout_b=0;
unsigned char RF_RX_Buffer[64];
unsigned char RF_TX_Buffer[64];

unsigned char LQI,RSSI;
bit RF_TX_b=0;//1-ïåðåäà÷à
bit RF_RX_b=0;//1-ïðèåì
bit RF_TX_END_b=0;//1-ïåðåäà÷à èñïîëüçóåòñÿ äëÿ îïðåäåëåíèÿ êîíöà îïåðàöèè
bit RF_RX_END_b=0;//1-ïðèåì    èñïîëüçóåòñÿ äëÿ îïðåäåëåíèÿ êîíöà îïåðàöèè
bit RXD_timer=0;// óñòàíàâëèâàåòñÿ êîãäà íóæíî çàáèðàòü äàííûå èç áóôåðà ÷òåíèÿ ïîðòà 10ms

#define  SPIF    7
#define  SPI2X   1  

#define  SPR0    0  
#define  SPR1    1  
#define  SPHA    2  
#define  SPOL    3  
#define  MSTR    4  
#define  DORD    5  
#define  SPE     6  
#define  SPIE    7  

#define  TRANSMITTER    1  
#define  RECIEVER    0

  
#include "TI_CC_spi.h"
#include "TI_CC_spi.c"
                          
char str, sTEMP, sRSSI, sLQI, sRXBYTES;
u08 variable;  
ui16 textcolor;    // color of text
ui16 backcolor;    // color of background

ui16 varvar;  

void lcd_print_regs()
{
sTEMP=TI_CC_SPIReadStatus(TI_CCxxx0_RSSI);      

if (sTEMP!=sRSSI)
{

lcd_setxy(10,75);
lcd_str_fl("RSSI ",f8x14, textcolor);    
lcd_str_ram(sRSSI,f8x14, textcolor);    
sRSSI=sTEMP;
}

sTEMP=TI_CC_SPIReadStatus(TI_CCxxx0_LQI);      
  if (sTEMP!=sLQI)
   {
    lcd_setxy(10,90);
    lcd_str_fl("LQI ",f8x14, textcolor);    
    lcd_str_ram(sTEMP,f8x14, textcolor);    
    sLQI=sTEMP;
   }

sTEMP=TI_CC_SPIReadStatus(TI_CCxxx0_RXBYTES);
  if (sTEMP!=sRXBYTES)      
    {
      lcd_setxy(10,60);
      lcd_str_fl("RXBYTES ",f8x14, textcolor);    
      lcd_str_ram(sTEMP,f8x14, textcolor);    
     sRXBYTES=sTEMP;
    }  
}

void main(void)
{
int MODE;
int x=10;
int result, i;
long int count=0;
backcolor=0xBDF7;
textcolor=blue;


DDRA.0=1;
DDRA.1=1;
PORTA.0=1;
PORTA.1=1;

PORTB.6=0;                                    
DDRB.2=1;
DDRD.3=0;                            

lcd_init();
lcd_clr();        
fill_screen(0xbdf7);
lcd_setxy(10,120);
lcd_str_fl("StartUp CC2500...",f8x14, textcolor);    


      TI_CC_SPISetup();                         // Initialize SPI port
      TI_CC_PowerupResetCCxxxx();               // Reset CCxxxx


str=TI_CC_SPIReadReg(TI_CCxxx0_IOCFG0 );      


lcd_setxy(10,105);
lcd_str_fl("GDO0 ",f8x14, textcolor);    
lcd_str_ram(str,f8x14, textcolor);    


       writeRFSettings();                        // Write RF settings to config reg
       TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE,paTable,paTableLen );//Write PATABLE  
       TI_CC_SPIStrobe(TI_CCxxx0_SIDLE);
       TI_CC_SPIStrobe(TI_CCxxx0_SFRX);
       TI_CC_SPIStrobe(TI_CCxxx0_SFTX);

MODE=TRANSMITTER;

if (MODE==RECIEVER) // ÄËß ÏÐÈÅÌÍÎÃÎ ÌÎÄÓËß
  {

  

    TI_CC_SPIStrobe(TI_CCxxx0_SRX);
    while (gdo0==0)
     {
     }

     while (gdo0==1)
     {
      }


      
         while(1) lcd_print_regs();
}

// -----------------------------------------------------------


if (MODE==TRANSMITTER)    // ÄËß ÏÅÐÅÄÀÞÙÅÃÎ ÌÎÄÓËß
  {
  


       while (1)
       {      
         for (i=0;i<64;i++) { RF_TX_Buffer[i]=0x3E;}          //Çàãîíÿåì äàííûå â ïåðåìåííóþ áóôåðà    
        
         str=TI_CC_SPIReadStatus(TI_CCxxx0_TXBYTES);          // Âûâîäèì íà ýêðàí êîëè÷åñòâî áàéò â FIFO
          lcd_setxy(10,60);
          lcd_str_fl("BEFORE WRITE ",f8x14, textcolor);    
          lcd_str_ram(str,f8x14, textcolor);    
        
         TI_CC_SPIWriteBurstReg(TI_CCxxx0_TXFIFO, RF_TX_Buffer, 64); //  Çàïîëíÿåì  FIFO

         str=TI_CC_SPIReadStatus(TI_CCxxx0_TXBYTES);         // Âûâîäèì íà ýêðàí êîëè÷åñòâî áàéò â FIFO
          lcd_setxy(10,45);
          lcd_str_fl("BEFORE TX ",f8x14, textcolor);    
          lcd_str_ram(str,f8x14, textcolor);    


         TI_CC_SPIStrobe(TI_CCxxx0_STX);         // Âêëþ÷àåì ïåðåäà÷ó
         delay_ms(2);

        while (gdo0==0)
         {
         }

        while (gdo0==1)
         {
         }


         str=TI_CC_SPIReadStatus(TI_CCxxx0_TXBYTES);     // Âûâîäèì íà ýêðàí êîëè÷åñòâî áàéò â FIFO
          lcd_setxy(10,30);
          lcd_str_fl("AFTER TX ",f8x14, textcolor);    
          lcd_str_ram(str,f8x14, textcolor);    

       TI_CC_SPIStrobe(TI_CCxxx0_SIDLE);
        TI_CC_SPIStrobe(TI_CCxxx0_SFTX);              // îïóñòîøàåì FIFO


         str=TI_CC_SPIReadStatus(TI_CCxxx0_TXBYTES);
          lcd_setxy(10,15);
          lcd_str_fl("AFTER FLUSH ",f8x14, textcolor);    
          lcd_str_ram(str,f8x14, textcolor);    

       }  
    
   }



}
Go to the top of the page
 
+Quote Post
woodman
сообщение Jun 20 2009, 08:10
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 15
Регистрация: 30-05-05
Пользователь №: 5 537



Цитата(zheka @ Jun 20 2009, 05:57) *
Тихо сам с собою я веду беседу...

}[/code]

Спасибо, порадовали.
Напомнили анекдот про девушку и парня в лифте, короче в конце она ему посоветовала делать Это "тихо сам с собою..".
bb-offtopic.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- zheka   Мои мучения с CC2500   Jun 12 2009, 06:37
- - Alexashka   А платы SmartRF04EB у Вас нет? Тогда можно было бы...   Jun 13 2009, 09:43
- - zheka   Разобрался. Была ошибка монтажа. ТОчнее разводки....   Jun 13 2009, 10:02
|- - aaarrr   Цитата(zheka @ Jun 13 2009, 14:02) Ламерс...   Jun 13 2009, 10:07
- - zheka   гы... У меня в принципе все работает, тем не мене...   Jun 13 2009, 10:55
|- - Alexashka   Цитата(zheka @ Jun 13 2009, 14:55) гы... ...   Jun 13 2009, 11:02
- - zheka   Сдела вот так: Код#define SPI_OFF SPCR =0; #defi...   Jun 13 2009, 11:03
- - aaarrr   Ну, правильнее было бы сделать как-то так: Код#def...   Jun 13 2009, 11:12
- - zheka   aaarrr, спасибо за ликбез ))) Ох попью я еще кров...   Jun 13 2009, 11:44
|- - aaarrr   Цитата(zheka @ Jun 13 2009, 15:44) Итак, ...   Jun 13 2009, 11:58
- - zheka   осциллограф воспринимает 1мгц. сейчас попробую тес...   Jun 13 2009, 12:14
|- - Alexashka   Цитата(zheka @ Jun 13 2009, 16:14) осцилл...   Jun 13 2009, 14:38
- - zheka   это как? и можно эт о отключить?   Jun 13 2009, 15:04
|- - Alexashka   Цитата(zheka @ Jun 13 2009, 19:04) это ка...   Jun 13 2009, 15:43
- - zheka   нет, не из звуковухи. Вот описание http://trade-m....   Jun 13 2009, 15:58
- - Alexashka   А частотомера нет? Вобщем Вы меряете 135? кГц ча...   Jun 13 2009, 16:14
- - zheka   192 - максимальный коэффициент деления. Впрочем, я...   Jun 13 2009, 16:48
- - zheka   rx3apf ЦитатаПохоже, "не то" читается. Ч...   Jun 18 2009, 17:43
- - zheka   Господа, не опустошается буфер FIFO при передаче. ...   Jun 19 2009, 15:54
|- - Alexashka   Цитата(zheka @ Jun 19 2009, 19:54) Что де...   Jun 20 2009, 09:03
- - zheka   ЦитатаМожет быть Вам для начала прочитать внимател...   Jun 20 2009, 14:51
|- - Alexashka   Цитата(zheka @ Jun 20 2009, 18:51) А в че...   Jun 21 2009, 22:52
- - zheka   ДОбавил после приема синхрослова и далее приема па...   Jun 21 2009, 12:51
- - zheka   Вы вообще мои сообщения читаете? Я написал, что вз...   Jun 22 2009, 02:32
|- - bodja74   Цитата(zheka @ Jun 22 2009, 06:32) А помо...   Jul 1 2009, 16:35
|- - Alex B._   Цитата(bodja74 @ Jul 1 2009, 20:35) 7 CH...   Jul 2 2009, 06:30
- - zheka   Я так и не понял, почему длина пакета может быть ...   Jun 28 2009, 17:51
|- - Sergei_B   Цитата(zheka @ Jun 28 2009, 21:51) Я так ...   Jun 29 2009, 10:10
- - zheka   Насколько я понял, длина пакета - это вещь аппарат...   Jun 29 2009, 13:07
|- - Sergei_B   Цитата(zheka @ Jun 29 2009, 17:07) Наскол...   Jun 30 2009, 03:28
- - zheka   ЦитатаЕсли PKTCTRL0.LENGTH_CONFIG=0 количество дан...   Jul 2 2009, 03:13
|- - bodja74   Цитата(zheka @ Jul 2 2009, 07:13) Фиксиро...   Jul 4 2009, 09:17
- - zheka   Ковыряюсь с подстройкой частоты. Что-то не получае...   Jul 2 2009, 07:18
- - zheka   Почему RSSI и LQI в статусных регистрах отличаются...   Jul 3 2009, 22:01
- - zheka   у меня от расстояния пропорционально изменяется RS...   Jul 5 2009, 16:34
- - bodja74   Для начала снесите бит CRC_OK с LQI ,а то цифры дл...   Jul 7 2009, 08:43
- - zheka   Настройкой? Я игрался с настройкой - и RSSI и LQI ...   Jul 7 2009, 15:41
- - bodja74   У вас дальность какая на уверенном приеме ? Пропад...   Jul 7 2009, 17:27
- - zheka   Дальность проверял только в помещении. Точную под...   Jul 8 2009, 08:07
|- - bodja74   Цитата(zheka @ Jul 8 2009, 12:07) Тем бол...   Jul 10 2009, 14:04
- - zheka   ЦитатаДайте угадаю ,у вас даже при включении питан...   Jul 10 2009, 15:11
|- - bodja74   Цитата(zheka @ Jul 10 2009, 19:11) Таки в...   Jul 10 2009, 16:01
- - zheka   Вот вам мое чудо засунутое под сканер. МОжет быть ...   Jul 10 2009, 17:03
|- - bodja74   Цитата(zheka @ Jul 10 2009, 21:03) Вот ва...   Jul 10 2009, 21:02
|- - _3m   Цитата(bodja74 @ Jul 11 2009, 01:02) Для ...   Apr 29 2010, 13:04
- - zheka   ЦитатаПо той же причине ,нужно дать задержку транс...   Jul 11 2009, 03:17
- - RT_051   Здравствуйте, пытаюсь разобраться с СС2500. Скачал...   Apr 27 2010, 08:53
- - Олежик   Подскажите пожалуйста, - насколько грубую я допус...   Apr 29 2010, 17:59
|- - CHYVAKEASTSIDE   Привет всем! Есть просьба. У кого есть рабоча...   Jul 26 2010, 06:03
- - Ivan Kuznetzov   Привет всем! Шлю в CC2500 команду на определен...   Sep 14 2012, 16:02
- - rx3apf   Это, случаем, не первый байт ответа ? Так это не и...   Sep 19 2012, 17:14


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 17:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01495 секунд с 7
ELECTRONIX ©2004-2016