Перейти к содержанию
    

Доступ к регистрам CC2520

Доброго всем времени суток. Обращаюсь к людям,имеющих опыт общения с мелкосхемой от TI CC2520

Понимаю,что тема избитая,но тем не менее.......

Вобщем собрал на коленках две платы с CC2520. Контроллер Мега88,компилятор CVAVR. Обмен даже наладил,криво правда пока,но данные передаются.

Перерабатывал код от TI для MSP. Так вот,функция чтения из регистров по адресам 0x00-0x3F работает нормально как под отладчиком в пошаговом режиме,так и в "реальном времени"(вывожу через UART на терминал). А вот данные с адресов выше 0x40(CHIPID) нормально считываются только под отладчиком в пошаговом режиме. Если вывожу в терминал,то вижу данные через раз,т.е. считываются значения 0x84 и следом за ним 0x80. В датташите сказано Note that when an address with LSB=0 is read the content of the corresponding address with LSB=1 is buffered. If that address is read immediately after within the same MEMRD instruction, the buffered copy is read. In this way a read of a complete 16 bit word is performed as an atomic operation. Т.е. я считываю буферизированное значение во время второго чтения,но я же это делаю не в одной операции чтения,а в разных! Ткните носом куда копать,4 дня бьюсь над этим. И ещё......Функция чтения регистров при помощи инструкции MEMRD

,взятая из примера для MSP не работает

uint8 CC2520_MEMRD8(uint16 addr)

{

uint8 value;

CC2520_SPI_BEGIN();

CC2520_SPI_TXRX(CC2520_INS_MEMRD | HIBYTE(addr));

CC2520_SPI_TXRX(LOBYTE(addr));

value = CC2520_SPI_TXRX(0x00);

CC2520_SPI_END();

return value;

}

 

работает вот такая,не подскажете в чём причина,что я не так делаю или хотя бы куда копать надо?

unsigned char MEMRD(unsigned int addr,unsigned char *data,unsigned int size)

{

unsigned char status;

CC2520_CS_ENABLE();

 

status = spi(0x10 | HIBYTE(addr) );

spi(LOBYTE(addr-1));

spi(0);

spi(0);

while(size--)

{

*data++ = spi(0);

}

CC2520_CS_DISABLE();

return status;

}

Буду очень признателен за любые советы.Самому уже в голву ничего не идёт. Компеловская техподдержка(там покупали трансиверы) ничего вразумительного ответить не может,говорит,что должно всё нормально читаться

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...