Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » SPI: 18F252 и nRF24L01+ (помогите передать число с обратной связью)
SPI: 18F252 и nRF24L01+
Anatoliy1000 Дата: Чт, 17.12.2020, 16:02  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 182
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Здравствуйте! Вот и настало время "победить" SPI. От помощи не откажусь.
Появилось время. Сижу дома с температурой. Сегодня сдал тест на Ковид19. Сказали результат 4 дня ждать. Решил пополнить знания по указанному протоколу. И если я думал, что I2C это сложно, то в SPI вообще настроек оказалось море. Понимаю, что начнете сейчас закидывать камнями, но без вашей помощи не как...
Итак начнем.
Задача: передать через МК на РадиоМодуль (nRF24L01+) число (например: 100), это число отправить другому РадиоМодулю он своему МК, тот обрабатывает и возвращает обработанное число, например 100+1=101 и так далее. Затем зная базовые настройки можно вникать в детали.

Открываю ДатаШит по MSSP в режиме SPI.

17.2 Управляющие регистры. Их всего 2.

SSPSTAT: Регистр статуса модуля MSSP, выбираю нужные биты настройки.


SSPCON: Регистр управления модуля MSSP


Биты регистров TRIS должны бытьнастроены следующем образом:
• SDI, бит TRIS должен быть установлен в '1';
• SDO, бит TRIS должен быть сброшен в '0';
• SCK (ведущий режим), бит TRIS должен быть сброшен в '0';
• SCK (ведомый режим), бит TRIS должен быть установлен в '1';
• -SS, бит TRIS должен быть установлен в '1'

Казалось бы все просто... Но это лишь даташит... Почему с I2C все проще было? Минимум настроек, передал-принял. Конечно же сам тоже не догнал как там делать только после того как вы мне дали пример подключения термодатчика, стало что-то проясняться.

Честно говоря дошел до картинки и все мозг закипел.

У кого-нибудь есть пример (легкий) с минимальными настройками передачи-приема на nRF24L01+? Нашел пример на американском сайте, но там регистрация меня блокирует. Может я попал под санкции)

И еще. подскажите как в Протеус добавить nRF24L01+? Все эту проблемку решил... Есть модуль.

Прикрепления: 3817541.png(102.2 Kb) · 3837759.png(71.3 Kb) · 2780851.png(22.4 Kb) · 4155646.png(27.7 Kb)


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
Сообщение отредактировал Anatoliy1000 - Чт, 17.12.2020, 16:55
ЯНДЕКС Дата: 17.12.2020
xvovanx Дата: Пт, 18.12.2020, 09:29  |                                                                                                                Сообщение # 2
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 446
Репутация: 53   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата Anatoliy1000 ()
У кого-нибудь есть пример (легкий) с минимальными настройками передачи-приема на nRF24L01+?

Вот лови кучку примеров что у меня есть, отдельно по папкам и описание, скажу сразу - все примеры не мои, а собраны тут на форуме и на других англ. площадках, так что подсказать детально не смогу. Пару примеров были от форумчанина Mixas
Прикрепления: NRF24L01.zip(344.5 Kb)

Сообщение отредактировал xvovanx - Пт, 18.12.2020, 09:35
Anatoliy1000 Дата: Пт, 18.12.2020, 14:06  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 182
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Спасибо! Плюсанул. Вы настоящий товарищ!
Мельком глянул. Все коды по 2-3 километра. Неужели не бывает простой отправки числа? Буду изучать...

Добавлено (19.12.2020, 14:55)
---------------------------------------------
Ээээм. На первый взгляд все коды. кроме nRF2401 TX-RX программный SPI.


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
Сообщение отредактировал Anatoliy1000 - Пт, 18.12.2020, 14:07
Anatoliy1000 Дата: Сб, 19.12.2020, 19:36  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 182
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Попытка с добавлением модуля в Протеус оказалась неудачной. Выдает ошибку.

Прикрепления: 5101017.png(51.2 Kb) · 7059463.png(10.2 Kb)


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
ivan_fd Дата: Сб, 19.12.2020, 23:50  |                                                                                                                Сообщение # 5
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1145
Репутация: 115   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Я думаю, что здесь проблема в том что это не модуль (не библиотека), а просто  нарисованый компонент. Симулироватся он не может.

Меня все время преследуют умные мысли...но я быстрее!!!
Anatoliy1000 Дата: Вс, 20.12.2020, 09:47  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 182
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Ясно. Хотел попробовать передачу от МК к МК тоже оказалось не просто....
Придется искать что-то по проще. Не одолеть мне такие вещи. Подскажите какой-нибудь не дорогой радио модуль с общением через USART.
Задача такая. Хочу сделать авто-финиш при приеме зачета 100 метровки и секундомер на челночный бег.

То есть в первом варианте на старте при пересечении линии (разрыве подсветки фоторезистора) начало отсчета и передача на финиш старта, а на финише остановка времени, тоже с разрывом подсветки.
Во втором варианте при пересечении старта начало отсчета, при пересечении второй полоски (10 метров от старта) считает +10 метров и  так далее...
Почему рассматриваю бюджетный вариант, потому что как всегда все за свой счет, хоть и для общего дела (для студентов). Со студентов деньги не беру, так как это самый бедный слой населения.

Нашел такое: HC-12 дальность 1000 метров, 235 рублей. Вроде норм.


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
Сообщение отредактировал Anatoliy1000 - Вс, 20.12.2020, 10:22
ivan_fd Дата: Вс, 20.12.2020, 19:35  |                                                                                                                Сообщение # 7
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1145
Репутация: 115   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Пробуйте, дерзайте. Но тут нужны не фоторезисторы, а инфракрасный излучатель и приемник. А еще лучше старт нажимать вручную. А то где вы поставите датчик, что бы не было ложных срабатываний.
Ну и NRF2401+, мне кажется, буде получше, они точно передадут, то что вы хотите, а с HC-12 нужно лепить какую то CRC, да и дороже они.


Меня все время преследуют умные мысли...но я быстрее!!!
Anatoliy1000 Дата: Чт, 24.12.2020, 18:45  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 182
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

1. Вот  попытка от МК к МК, что бы разобраться как вообще с этим работать. Вроде ошибки не выдает, но и передачу не производит.
2. Почему инфракрасный излучатель? Мне кажется проще направить лазерную указку на фоторезистор - пересечение это старт (финиш). К тому же минимум деталей: с одной стороны "коробочка с начинкой" в том числе указка + приемный фоторезистор, с другой зеркало. А как ИК точно рассчитает пересечение линии?
Прикрепления: _-.rar(17.4 Kb)


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
Сообщение отредактировал Anatoliy1000 - Чт, 24.12.2020, 19:27
ivan_fd Дата: Чт, 24.12.2020, 22:50  |                                                                                                                Сообщение # 9
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1145
Репутация: 115   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Anatoliy1000
Я, чесно говоря, сейчас не очень соображаю, что бы Вам помочь (коронавирус у меня и температура сморила).
Но по беглому просмотру кода, там ничего и не будет передавать. Модуль NRF24L01+ не настроен вообще.
И еще, Вам уже писали про это кучу раз, но вы упорно пишете одно и то же. В 18f252 НЕТУ ВНУТРЕННЕГО ГЕНЕРАТОРА!!!!!!!


Меня все время преследуют умные мысли...но я быстрее!!!
Anatoliy1000 Дата: Пн, 18.01.2021, 13:24  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 182
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Цитата ivan_fd ()
В 18f252 НЕТУ ВНУТРЕННЕГО ГЕНЕРАТОРА!!!!!!!
Это я так называю RC. Мой сленг хромает... Сори. Это тоже самое когда люди говорят вместо деньги финансы - у меня мозг взрывается (я финансист), но я не поправляю. кому как удобней... 
А когда начал научную литературу "почитывать", так вообще вышел из рамок социального общения. Понял почему ученные это элита, голубая кровь, полубоги с одной стороны и люди из другого мира с другой. Сам давно пытаюсь написать научную статью, но не хватает терпения, времени, а может просто лень...
В общем выздоравливайте. Я сам сегодня получил тест на КОВИД после самоизоляции (почти месяц на даче жил).


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
Anatoliy1000 Дата: Вс, 31.01.2021, 15:22  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 182
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Попытка 2. Пока было время в выходные и немного во время болезни, начитался про этот спай. Оказалось все просто. Но в симуляции выдает ошибку. В железе не пробовал.
Если будет время посмотрите ПЖ.
Сделал передачу по 2 проводам от МК1 к МК2 числа 10. МК2 принимает 10, прибавляет 100 отображает 110. Вроде все учел, но симулятор гонит ошибку. Может мой косяк, но все на 100 раз проверил. Тем более что там настроек вообще мало оказалось.

Добавлено (21.02.2021, 17:30)
---------------------------------------------
Пришли платки NRF24L01 со встроенным RX-TX. Стоимость на 30 рублей дороже, а в освоении "детский сад" + всего 2 ноги для приема передачи.

Прикрепления: 3043025.rar(76.7 Kb)


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
ЯНДЕКС Дата: 31.01.2021
Форум Picbasic.ru » Программирование МК » Proton PicBasic » SPI: 18F252 и nRF24L01+ (помогите передать число с обратной связью)
  • Страница 1 из 1
  • 1
Поиск: