Форум РадиоКот https://radiokot.ru/forum/ |
|
USI + hardware SPI = true, USI + nRF24 = !true https://radiokot.ru/forum/viewtopic.php?f=57&t=155276 |
Страница 1 из 1 |
Автор: | parovoZZ [ Пт июн 01, 2018 08:29:52 ] |
Заголовок сообщения: | USI + hardware SPI = true, USI + nRF24 = !true |
Муррррр, мяу! Есть такой муррр код Код: //... Инициализация SPI - USI void SPI_Init(void) { SPI_DDR |= (Bit(SCK) | Bit(MISO)); // Все выводы, кроме MOSI, выходы SPI_PORT |= (Bit(MOSI) | Bit(MISO)); USICR |= (Bit(USIWM0) | Bit(USICS1) | Bit(USICLK)); } //... Передать байт данных void SPI_WriteByte(uint8_t data) { //... Копируем байт в регистр USIDR USIDR = data; //... Установим флаг начала передачи USISR = Bit(USIOIF); //... В цикле следим за флагом while(!(USISR & Bit(USIOIF))) { USICR |= ( Bit(USITC)); // Режим SPI, тактируем шину сами } _delay_us(100); // Задержка для моста SPI - UART } //... Передать и получить байт данных uint8_t SPI_ReadByte(uint8_t data) { //... Отправляем байт SPI_WriteByte(data); //... Принятый байт возвращаем return USIDR; } Так вот при подключении на шину SPI 328p я слышу общение, но nRF24 не реагирует. На запись любого регистра возвращает 0, на чтение любого регистра возвращает 15. Если после записи данных в FIFO регистр послать команду очистки, то возвращает 14. Т.к. общение с nRF начинаю с дерганья csn, то цифра 15 - это, очевидно, значение статуса. Но почему nRF никак не хочет отдавать значение запрашиваемого регистра? Точно такой же код, но с аппаратным SPI на 328p заводится без проблем. Пересмотрел кучу статей, библиотек (под абдурино и не только), код везде одинаков. Микросин, датагор, гитхаб... Вопрос, мяу, не в том, где я косячу, а в том, работал кто с этим трансивером через интерфейс USI? МУРРР |
Автор: | parovoZZ [ Пн июн 11, 2018 16:32:50 ] |
Заголовок сообщения: | Re: USI + hardware SPI = true, USI + nRF24 = !true |
Усе. Проблема была не столько в usi, сколько в организации работы трансивера. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |