phiss25 0 19 февраля, 2011 Опубликовано 19 февраля, 2011 · Жалоба Доброго всем времени суток. Обращаюсь к людям,имеющих опыт общения с мелкосхемой от 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; } Буду очень признателен за любые советы.Самому уже в голву ничего не идёт. Компеловская техподдержка(там покупали трансиверы) ничего вразумительного ответить не может,говорит,что должно всё нормально читаться Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться