LINUX.ORG.RU

Посоветуйте микроконтроллер или радиомодуль

 , ,


0

2

1) Есть датчик. У датчика есть интерфейс SPI. Я хочу опрашивать его пару тысяч раз в секунду и передавать значения без какой-либо обработки на компьютер на онтопике или смартфон на Android. При этом извращения в виде втыкания в смартфон всяких специальных приёмников через USB OTG не хочу. Должно быть нужно только приложение. В компьютер же можно что-нибудь и воткнуть (тот же Bluetooth донгл, но на ноутбуках практически всегда есть из коробки).

2) Поток данных - несколько килобайт в секунду. Однако было бы не плохо, если можно уходить в какой-нибудь режим ожидания и начинать передачу лишь по запросу. Да так чтобы это давало большой плюс к пункту 4.

3) Дальность: 5-10 метров это ок. Сотни метров не нужно.

4) Низкое энергопотребление. Вся система будет работать от аккумулятора и должна быть достаточно компактной (так что советы прикрутить к этой штуке аккумулятор от КАМАЗа идут лесом). В даташите на NRF24L01 указан ток потребления порядка 13 мА в момент передачи. С учётом того, что мне дальность можно поменьше (на улице дальность достигает 50-70 метров по моим личным тестам у этого модуля), как и скорость, то будем считать, что радиомодуль должен жрать не больше 5 мА в среднем.

По этим хотелками я прихожу к выводу, что мне должен идеально подойти Bluetooth (Wi-Fi явно завалит 4-ый пункт, а всякие NRF24L01 не проходят по 1-ому пункту - смартфон с ней работать не будет). Но тут есть вопрос: обычный Bluetooth или Low Energy? Поразбираться немного подольше я не против, если это даст заметный прирост в автономности. Или же BLE при непрерывной передаче нескольких килобайт данных в секунду жрёт не меньше, чем обычный Bluetooth?

Дальше. Есть два варианта - отдельный радиомодуль и отдельный микроконтроллер или комбинированное решение. По идее в плане энергопотребления второй вариант лучше, зато первый проще в реализации (я могу выбрать любой микроконтроллер, который умею программировать).

Так что можете посоветовать под мои хотелки, господа?

Вот, например, есть CC2540. Но там 8051 и не совсем понятно, что с SDK и компилятором (можно ли использовать какой-нибудь SDCC или надо обмазываться win-only софтом). Вроде как китайские платки с ним прошиты таким образом, чтобы управляться AT-командами. Возможно ли при этом будет воспользоваться всеми фишками BLE (допустим, я прикручу какой-нибудь MSP430 между радиомодулем и самим датчиком)?

Или, может быть, вы знаете какие-то другие хорошие микроконтроллеры со встроенным радиомодулем? Или может есть радиомодуль без микроконтроллера (чтобы не жрал лишнее), который бы я подключил к своему микроконтроллеру?

★★★★★

Бери PIC24. Очень хорошая, большая, и простая машинка, где Microchip подчистил практически все глюки, свойственные семействам 16 и 18.

Deathstalker ★★★★★ ()
Ответ на: комментарий от Deathstalker

А у них есть встроенный радиомодуль BLE? Просто, с выбором просто микроконтроллера проблем нет. Я знаю AVR, MSP430 и STM32. С учётом того, что мне нужен только SPI и не нужна высокая скорость, то можно работать на пониженных частотах, а значит можно поставить AVR или MSP430 и получить очень низкое энергопотребление. Не думаю, что PIC24 имеет какие принципиальные преимущества по сравнению с тем, что я уже перечислил, и изучение нового микроконтроллера не совсем целесообразно.

Вся фишка в том, что мне ещё радиомодуль нужен. И вопрос, наверное, про то какой радиомодуль выбрать + любой контроллер, либо некий микроконтроллер со встроенным радиомодулем.

KivApple ★★★★★ ()
Последнее исправление: KivApple (всего исправлений: 2)

Так что можете посоветовать под мои хотелки, господа?

Глянь на Espressif ESP32 © (Wi-Fi + Bluetooth), выполненный для решений, требующих минимальных показателей энергопотребления.

quickquest ★★★★★ ()
Ответ на: комментарий от quickquest

Двухъядерный Xtensa LX6 до 400DMIPS

Серьёзно? Я тут хочу какой-нибудь низкопотребляющий микроконтроллер, миллиамперы считаю, а тут чуть ли не полноценный компьютер.

Вообще, склоняюсь в итоге в сторону CC2541. Ибо они стоят копейки и мало жрут. Единственное что неприятно - vendor-lock на IAR (там библиотеки BLE-стека линкуются только через него, а на сам радиомодуль документации нет), который стоит чёрт знает сколько. Конечно, это вполне можно решить 30-дневным триалом или менее легальными методами. Для личных целей не страшно. Но что если я захочу опубликовать свой труд под свободной лицензией? Чисто формально я законченный продукт не выпускаю - не торгую девайсами и профита не получаю.

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

а тут чуть ли не полноценный компьютер.

А тут перспективы «на все случаи жизни» :)

Вообще, склоняюсь в итоге в сторону CC2541. Ибо они стоят копейки и мало жрут.

Ещё на BK3231 © можно «сколхозить». Их массово в селфи кнопках используют, можно найти совсем «задаром».

quickquest ★★★★★ ()
Ответ на: комментарий от quickquest

Пришёл к выводу, что оптимальным выбором для меня будет nRF51822.

Скачал с официального сайта SDK с примерами, зашёл в каталог с примером и выполнил make. Не нашло gcc. Подправил путь к gcc в makefile, снова выполнил make и всё собралось. К тому же прошивка по идее идёт через SWD, а у меня уже есть StLink v2.

У остальных вариантов либо vendor-lock на платные компиляторы, либо обязательно наличие внешнего микроконтроллера, либо беда с отладочными платами на AliExpress (либо дорого, либо вообще нет).

За статью спасибо, ведь там объясняются основы BLE, чего мне как раз не хватает.

KivApple ★★★★★ ()
Последнее исправление: KivApple (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.