Semtech Lorawan

Дэвидб
Сб 10 марта 2018 г. 14:37
Всем привет,

Я работаю над проектом с платой DISCO_L072CZ_LRWAN1. Я хотел бы использовать функцию LORA с этой доской, и хотя я наткнулся на библиотеку LORA's Lora Sandeep Mistry, этого недостаточно. Я хотел бы использовать полный стек Lorawan, чтобы я соответствовал сетям, таким как сеть вещей. Стек можно найти здесь: http: // Stackforce.GitHub.io/loramac-doc/index.HTML

Он содержит несколько примеров, в том числе один из EndNode, и он работает до тех пор, пока я использую его в Keil Ide. Но я хотел бы использовать этот стек также внутри Arduino IDE, но не знаю, как включить. Любые советы или ресурсы, которые приблизили бы меня к решению, были бы очень оценены!

Спасибо,

Дэйвид

fpistm
Сб 10 марта 2018 г. 15:43
Привет, Дэвид,
Следующий релиз предоставит булавки для вождения модуля LORA B-L072.
Я сделал немного радио-радио с библиотекой Sandeep Arduino-Lora.
https: // github.com/stm32duino/arduino_c ... 2/pull/221

Для Лоравана с этой доской я не провел тестирование с Ардуино, только с http: // www.ул.com/en/encedded-software/ ... Лрван.HTML

В любом случае, мы только что выпустили https: // github.com/stm32duino/i-unucleo-lrwan1
позволяя заставить Лоравана использовать http: // www.ул.com/en/evaluation-tools/i ... Рван1.HTML

Может быть, это можно было бы использовать с B-L072 или, по крайней мере, в качестве базы.

Дэвидб
Солнце 11 марта 2018 13:03
Спасибо за быстрый ответ!

Поближе познакомился с вашими предложениями. Когда я добавляю определения PIN -кода, которые вы предлагаете использовать с библиотекой Sandeep, и пытаюсь собрать пример наброска с Arduino IDE, я сталкиваюсь с сообщениями об ошибках: error: 'class SPIClass' has no member named 'setMISO'

fpistm
Солнце 11 марта 2018 г. 14:35
Я предполагаю, что вы используете последний выпуск Core STM:
https: // github.com/stm32duino/arduino_c ... /2018.1.18
которые обеспечивают setMISO

Дэвидб
Солнце 11 марта 2018 г. 15:25
Привет,

Моя ошибка: я использовал более старую версию библиотеки, в которой не хватало этих методов. Я устанавливаю новый прямо сейчас, который решит проблему.

Сегодня я пытался выбрать реализацию EndNode, но я продолжаю сталкиваться со всевозможными ошибками компиляции. Это немного ошеломляет. Было бы помочь, если бы у меня было больше информации о структуре и работе слоев абстракции, все, что у меня есть сейчас, это: http: // Stackforce.GitHub.io/loramac-doc/index.HTML.

Может быть. Попробуем. :)

Спасибо за ваш вклад!

Ваше здоровье,

Дэйвид

Пыль
Пн 12 марта 2018 г., 21:05
Дэвид, вы можете посмотреть на LMIC (Lora-Mac-In-C или Lora-Wan-In-C), он был перенесен в Arduino: https: // github.com/matthijskooijman/arduino-lmic

Первоначально он был разработан IBM, но, к сожалению, они уронили его, так что он немного устарел, но он очень хорошо работал для меня с пером Adafruit с RFM95W, Whcich в основном SX127X радио. При примере, при условии, что мне просто нужно было определить некоторые булавки GPIO и сетевые ключи и работал сразу же с Лориотом.

Дэвидб
Пн 12 марта 2018 г., 21:33
Привет, пыль,

Спасибо за предложение. Я на самом деле посмотрел в эту библиотеку сегодня. Но когда я собирал это, я столкнулся с _FDEV_SETUP_WRITE' was not declared in this scope

Дэвидб
Пн 12 марта 2018 г., 21:56
Мне просто нужно было попробовать, если бы я мог заставить LMIC LIB работать с предложениями, которые я уже нашел, но я продолжал сталкиваться с ошибками. Одна ошибка просто заменяет другую...

Таким образом, остаются вопросы, в какие либера.

Дэйвид

Mrburnette
Ср 14 марта 2018 г. 13:37
Дэйвид,
Я пытался (быстро и грязно), чтобы бросить все файлы в один каталог, но я продолжаю сталкиваться с ошибками. У меня сложилось впечатление, что Arduino IDE каким -то образом защищает определения и объявления, сделанные в St HAL. (Но это все относительно новое, формируя меня, так что я могу ошибаться). я Публикуйте мусор Много много, и я пытаюсь объединить библиотеки в эскиз, просто чтобы избежать необходимости предоставить пользователю инструкции для загрузки и установки одинаковых. Делая это, я исключаю тонны Q&A от новичков о ошибках компиляции из непотимых либеров. Большие проблемы, с которыми необходимо столкнуться, заключается в том, что автоматическое прототипирование ардуиноидом может (и будет) разрывом, и глобальные переменные часто должны быть локальными для функциональных вкладок, которые становятся частными.

Вкладки без назначенного расширения файла становятся .INO -файлы и объединяются во время компиляции с объявлениями автоматических функций прототипа. Вкладки, которые есть .CPP и .H не наслаждайтесь такой автоматизацией... Вернемся к необходимости делать что -то правильное. Вы также должны включить "xxx.Файл H "в xxx.Источник файла CPP.
Arduino-multitab.png
Arduino-multitab.PNG (11.6 киб) просмотрено 962 раза

Дэвидб
Ср 14 марта 2018 г. 15:34
Рэй, спасибо за отзыв! Я обязательно буду помнить об этом. Но, к сожалению, это не решит всю проблему: я также сталкиваюсь с повторными функциями функций и переменных. И теперь всегда ясно, что они на самом деле имеют одинаковое.

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

Ваше здоровье,

Дэйвид

Grumpyoldpizza
Ср 14 марта 2018 г. 18:25
[Дэвидб - Ср 14 марта 2018 г. 15:34] - Рэй, спасибо за отзыв! Я обязательно буду помнить об этом. Но, к сожалению, это не решит всю проблему: я также сталкиваюсь с повторными функциями функций и переменных. И теперь всегда ясно, что они на самом деле имеют одинаковое.

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

Ваше здоровье,

Дэйвид
Это может не помочь прямо сейчас. Это альфа, и у меня еще не было времени, чтобы добавить вариант B-L072Z-Lrwan1:

https: // github.com/grumpyoldpizza/arduinocore-stm32l0

Класс Лоравана здесь:

https: // github.com/grumpyoldpizza/ardui ... /Лораван.час

Дэвидб
Ср 14 марта 2018 г., 21:44
Мистер. Пицца, это выглядит очень многообещающе! :)

Я буду ближе посмотрю на это завтра. Спасибо за вашу помощь!

Ваше здоровье,

Дэйвид

Grumpyoldpizza
Чт, 05 апреля 2018 г., 4:03
[Дэвидб - Ср 14 марта 2018 г., 21:44] - Мистер. Пицца, это выглядит очень многообещающе! :)

Я буду ближе посмотрю на это завтра. Спасибо за вашу помощь!

Ваше здоровье,

Дэйвид
Добавлена ​​официальная поддержка B-L072Z-LRWAN1 в репозиторий. Примеры Lorawan видят, как хорошо работать на моем конце US915 и EU868. Так что, может быть, стоит посмотреть.

Асмаллри
Пт 27 апреля 2018 г. 8:32 утра
Код LMIC очень хорошо поддерживается сообществом TheThingsNetwork, и на их очень активном форуме есть несколько сообщений, включая сообщения, используя Bluepill STM32 с библиотекой.

Горан.маховик
Ср. 02 мая 2018 г., 13:27
Знаете ли вы код Arduino, который может работать с STM32L051 MCU?

Я все готов к тестированию.
С I-Cube-Lrwan Ontuntion составляет около 4UA во сне.

Это старая установка с проводами, теперь все на борту, и есть еще один модуль на тесте...
LORASTM32L051.JPEG
LORASTM32L051.JPEG (29.6 киб) просмотрено 671 раз

Rogerclark
Ср. 02 мая 2018 г., 21:19
STM32GENERIERERERERER, вероятно, может быть перенесено в этот процессор.

Я не уверен, что ядро ​​F1 преобразовано. Я суспендирую это’Слишком разные

Grumpyoldpizza
Чт, 3 мая 2018 г. 12:08
[Горан.маховик - Ср. 02 мая 2018 г., 13:27] - Знаете ли вы код Arduino, который может работать с STM32L051 MCU?

Я все готов к тестированию.
С I-Cube-Lrwan Ontuntion составляет около 4UA во сне.

Это старая установка с проводами, теперь все на борту, и есть еще один модуль на тесте...
LORASTM32L051.JPEG
4UA.JPEG
Не уверен, но я хотел добавить поддержку STM32L052 к этому здесь (если он когда-нибудь не пойдет не альфа): https: // github.com/grumpyoldpizza/arduinocore-stm32l0

fpistm
Чт, 3 мая 2018 12:23
[Rogerclark - Ср 2 мая 2018 г., 21:19] - STM32GENERIERERERERER, вероятно, может быть перенесено в этот процессор.

Я не уверен, что ядро ​​F1 преобразовано. Я суспендирую это’Слишком разные
STM Core тоже...

Горан.маховик
Пт, 04 мая 2018 г., 6:11
[Grumpyoldpizza - Чт, 3 мая 2018 г., 12:08 -
[Горан.маховик - Ср. 02 мая 2018 г., 13:27] - Знаете ли вы код Arduino, который может работать с STM32L051 MCU?

Я все готов к тестированию.
С I-Cube-Lrwan Ontuntion составляет около 4UA во сне.

Это старая установка с проводами, теперь все на борту, и есть еще один модуль на тесте...
LORASTM32L051.JPEG
4UA.JPEG
Не уверен, но я хотел добавить поддержку STM32L052 к этому здесь (если он когда-нибудь не пойдет не альфа): https: // github.com/grumpyoldpizza/arduinocore-stm32l0
Отлично, это может сработать. Я протестирую это с L082, когда у меня будет время. Тогда я могу переключиться на L051 ....

Горан.маховик
Ср 9 мая 2018 г., 16:24
Я добавил L051 в качестве варианта и «фиксированная рупительная рукав, которую я хочу использовать»

Теперь осталось еще две проблемы, если вы можете помочь?

После исправления пропущенных либеров было много ошибок, вероятно, связанных с .файл :)

/home/mestery/arduino/harpware/tleracorp/stm32l0/system/stm32l0xx/lib/libstm32l051xx.А (таймер.o): в функции `timergetcurrenttime ':
/home/mestery/arduino/hardware/tleracorp/stm32l0/system/stm32l0xx/source/lora/system/timer.C: 71: неопределенная ссылка на
`stm32l0_rtc_timer_reference '
COLLECT2: Ошибка: LD вернул 1 статус выхода

Вторая проблема - STM32L0_GPIO.час
Где мне найти их нет. Для L051 я только что скопировал вставленные L072, но мне нужно проверить, что сейчас не так...

https: // github.com/goran-mahovlic/arduinocore-stm32l0

Grumpyoldpizza
Чт 10 мая 2018 г., 11:55
[Горан.маховик - Ср 09 мая 2018 г., 16:24] - Я добавил L051 в качестве варианта и «фиксированная рупительная рукав, которую я хочу использовать»

Теперь осталось еще две проблемы, если вы можете помочь?

После исправления пропущенных либеров было много ошибок, вероятно, связанных с .файл :)

/home/mestery/arduino/harpware/tleracorp/stm32l0/system/stm32l0xx/lib/libstm32l051xx.А (таймер.o): в функции `timergetcurrenttime ':
/home/mestery/arduino/hardware/tleracorp/stm32l0/system/stm32l0xx/source/lora/system/timer.C: 71: неопределенная ссылка на
`stm32l0_rtc_timer_reference '
COLLECT2: Ошибка: LD вернул 1 статус выхода

Вторая проблема - STM32L0_GPIO.час
Где мне найти их нет. Для L051 я только что скопировал вставленные L072, но мне нужно проверить, что сейчас не так...

https: // github.com/goran-mahovlic/arduinocore-stm32l0
В общем, я бы просто объявил, что Правление является STM32L072 и сделан. Просто посмотрел на свой GitHub и увидел довольно много проблем:

Startup_stm32l051.S на самом деле не сработает, так как он использует семантику ST HAL (на самом деле атоллический инструмент). Это не будет работать со сценариями линкера и остальной частью инфраструктуры. То же самое касается сценария линкера.

STM32L0_RTC_TIMER_REFERFEREFEREFEREFIENT определяется в STM32L0_RTC.в. Так что это действительно странно, что этот будет отсутствовать.

STM32L0_GPIO.H: Они в таблице данных для STM32L051. Так что это какая -то утомительная работа.

Подумай об этом иначе. STM32L0X1 - это STM32L0X2 без USB. STM32L0x2 - это STM32L0x3 без периферийного ЖК -дисплея. STM32L08X - это STM32L07X с периферистом AES. И STM32L05X - это сокращение STM32L07X. Все это с точки зрения пользователей, вероятно, не из настоящего кремния.

Кстати, у вашей платы подключены HSE с PH0/PH1 ?

Горан.маховик
Чт 10 мая 2018 г. 15:56
Tnx,

У меня есть startup_stm32l051.S из генерируемого кода для Makefile.
Что мне нужно выбрать, чтобы получить правильный, если я генерирую файлы из Cubemx?
Хорошо, я проверю таблицу данных, это не должно быть в значительной степени разница ...
Я только что припаял к низкоскоростному кристаллу на борту, и L051 не имеет HSE и порт H ... Всего две контакты на порту C для LSE
Поэтому мне, вероятно, нужно будет изменить HSE на HSI, но это может быть последней частью перед загрузкой :)

Я только что скопировал вставку L072 .С .LD и библиотечный файл в L051

И теперь он собирает - так что теперь Blink LED на PA0 может работать - мне просто нужно проверить, используете ли вы HSE

Горан.маховик
Чт 10 мая 2018 г., 16:30
Niceeeeee

Blink Hed на PA8 - я определил его как A0 ...

Код LORA делает шаги - я добавлю светодиод Blink после того, как пакет отправляется и светодиод мигает, если я положу один модуль.

Но Лора ничего не посылает.

С модулем Dorji IT код останавливается в начале, и не мигает.

Сначала мне нужно проверить, мигает ли каждый вывод на области применения, а затем проверить, работает ли SPI...

Это моя распина...
STM32L051_arduino_lora.png
STM32L051_arduino_lora.PNG (146.01 киб) просмотрено 523 раза

Grumpyoldpizza
Пт 11 мая 2018 12:32
[Горан.маховик - Чт 10 мая 2018 г., 16:30] - Niceeeeee

Blink Hed на PA8 - я определил его как A0 ...

Код LORA делает шаги - я добавлю светодиод Blink после того, как пакет отправляется и светодиод мигает, если я положу один модуль.

Но Лора ничего не посылает.

С модулем Dorji IT код останавливается в начале, и не мигает.

Сначала мне нужно проверить, мигает ли каждый вывод на области применения, а затем проверить, работает ли SPI...

Это моя распина...

STM32L051_arduino_lora.пнн

Я проверил Timermillis и работает.
И режим остановки с таймером работает
Downto2uafromarduino.JPG

Так что пока остается только проблема SPI, или, может быть, какая -то промаха, определяемая мной :)
Я понимаю. Следующий шаг. Код на данный момент для Lorawan жестко кодируется для CMWX1ZZABZ (хочу сделать это более общим, но время здесь - проблема).

https: // github.com/grumpyoldpizza/ardui ... 76-доска.час

Вам нужно изменить GPIO для вашего модуля (это это здесь: https: // www.Тинди.com/products/dorji_c ... -DRF1276G/).

У вас нет TCXO, так что вы можете прокомментировать код, который использует этот PIN -код.

Тогда вам нужно связываться с https: // github.com/grumpyoldpizza/ardui ... 76-доска.в:

Выбросить код TCXO, иметь sx1276getWakeUptime () return 1 (без времени пробуждения TCXO). Переключатель RX/TX подключен довольно по -разному для вашего модуля. Cmwx1zzabz использует 3 gpios для маршрутизации RFI/rfo/paboost. В таблице данных говорится (при условии, что это еще раз, это модуль Dorji):

"Переключатель TX/RX реализуется путем управления уровнями контактов RXTX/RFMOD и DIO4 в
Режим Лоры. Когда rxtx/rfmod = vhigh и dio4 = 0, TX включен и rx отключен. Когда rxtx/rfmod = 0 и dio4 = vhigh, RX включен и TX отключен. Изменение уровня DIO4 контролируется соответствующим регистром "

Таким образом, DIO4 должен быть настроен как DIO4_01 (PLLLOCK) для RX и DIO4_11 (не определен) для TX. Просто странно, но не большой. Для FSK (EU868, DR_5, я думаю), это должно быть DIO4_01 и Dio4_11 (11 -м отображение не определено для чего -либо по RX) ...

Наконец, вам нужно исправить sx1276getpaselect (), чтобы всегда возвращать rf_paconfig_paselect_paboost.


Угадайте, чтобы сделать это более портативным, мне нужно было добавить STM32L0_SX1276.C и STM32L0_SX1272.C Piece, которая связывается с выводами SPI/RESET/DIO0/DIO1/DIO2/DIO3/DIO4/DIO5, TXCO Включение/отключение, выключатель антенны и выбор RFO/Paboost.


Не.b, что SPI -код там обходит материал Arduino SPI. Поэтому, пожалуйста, убедитесь, что экземпляр, который управляет этим модулем, не отображается как SPI или GPIO в варианте.CPP. Все булавки эксклюзивны, поэтому нет смысла иметь их в песочнице Arduino также открытыми. Код воспроизводит несколько трюков с низкими настройками питания там ...

Для вашей доски вам не нужно HSE. Мне было просто любопытно.

Поскольку вы используете SWD для отладки. Есть STM32L0.envestswd () и stm32l0.DISATSWD (). Во время отладки я бы порекомендовал установить STM32L0.enableswd (). Это блокирует несколько часов, которые должны быть отключены во время сна/остановки, за счет энергии. Когда я буду готов по -настоящему использовать этот дизайн, я бы поместил его STM32L0.DISATSWD (). Сохраняет несколько UA в режиме остановки.

Горан.маховик
Пт 11 мая 2018 г. 13:33
Tnx,

Проверю это, когда я вернусь домой.

У меня есть эти два модуля, которые уже протестированы с помощью стека Cube 115, и там Cmwx1zzabz работает.
Так что я, вероятно, должен скопировать вставить кое -что оттуда в ваш код...

Grumpyoldpizza
Пт 11 мая 2018 г. 15:21
[Горан.маховик - Пт 11 мая 2018 г. 13:33] - Tnx,

Проверю это, когда я вернусь домой.

У меня есть эти два модуля, которые уже протестированы с помощью стека Cube 115, и там Cmwx1zzabz работает.
Так что я, вероятно, должен скопировать вставить кое -что оттуда в ваш код...
В значительной степени. Пока не знаю о DIO4. ИМХО, который, возможно, должен быть интегрирован в SX1276.C (в основном потому, что именно здесь радио драйвер управляет отображением DIO). С другой стороны, возможно, sx1276.C должен установить DIO4 в Plllock и Dio5 на Modeready во время init, а затем больше не трогать их (в отличие от кода Semtech, который повсюду с этим).

Как вы это сделали с Cube 115 ? Не.беременный. Код ST не хватает большого количества исправлений. Он также предполагает, что Dio3 используется для Caddetect. Код в arduinocore-stm32l0 не использует Dio3. Так что простая копия и вставка не сработает.

Горан.маховик
Пт 11 мая 2018 г., 17:36
Я попробовал все, что вы описали, но все еще не удалось отправить работу.
Я исправлю получение в 115 и попробую после этого.
Как вы используете отладку от Arduino?
Или я просто загружаю код и использую GDB

Что касается 115, я загружаю его:
https: // github.com/goran-mahovlic/stm32l051_test

Я только что зафиксировал, чтобы присоединиться к ABP для Dorji
Поэтому у меня есть фиксированная передача, но для получения мне все еще нужно проверить таблицу данных и установить регистры...
И после передачи Lora Module засыпает

Я использую 112 на подаче в течение 6 месяцев и не заметил никаких реальных проблем.
И у меня 114 работает 3 месяца, а швы хорошо
Я исправил некоторые проблемы в начале, но не заметил многих критических проблем

Grumpyoldpizza
Пт 11 мая 2018 г., 18:40
[Горан.маховик - Пт 11 мая 2018 г., 17:36] - Я попробовал все, что вы описали, но все еще не удалось отправить работу.
Я исправлю получение в 115 и попробую после этого.
Как вы используете отладку от Arduino?
Или я просто загружаю код и использую GDB

Что касается 115, я загружаю его:
https: // github.com/goran-mahovlic/stm32l051_test

Я только что зафиксировал, чтобы присоединиться к ABP для Dorji
Поэтому у меня есть фиксированная передача, но для получения мне все еще нужно проверить таблицу данных и установить регистры...
И после передачи Lora Module засыпает

Я использую 112 на подаче в течение 6 месяцев и не заметил никаких реальных проблем.
И у меня 114 работает 3 месяца, а швы хорошо
Я исправил некоторые проблемы в начале, но не заметил многих критических проблем
Я просто загружаю код и использую GDB ;-)