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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Мои мучения с 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
Alexashka
сообщение Jun 13 2009, 09:43
Сообщение #2


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



А платы SmartRF04EB у Вас нет? Тогда можно было бы проверить -любой чип подключаетет к этой плате и она его видит и читает. И даже связь двух узлов можно сделать smile.gif, тока нужно уже 2 такие платы
Go to the top of the page
 
+Quote Post
zheka
сообщение Jun 13 2009, 10:02
Сообщение #3


Гуру
******

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



Разобрался.
Была ошибка монтажа. ТОчнее разводки. Вывод 15 был подключен к конденсатору, а к питанию нет. Невнимательность, чтоб ее.
Регистры читаются и пишутся. Буду разбираться.
Ламерский вопрос по ходу дела у меня экран сидит на аппаратном SPI. Вырубаю его так: SPCR = 0<<6; Сбрасываются ли при этом биты MSTR, SPR0, SPR1, SPI2x?

Сообщение отредактировал zheka - Jun 13 2009, 10:06
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jun 13 2009, 10:07
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zheka @ Jun 13 2009, 14:02) *
Ламерский вопрос по ходу дела у меня экран сидит на аппаратном SPI. Вырубаю его так: SPCR = 0<<6; Сбрасываются ли при этом сбразываться биты MSTR, SPR0, SPR1, SPI2x?

А что по-вашему станет с нулем, если сдвинуть его на 6 бит влево?
Go to the top of the page
 
+Quote Post
zheka
сообщение Jun 13 2009, 10:55
Сообщение #5


Гуру
******

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



гы...

У меня в принципе все работает, тем не менее подскажите, как правильно, рационально, без лишних движений включать и выключать SPI в CodeVision?
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Jun 13 2009, 11:02
Сообщение #6


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Цитата(zheka @ Jun 13 2009, 14:55) *
гы...

У меня в принципе все работает, тем не менее подскажите, как правильно, рационально, без лишних движений включать и выключать SPI в CodeVision?

Посмотрите библиотеку от техаса CC2500 Examples Libraries.
Включение там точно есть. А выключение обычно делается в обратном порядке smile.gif
Go to the top of the page
 
+Quote Post
zheka
сообщение Jun 13 2009, 11:03
Сообщение #7


Гуру
******

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



Сдела вот так:

Код
#define SPI_OFF  SPCR =0;
#define SPI_ON   SPCR = (1<<SPE)|(1<<MSTR)|(0<<SPR1)|(0<<SPR0);


Правильно?

Сообщение отредактировал zheka - Jun 13 2009, 11:14
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jun 13 2009, 11:12
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Ну, правильнее было бы сделать как-то так:
Код
#define SPI_OFF    SPCR &= ~(1<<SPE)
#define SPI_ON     SPCR |= (1<<SPE)

тогда остальные биты не пострадают.
Go to the top of the page
 
+Quote Post
zheka
сообщение Jun 13 2009, 11:44
Сообщение #9


Гуру
******

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



aaarrr, спасибо за ликбез )))

Ох попью я еще крови вашей, когда пакеты слать буду...
Надо вторую плату собирать.

Вот кстати, если кому интересно на фото моя отладочная плата и на ней плата с чипом.



Так...
меряем что у нас на GDO0. По идее с кварцем 26 МГц должно быть 26000000/192 =135,416 кГц.
У меня же на фото USB осциллограф Disco рассичитывает ее как 32 кГц, а если смотреть на деления и импульсы, то они по 15 мкс, что соответствует 66,6 кГЦ и частоте 12,8 (наверное все-таки 13) МГц.

Кварц у меня SJK-6F-26MHz Вот даташит Вроде бы фундаметнальные.
Измеряю сигнал сразу после RESET до изменения регистров. Есть один косячок правда, вместо рекомендуемых 27 pf на кварце я поставил 24 pf, но вряд ли это причина.
Итак, ваши предположения - может быть я не умею пользоваться осциллографом или как всегда невнимателен?
Только что прочел содержимое регистра TI_CCxxx0_IOCFG0 - 63 (3F) что соответсвует XOSC_CLK/192

Сообщение отредактировал zheka - Jun 13 2009, 11:49
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jun 13 2009, 11:58
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zheka @ Jun 13 2009, 15:44) *
Итак, ваши предположения - может быть я не умею пользоваться осциллографом или как всегда невнимателен?

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

Возьмите нормальный аналоговый осциллограф, и посмотрите генерацию непосредственно на кварце.
Go to the top of the page
 
+Quote Post
zheka
сообщение Jun 13 2009, 12:14
Сообщение #11


Гуру
******

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



осциллограф воспринимает 1мгц. сейчас попробую тестовую картинку сделать.

Вы правы насчет убогости. Максимум, чего можно добиться в осциллографическом режиме - 50 КГц. И на картинке и при измерении полцучается 50 КГц. Ставлю же тестовые 8 мкс (125 кГц) показывает ту же фигню - 15 мкс импульс и 29 кГц в измерении.
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Jun 13 2009, 14:38
Сообщение #12


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Цитата(zheka @ Jun 13 2009, 16:14) *
осциллограф воспринимает 1мгц. сейчас попробую тестовую картинку сделать.

Вы правы насчет убогости. Максимум, чего можно добиться в осциллографическом режиме - 50 КГц. И на картинке и при измерении полцучается 50 КГц. Ставлю же тестовые 8 мкс (125 кГц) показывает ту же фигню - 15 мкс импульс и 29 кГц в измерении.

У Вас осциллограф работает в режиме стробоскопа smile.gif т.е все частоты кратные его частоте оцифровки будут давать 0 ГЦ smile.gif
Go to the top of the page
 
+Quote Post
zheka
сообщение Jun 13 2009, 15:04
Сообщение #13


Гуру
******

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



это как? и можно эт о отключить?
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Jun 13 2009, 15:43
Сообщение #14


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Цитата(zheka @ Jun 13 2009, 19:04) *
это как? и можно эт о отключить?

оосциллограф из звуковухи чтоли?
единственное- взять как тут мудро было сказано аналоговый осциллограф, либо цифровик но с частотой дискретизации хотябы на порядок больше измеряемой.
Стробоскопический осциллограф гляньте в нете, трудно на пальцах объяснить smile.gif
Go to the top of the page
 
+Quote Post
zheka
сообщение Jun 13 2009, 15:58
Сообщение #15


Гуру
******

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



нет, не из звуковухи.
Вот описание http://trade-m.ru/modules.php?name=Content...wpage&pid=2
Go to the top of the page
 
+Quote Post

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

 


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


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