Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Есть проблема с Si1000
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
vpm
Добрый день! Есть проблема с записью и считыванием регистра SPI1DAT и в передатчике и в приемнике Si1000. Не пишутся данные в SPI1DAT. При записи отображается 0х00. Среда разработки IDE v4.20.00. Кто-нибудь сталкивался с такой проблемой? Что может быть?.
Harbinger
SFRPAGE до того не переключали случаем? Там д.б. ноль, если даташит не врёт. sm.gif
vpm
Цитата(Harbinger @ Mar 11 2012, 23:39) *
SFRPAGE до того не переключали случаем? Там д.б. ноль, если даташит не врёт. sm.gif


SFRPAGE =0; С этим все чисто. Т.е 3-х проводной интерфейс SPI1 в режиме мастер (напр. для передатчика), и при записи значения в SPI1DAT, SPI1CN=0х03. После записи SPI1CN=0х01. Вроде все чисто, но SPI1DAT при этом = 0х00.
at90
Цитата(vpm @ Mar 11 2012, 23:11) *
SFRPAGE =0; С этим все чисто. Т.е 3-х проводной интерфейс SPI1 в режиме мастер (напр. для передатчика), и при записи значения в SPI1DAT, SPI1CN=0х03. После записи SPI1CN=0х01. Вроде все чисто, но SPI1DAT при этом = 0х00.

Кроссбар и порты правильно настроены?
Я начинал с примеров от HopeRF RFM50. Там тоже SI1000. Все заработало сразу.
Вот исходники.
http://www.hoperf.com/upload/rf/rf50_code.rar
Посмотрите как там spi сделан.
Vladimir Prokofiev
Кусок своего кода для ыш-1000 прилагаю, но я использовал, кажется, 3-wire и NSS дергал вручную, не помню уже почему

CODE
void ForceReg ( bit rw, unsigned char addr, unsigned char dataToReg ){
// Send SPI data using double buffered write
EA = 0;

NSS1 = 0; // drive NSS low
SPIF1 = 0;
if( rw ){ // clear SPIF
SPI1DAT = (addr | 0x80 ); // write reg address
} else {
SPI1DAT = (addr ); // write reg address
}
while(!TXBMT1); // wait on TXBMT
SPI1DAT = dataToReg; // write value
while(!TXBMT1); // wait on TXBMT
while((SPI1CFG & 0x80) == 0x80); // wait on SPIBSY

curReg.dataFromReg = SPI1DAT;

SPIF1 = 0; // leave SPIF cleared
NSS1 = 1;

EA = 1; // drive NSS high
}


Кроссбар и порты получаются утилитой, целый файл наверное нет смысла класть.
Хотел сказать посмотрите осцилом что там реально получается, но тут это затруднительно sm.gif
редактор
Отладка на камне или в симуляторе??? Если на камне, то осцилограф рассудит. Если в симуляторе, то не вся перефирия и не увсех камней поддерживается. Иногда поддерживается криво.
vpm
at90, спасибо. Проблема была в иницилизации. Да и сложно было искать на рабочем изделии (сигнальные образцы TR и RF)

Vladimir Prokofi..., редактор Отладка на камне. Спектроанализатора на 500МГц нет, да и осц. на 500МГц тоже (раб.частота 434МГц), а осциллографом (по низкой) смотреть на SPI1 не получается, он наружу не выведен.

Что касается SPI1DAT, то отладчик IDE не показывает его состояние и о работоспособности можно судить только косвенно по возвращаемым значениям.
Всем еще раз спасибо
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.