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

 
 
 
Reply to this topicStart new topic
> СС1100 - не проходит передача пакета
Radioman
сообщение Jan 15 2009, 14:01
Сообщение #1





Группа: Участник
Сообщений: 8
Регистрация: 18-12-08
Пользователь №: 42 578



Доброго времени суток!

Вопрос по СС1100.

При отправке пакета после команды STX буфер TXFIFO не очищается,
из записанных в него 11 байт 7 остаются. При этом СС1100 остается в режиме
передачи. В документации написано,что буфер должен очищаться,а СС1100
должен переходить в режим IDLE (именно такой режим и сконфигурирован MCSM1(0х17)=0х30).
На приемнике принимаются 2 первых байта отправленного пакета.

Контроллер - ATTINY2313.

Инициализация СС1100 - согласно документации и советов на этом форуме-мощность и остальные
регистры прописываются корректно.

Алгоритм отправки:
- запись данных в TXFIFO
- чтение регистров статуса - RXBYTES, MARCSTATE, TXBYTES, PKTSTATUS
- включил передачу - STX
- жду "1" (синхрослово передано) на GDO2 (по прерыванию)
- по прерыванию переход на ожидание "0" (пакет передан) на GDO2 (опрос)
- очистка TXFIFO

Помогите,пожалуйста,разобраться в чем дело,что не так. Сам не могу додуматься wacko.gif

Заранее спасибо.


Конфигурация регистров СС1100 - SmartRF® Studio

; Chipcon
; Product = CC1100
; Chip version = F (VERSION = 0x03)
; Crystal accuracy = 10 ppm
; X-tal frequency = 26.48 MHz
; RF output power = 0 dBm
; RX filterbandwidth = 551.666667 kHz
; Phase = 0
; Datarate = 249.704590 kBaud
; Modulation = (7) MSK
; Manchester enable = (0) Manchester disabled
; RF Frequency = 433.919908 MHz
; Channel spacing = 200.006104 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 = (1) FEC enabled
; Length configuration = (2) Enable infinite length packets.
; Packetlength = 11
; Preamble count = (2) 4 bytes
; Append status = 1
; Address check = (0) No address check
; FIFO autoflush = 1
; Device address = 0
; GDO0 signal selection = (12) Serial Synchronous Data Output
; GDO2 signal selection = ( 6) Asserts when sync word has been sent / received, and de-asserts at the end of the packet
1100
RF_SETTINGS code rfSettings = {
0x0A, // FSCTRL1 Frequency synthesizer control.
0x00, // FSCTRL0 Frequency synthesizer control.
0x10, // FREQ2 Frequency control word, high byte.
0x62, // FREQ1 Frequency control word, middle byte.
0xFF, // FREQ0 Frequency control word, low byte.
0x2D, // MDMCFG4 Modem configuration.
0x35, // MDMCFG3 Modem configuration.
0x73, // MDMCFG2 Modem configuration.
0xA2, // MDMCFG1 Modem configuration.
0xEF, // MDMCFG0 Modem configuration.
0x00, // CHANNR Channel number.
0x00, // DEVIATN Modem deviation setting (when FSK modulation is enabled).
0xB6, // FREND1 Front end RX configuration.
0x10, // FREND0 Front end TX configuration.
0x18, // MCSM0 Main Radio Control State Machine configuration.
0x1D, // FOCCFG Frequency Offset Compensation Configuration.
0x1C, // BSCFG Bit synchronization Configuration.
0xC7, // AGCCTRL2 AGC control.
0x00, // AGCCTRL1 AGC control.
0xB0, // AGCCTRL0 AGC control.
0xEA, // FSCAL3 Frequency synthesizer calibration.
0x2A, // FSCAL2 Frequency synthesizer calibration.
0x00, // FSCAL1 Frequency synthesizer calibration.
0x1F, // FSCAL0 Frequency synthesizer calibration.
0x59, // FSTEST Frequency synthesizer calibration.
0x88, // TEST2 Various test settings.
0x31, // TEST1 Various test settings.
0x09, // TEST0 Various test settings.
0x07, // FIFOTHR RXFIFO and TXFIFO thresholds.
0x06, // IOCFG2 GDO2 output pin configuration.
0x0C, // IOCFG0D GDO0 output pin configuration. Refer to SmartRF® Studio User Manual for detailed pseudo register explanation.
0x08, // PKTCTRL1 Packet automation control.
0x04, // PKTCTRL0 Packet automation control.
0x00, // ADDR Device address.
0x11 // PKTLEN Packet length.
Go to the top of the page
 
+Quote Post
Ghost_V
сообщение Jan 30 2009, 15:24
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 16-11-07
Пользователь №: 32 388



Цитата(Radioman @ Jan 15 2009, 17:01) *
.
0x0C, // IOCFG0D GDO0 output pin configuration. Refer to SmartRF® Studio User Manual for detailed pseudo register explanation.
0x08, // PKTCTRL1 Packet automation control.
0x04, // PKTCTRL0 Packet automation control.
0x00, // ADDR Device address.
0x11 // PKTLEN Packet length.

У вас во первых, заданна фиксированная длинна пакета 17 байт.
во вторых, на приемном конце можно посмотреть число принятых байт данных через регистр.
сегодня только с этими трансиверами упражнялся, странно что два байта данных, похоже что первый поспринимается как длинна пакета а второй как адресс, или еще чтонибудь. у меня всё работает могу написать конфигурацию
Но это тогда в понедельник, всё на работе у меня

Сообщение отредактировал Ghost_V - Jan 30 2009, 15:29
Go to the top of the page
 
+Quote Post
ysmat
сообщение Jun 5 2012, 12:55
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 18-01-09
Пользователь №: 43 553



решил поднять ету тему так как столкнулся с подобной проблемой
не работает bust доступ
например нужно передать 4 байта

CODE

spi(CC1100_TXFIFO); // КОМАНДА ДОСТУПА К БУФЕРУ БУСТ РЕЖИМ
spi(0x04); // ДЛИННА ПАКЕТА
spi(0x01);
spi(0x02);
spi(0x03);
spi(0x04);


после этого ничего дальше не работает
такое впечетление что на дальнейшие команды чипкон реагирует как на продолжение
пакета данных
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jun 5 2012, 18:13
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



А кто ChipSelect будет дергать после окончания загрузки пакета ?
Go to the top of the page
 
+Quote Post
ysmat
сообщение Jun 5 2012, 19:51
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 18-01-09
Пользователь №: 43 553



Цитата(rx3apf @ Jun 5 2012, 22:13) *
А кто ChipSelect будет дергать после окончания загрузки пакета ?

никогда не подумал бы что его нужно передергивать
думал что он нужен только для enable то есть пока он активен идет обмен

Сообщение отредактировал ysmat - Jun 5 2012, 19:52
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jun 5 2012, 20:28
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(ysmat @ Jun 5 2012, 23:51) *
никогда не подумал бы что его нужно передергивать
думал что он нужен только для enable то есть пока он активен идет обмен

Там же все в документации в детальных подробностях расписано. А как иначе завершать бурстовый обмен ? А байт длины используется только собственно модемной частью и только для пакетов переменной длины, на загрузку TX FIFO никак не влияет.
Go to the top of the page
 
+Quote Post
ysmat
сообщение Jun 13 2012, 11:28
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 18-01-09
Пользователь №: 43 553



есть еще одна тонкость
передавать команды нужно только тогда когда чипкон обработал передыдущие
реализуеться это опросом miso
Код
void CC1100_Write(unsigned char adres,unsigned char dat)
{
while (MISO == 1) {} // ОЖИДАНИЕ ГОТОВНОСТИ ЧИПКОНА
spi(adres); // ОТПРАВИТЬ АДРЕС
spi(dat); // ОТПРАВИТЬ ДАННЫЕ
}

Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jun 13 2012, 21:10
Сообщение #8


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(ysmat @ Jun 13 2012, 15:28) *
есть еще одна тонкость
передавать команды нужно только тогда когда чипкон обработал передыдущие
реализуеться это опросом miso

Не "обработал предыдущие", а "перешел в состояние готовности". Это _совершенно_ разные вещи., никак между собой не связанные.
Go to the top of the page
 
+Quote Post

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

 


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


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