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

 
 
> MRF24J40MA SPI проблема, странно себя ведет - доктор, что я делаю не так?
A. Fig Lee
сообщение Jul 9 2014, 14:57
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Здравствуйте,
прикупил 2 модулька означенных на digikey, припаял контакты, подсоединил проводочками дюпон, тестирую.
Делаю ресет (отрицательный импульс на вывод)
и пытаюсь читать регистры, в которых после ресета есть установленные биты.
Не соответствует даташиту.
Как правило первый не нулевой MSB чиатется правильно, дальше с переменным успехом.
Попробовал писать в TXFIFO и регистры @ 0x200..
Если пишу 0xFF, читается 0xFF, если пишу 0хDF, например, читается 0хDE.
Если есть хоть 1 ноль в байте, последний бит всегда 0, чем больше 0 в байте, тем больше лишних нулей..
Ничего не понимаю..
Пользовал PIC16F26K22 аппаратный SPI, мод 00.
Смотрел логическим анализатором - говорит тоже самое что и PIC видит.
Взял другой модуль, подключил к ардуино, использовал библиотеку
https://github.com/karlp/Mrf24j40-arduino-library
и пример из http://projects.schneidr.de/2012/10/mrf24j40-and-arduino/
добавил запись и чтение регистров (пробовал и короткое и длинное)..
Так же ведет себя.

Доктор, что я делаю не так?


Вот очень похожий на мой паттерн данных посылаемых и получаемых здесь:

http://www.avrfreaks.net/index.php?name=PN...ic&p=857265

Сообщение отредактировал A. Fig Lee - Jul 9 2014, 15:38


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Voldemari4
сообщение Jul 9 2014, 17:17
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 5-05-14
Из: Минск
Пользователь №: 81 582



А вот у вас ресет на RC2, а соответствующий ему TRISС2 похоже что настроен на вход
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Jul 9 2014, 18:25
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(Voldemari4 @ Jul 9 2014, 13:17) *
А вот у вас ресет на RC2, а соответствующий ему TRISС2 похоже что настроен на вход

В init():

Код
void init() {
    TRISA = 0xF0;
    TRISB = 0xE7;
    // turn off analog inputs
    ANSELB = 0;
    //weak pullup is on by default
    // enable timer0
    T0CONbits.T0CS = 0; //internal timer
    T0CONbits.T0PS = 1; //1:4 - 4 uS clock
    T0CONbits.PSA = 1; //assign prescaler
    T0CONbits.TMR0ON = 1;


    initSPI();

    //MRFJ24 reset pin
    PORTCbits.RC2 = 1;
    TRISCbits.TRISC2 = 0;

}


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 12:40
Рейтинг@Mail.ru


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