Демо -применение RFM69HW для синей таблетки?

турбосквит
Солнце 17 декабря 2017 г. 1:22
Кто-нибудь знает демо-приложение для синей таблетки, которое, по крайней мере, отправляет некоторые данные, используя RFM69HW-модуль?
Я могу получить данные, которые я отправляю из другой синей таблетки с помощью CC1101-Module, но похоже, что у меня нет RFM-модуля, чтобы что-либо отправлять.
(Ну, от CC1101 до другого CC1101 передача данных в порядке, но приемная RFM, похоже, теряет синхронизацию битов.)

Похоже, что RFM отправляет сообщения (Frame отправлено прерывание), но приемный CC1101 даже не видит никаких изменений в RSSI.

Я просто хотел бы увидеть, что модуль RFM может что-то отправить, и, возможно, даже узнать, что я делал не так.

Mrburnette
Солнце 17 декабря 2017 г. 1:47
Начните здесь, с года назад:

ViewTopic.PHP?t = 1582

Луча

турбосквит
Солнце 17 декабря 2017 г. 10:54 утра
Я проверил их, но, кажется, есть довольно несколько порт, и они библиотеки.
Для тех, что мне придется начать новый проект в середине моего текущего проекта.
Мой текущий проект выполняется в простом C (и немного сборки) и без каких -либо библиотек. (Ну, я использую stdint.H, но все остальное - мое собственное письмо.)

Но если мне придется перенести библиотеку, пусть будет так. В этом случае, какая из них будет меньшей работой?
Я уже установил arduino и arduino_stm32, просто чтобы быть готовым.
Я действительно не хотел бы использовать HAL-библиотеки.

Mrburnette
Солнце 17 декабря 2017 г. 22:51
Я сделал поиск в Google против GitHub.компонент
#include #define EEPROM_ADDRESS 0x50 byte data = 0; #define Trigger PG14 void setup() { pinMode(Trigger, OUTPUT); digitalWrite(Trigger, LOW); // set trigger off) Wire.begin(); } void loop() { digitalWrite(Trigger, HIGH); // ols trigger digitalWrite(Trigger, LOW); // ols trigger delayMicroseconds(200); WireEepromWriteByte(0x55, 0xaa); data = WireEepromRead(0x55); }

турбосквит
Вторник 19 декабря 2017 г. 13:36
Я пытался воспроизвести раньше, но у сайта, казалось, были некоторые проблемы...

Да, RFM69-STM, по-видимому, является «подмножеством» LowPowerLab-Library. Заставил меня подумать, может быть, это будет меньше портирования...
Что такое "многопрочный проект Arduino"? Я очень новичок в Arduino.
Я в основном писал свои собственные программы без каких -либо библиотек и используя C/сборку.
(Я был заинтересован в изучении интерфейсов HW, а не о изучении интерфейсов некоторых - часто огромных библиотек.)

Mrburnette
Вторник 19 декабря 2017 г. 14:23
[турбосквит - Вторник 19 декабря 2017 г. 13:36] - <...>
Что такое "многопрочный проект Arduino"? Я очень новичок в Arduino.
Я в основном писал свои собственные программы без каких -либо библиотек и используя C/сборку.
<...>
Посмотрите на новый проект:
Singletab.png
Singletab.PNG (9.66 киб) просмотрено 399 раз

турбосквит
Вторник 19 декабря 2017 г. 14:26
Благодарность!
Вы, Mrburnette, кажется, есть довольно хорошая коллекция проектов. :-)

Теперь, когда я посмотрел дальше в коды библиотек, это выглядит как lowpowerlab-library, и его производные гораздо легче портировать для синей таблетки. По крайней мере, похоже, что он использует библиотеки Arduino, которые уже установлены, когда я установил Arduino и STM32-Core. Портирование материалов на основе HAL кажутся гораздо более рабочими.

Mrburnette
Вторник 19 декабря 2017 г. 14:43
Чтобы драматично показать разницу, в прошлом году я взял проект ESP8266 Arduino и перенес его в проект с несколькими табками - по сути не добавляя никаких функций ... или значение!

Sniffing2 - мое первое рабочее представление кода в качестве оригинальной версии автора, которая не компилировалась успешно.
Sinffing6-тот же код в организованном многочатком проекте Arduino.

Луча

турбосквит
Вторник 19 декабря 2017 г. 9:11 вечера
Это способ обойти "приложение для одного файла"?
Похоже, что приложение должно содержаться в одном .INO -файл, и все больше, должно быть разбито на библиотеки.
По крайней мере, кажется трудно открыть другие виды файлов.
И немного больший кусок в одном файле действительно P.я.Т.А.

(Как я уже упоминал, я новичок в Arduino, даже если у меня есть около 20 лет опыта в качестве встроенного программиста SW.)

Fredbox
Вт 19 декабря 2017 г., 21:47
У каждой папки будет только одна .INO -файл, который является вашим основным приложением. Дополнительные вкладки будут .CPP и .H файлы.

Вы можете создать пользовательские библиотеки, если хотите, но для многих проектов они добавляют ненужную сложность. Если вы используете сторонние библиотеки, предлагается скопировать библиотеки в папку со своим эскизом. У меня были проекты, где папка библиотеки была обновлена, и она что -то сломало. У меня есть один проект, который составляет 20+ вкладок, и единственная используемая библиотека - это потоковая передача. Все остальное стандартное C код в .Файл CPP с .H заголовок.

У меня обычно есть только Setup () и Loop () в моем .INO -файл со всем остальным во внешних файлах CPP и H.

Mrburnette
Ср 20 декабря 2017 г. 1:13
[турбосквит - Вторник 19 декабря 2017 г. 9:11 вечера] - Это способ обойти "приложение для одного файла"?
Похоже, что приложение должно содержаться в одном .INO -файл, и все больше, должно быть разбито на библиотеки.
<...>

Абсолютно!
[Fredbox - Вторник 19 декабря 2017 г. 9:47 вечера] - ...У каждой папки будет только одна .INO -файл, который является вашим основным приложением. Дополнительные вкладки будут .CPP и .H файлы.
Не обязательно.
MultiTab.png
Многодар.PNG (14.18 киб) просмотрено 355 раз

турбосквит
Ср 20 декабря 2017 г. 9:37
Спасибо.
Я думаю, что это начинает рассветать мне. Все еще берет на себя немного пивоварения... : D

Mrburnette
Ср 20 декабря 2017 г. 13:00
[турбосквит - Ср 20 декабря 2017 г. 9:37] - Спасибо.
Я думаю, что это начинает рассветать мне. Все еще берет немного пивоварение на мой взгляд... : D
Пивоварение лучше всего оставить для кофе ... который, только что завершился в соответствии с звуковым сигналом на моей кофеварке.
Кофе, сделав мир лучше поместить по одной чашке за раз : D

Что касается ардуиноида, просто подходите к этому инструменту, «инструмент."Вы можете использовать его просто или вы можете использовать его более сложным образом, выбор ваш. Как вы делаете традиционный C и ассемблер, вы можете найти эту статью очень интересной:
https: // chackaday.com/2015/10/01/arduino ... -для-это/

Официальная страница об использовании Makefiles:
https: // Playground.Ардуино.CC/Learning/Commandline


Луча

турбосквит
Чт 21 декабря 2017 г. 12:37
[Mrburnette - Ср 20 декабря 2017 г. 13:00] - Пивоварение лучше всего оставить для кофе ...
Или пиво?

Я имел в виду, что мне нужно позволить вещам найти их место в моей голове, когда дело доходит до структуры кода Arduino.
Особенно тот, который должен играть хорошо с Arduino Ide. :ржу не могу:

Статья о Make была интересной. Спасибо!

Mrburnette
Чт 21 декабря 2017 г. 13:34
[турбосквит - Чт 21 декабря 2017 г. 12:37] - <...>
Я имел в виду, что мне нужно позволить вещам найти их место в моей голове, когда дело доходит до структуры кода Arduino.
Особенно тот, который должен играть хорошо с Arduino Ide. :ржу не могу:
<...>
Я понял и согласен. Даже старые пользователи Arduino, такие как я (я начал задолго до 1.0 релиз) нужно подумать о том, что мы делаем в IDE. Например, IDE обычно избегает (необходимости) вперед объявлений, но не всегда.

Луча

PS: кофе может поддерживать жизнь... Пиво может создать жизнь... и часто делает : D

турбосквит
Вт 26 декабря 2017 г. 14:29
Хм, это, похоже, не работает: https: // github.com/brainelectronics/rfm69-stm32
Он висит при первой отправке. Я не думаю, что я готов отладить этот код, особенно когда это означает добавление еще одной полной среды разработки в эту машину (Stinkbad T400 / Linux Mint). У меня уже есть другая машина (Stinkbad T42 / Slackware) с другой средой разработки (Eclipse + Openocd), которую я использую для большинства в своей разработке STM32-SW, и я не думаю, что это так просто вставить Arduino в машину Slackware.

Это (от .ino-file): void WireEepromWriteByte(uint16_t theMemoryAddress, uint8_t u8Byte) { Wire.beginTransmission( EEPROM_ADDRESS | ( ( theMemoryAddress >> 8 ) & 0x3 ) ); Wire.write( theMemoryAddress & 0xFF ); Wire.write(u8Byte); Wire.endTransmission(); delay(5); } uint8_t WireEepromRead(uint16_t theMemoryAddress) { Wire.beginTransmission( EEPROM_ADDRESS | ( ( theMemoryAddress >> 8 ) & 0x3 ) ); Wire.write( theMemoryAddress & 0xFF ); Wire.endTransmission(); delay(5); Wire.requestFrom( (EEPROM_ADDRESS | (theMemoryAddress >> 8) & 0x3), 1); return Wire.read(); }

турбосквит
Ср 27 декабря 2017 г. 14:15
Служба NSS, обрабатывая SW? (Я не мог найти его в базовом коде.)
В моих синих чипсах таблеток NSS, похоже, не работает, и я видел, как такие проблемы, о которых сообщалось и в другом месте.

Mrburnette
Ср 27 декабря 2017 г. 16:27
[турбосквит - Ср 27 декабря 2017 г. 14:15] - Служба NSS, обрабатывая SW? (Я не мог найти его в базовом коде.)
В моих синих чипсах таблеток NSS, похоже, не работает, и я видел, как такие проблемы, о которых сообщалось и в другом месте.
Я думал, что материал NSS был исправлен давным -давно:
ViewTopic.PHP?t = 285
Но, может быть, только для NRF24L01, хотя то же самое может быть применимо, в теории.

Но я никогда не пробовал RFM69HW с Maple Mini... Итак, я здесь не помогаю. Возможно, другой участник? GPIOA->dev->odr = 0x1234;

турбосквит
Ср 27 декабря 2017 г., 17:08
Я не думаю, что новое SW Repo может исправить HW-Bugs. Я знаю, что NSS STM32-SPI должен работать так, чтобы, когда первый байт записан в регистр данных, часы начинают тикают, а NSS снижается. Все идет нормально. Когда последний бит выйдет, а новые данные не записаны, часы останавливаются, но NSS остается низкой. NSS должен подняться высоко, когда вы выключите SPI (Spie-bit). Это в соответствии с характеристиками, но с несколькими чипсами, которые, кажется, не работают. В некоторых чипах NSS вообще не снижается, а в некоторых чипах - как и у меня, NSS не поднимается на высоком уровне, когда SPI отключен. В конце концов он поднимается, но, по крайней мере, в моем случае (проверено с логическим анализатором) 5 мс было недостаточно долго после отключения SPI, чтобы увидеть, как NSS достигает высокого уровня.

Затем я попытался использовать тот же штифт (PA4), что и GPIO, и контролировал его SW, но проклятый SPI все еще читал этот PIN в рабский режим. Поэтому мне пришлось оставить PA4 без подключения и использовать другой GPIO (PA3 был хорошо свободен) для SW NSS.

И у меня тоже нет клена. Просто синие таблетки.

Насколько я понимаю, этот NSS-Bug почти так же известен, как и неправильный вид кристалла RTC (LSE не начинается), но в этом случае ошибка в чипе.

Mrburnette
Ср 27 декабря 2017 г., 17:17
Мммм...

Переработать запрос: NSS RFM69HW STM32F103 дает это:
https: // www.Google.com/search?EI = 39RDWO ... +STM32F103

и указывает на то, что выглядит как рабочее решение:
https: // jeelabs.org/article/1613c/

Mrburnette
Ср 27 декабря 2017 г., 17:18
Ошибка в чипе. О, мой : шок:

Ошибка одного человека - особенность другого.

Луча

турбосквит
Ср 27 декабря 2017 г., 17:42
ХОРОШО. Вероятно, это исправление ситуаций, когда HW NSS, похоже, ничего не делает, но в моих чипах NSS, кажется, снижается, как и ожидалось, но он не подходит высоко - по крайней мере в любое разумное время.

Я только что проверил. Я оставил себе комментарий в своем коде, что превращение SSOE в ноль не помогла... ;-)

И мое ядро ​​arduino-stm32 было загружено 17 декабря. Это достаточно нового?

Mrburnette
Ср 27 декабря 2017 г., 17:46
[турбосквит - Ср 27 декабря 2017 г., 17:42] - ХОРОШО. Вероятно, это исправление ситуаций, когда HW NSS, похоже, ничего не делает, но в моих чипах NSS, кажется, снижается, как и ожидалось, но он не подходит высоко - по крайней мере в любое разумное время.
Вам нужен 10 -километровый подтяжка?

турбосквит
Ср 27 декабря 2017 г., 19:17
Ну, в моих собственных проектах я использовал SW NSS и некоторые другие GPIO, и у меня не было никаких проблем. А с SW NSS я могу поставить более одного чипа на одну и ту же «автобус» SPI ». Просто разделяйте NSS-пинку для каждого... :)

Может быть, что изменение NSS не сработало. Я думаю, что я удалю сопоставления NSS-Pin и попробую с по умолчанию (PA4).

Я не думаю, что какие-нибудь дополнительные подтягивания должны понадобиться? Я не думаю, что HW NSS-пин-открытая дренаж-по крайней мере, открытая дренаж без внутреннего подтягивания?

турбосквит
Чт 28 декабря 2017 г., 7:24
Mrburnette, вы имели в виду это?
ViewTopic.PHP?f = 14&t = 300
Таким образом, NSS - это PA4, и теперь он должен контролироваться SW?

турбосквит
Чт 28 декабря 2017 г. 9:15 утра
Вернув все изменения NSS и используя PA4 в качестве NSS, я запустил его, чтобы запустить за пару раундов, прежде чем он застрял.
В другой раз, когда я пробовал, это, похоже, вообще не сработало.
[редактировать]
Он начал работать полностью. Не кажется очень стабильной программой...
Но SPI, похоже, не сработала. Регистрация дампа была все 0xffs.

Похоже, что RFM69-код слишком старый. Он пытается справиться с NSS, и, вероятно, противоречит сердечнику...
Я попытался сделать его снова в качестве NSS, но потом SW почти сразу же застыл...

Mrburnette
Чт 28 декабря 2017 г. 13:22
[турбосквит - Чт 28 декабря 2017 г. 9:15] - Возвращение всех изменений NSS и использования PA4 в качестве NSS Я получил его, чтобы пробежать один раз пару раундов, прежде чем он застрял.
В другой раз, когда я пробовал, это, похоже, вообще не сработало.

[редактировать]
Он начал работать полностью. Не кажется очень стабильной программой...
Но SPI, похоже, не сработала. Регистрация дампа была все 0xffs.

Похоже, что RFM69-код слишком старый. Он пытается справиться с NSS, и, вероятно, противоречит сердечнику...
Я попытался сделать его снова в качестве NSS, но потом SW почти сразу же застыл...
Как правило, не видит «случайные проблемы» с проблемами программного обеспечения; то есть программное обеспечение обычно работает до тех пор, пока не произойдет что -то плохое."Сброс и повторение, как правило, дает те же результаты. Теперь мы видим, что сумасшедшие вещи случаются с переполнением буфера и тому подобным, что часто трудно изолировать.

Просто спросите, но вы уверены, что все соединения проводки как можно более короткие и правильно закреплены? Сплошная рука питания 5 В? Посмотрите на другие потенциальные проблемы с проводкой, такие как недорогая не припаяна макета и т. Д.


Луча

турбосквит
Чт 28 декабря 2017 г. 18:08
Я использую два 1.Батареи 5 В (AA) - это синяя таблетка. И да, и синие таблетки, и RFM-модуль должны работать нормально (я помню 3.6 В - 2.8 В).
Независимо от того, что пробегает с парой раундов, он обычно начинается или нет. Либо он запускает примерно первую «отправку», либо будет продолжаться.
Похоже, SPI не работает.
Кабели не настолько короткие, а 20 см дюпонтов. Моя макета все еще по почте, поэтому дупонты идут прямо от булавки в булавку.
(Было довольно сложно найти от 2 мм в 0.1 дюпонты для модуля RFM.)

Ох, и с моим собственным кодом и тем же дупонтами, мои модули CC1101 работают нормально. И я также могу получить с помощью RFM, но мне не удалось заставить их отправить что -либо. Вот почему я хотел попробовать с каким -то кодом, который, как известно, работает.

Mrburnette
Пт 29 декабря 2017 г. 2:37
Вот почему я хотел попробовать с каким -то кодом, который, как известно, работает. Я понимаю. Но я не видел, чтобы ни один из участников форума публиковал в этой ветке с чистой либеральной либера.
Если кто -то не указывает нам на протестированную библиотеку, кажется, что вам нужно либо переносить свою собственную, либо выбрать другую архитектуру UC.

SPI/I2C - это то, где действительно сияет логический анализатор.

Я все еще подозреваю стабильность проводки. Когда у вас есть макет, повторно тестируется, используя самую короткую длину провода.

Я бы настоятельно предложил вам выбрать ячейку LifePo4 для батареи вместо 2x 1.5 В клетки. UC предпочитает поставку постоянного тока с низким импедансом.


Луча

турбосквит
Пт 29 декабря 2017 г. 8:30
[Mrburnette - Пт 29 декабря 2017 г. 2:37] - Я понимаю. Но я не видел, чтобы ни один из участников форума публиковал в этой ветке с чистой либеральной либера.
Если кто -то не указывает нам на протестированную библиотеку, кажется, что вам нужно либо переносить свою собственную, либо выбрать другую архитектуру UC.
Да. Я думал о двух других вариантах: LowpowerLab и Hessling. Оба, кажется, просто требуют довольно много работы.

Mrburnette
Пт 29 декабря 2017 г. 14:38
[турбосквит - Пт 29 декабря 2017 г. 8:30] - Да. Я думал о двух других вариантах: LowpowerLab и Hessling. Оба, кажется, просто требуют довольно много работы.
Взгляните на эту ссылку: http: // stm32duino.com/viewtopic.PHP?f = 15&T = 938#P10875

Библиотека Radiohead может быть лучшим вариантом для вас.
Стевех указывает, что у него был успех. Вручить ему, если хотите, но попросите его отправить в эту ветку, чтобы мы не потеряли его вклад.


Луча

Кроме того, у Adafruit есть версия Radiohead Lib Up on Github: https: // github.com/adafruit/radiohead с примером кода, который может упростить вас. void callDomofon(int nrLok, int ileDzwonkow){ digitalWrite(domofonPin, HIGH); delay(257); digitalWrite(domofonPin, LOW); delay(200); for(int i = 1; i <= nrLok; i++){ digitalWrite(domofonPin, HIGH); delayMicroseconds(12); digitalWrite(domofonPin, LOW); delayMicroseconds(170); } for(int i = 1; i <= ileDzwonkow; i++){ digitalWrite(domofonPin, LOW); delay(96); for(int x = 1; x <= 14; x++){ for(int y = 1; y <= 185; y++){ digitalWrite(domofonPin, HIGH); delayMicroseconds(172); digitalWrite(domofonPin, LOW); delayMicroseconds(146); } for(int z = 1; z <= 78; z++){ digitalWrite(domofonPin, HIGH); delayMicroseconds(370); digitalWrite(domofonPin, LOW); delayMicroseconds(396); } digitalWrite(domofonPin, HIGH); delayMicroseconds(370); digitalWrite(domofonPin, LOW); delayMicroseconds(172); } digitalWrite(domofonPin, LOW); delay(1780); } }

турбосквит
Пт 29 декабря 2017 г. 15:36
Спасибо!
Кажется, что Radiohead больше не просто виртуальная проволока (в основном) раньше был!
Должен лучше взглянуть...