LINUX.ORG.RU

Вышел rf24boot v0.2

 ,


4

2

rf24boot — универсальный загрузчик кода в микроконтроллеры посредством беспроводного интерфейса nrf24l01.

В этой версии:

USB-стик для программирования:

  • Новый дизайн референсного железа (mega8, 16M кварц).
  • Сверхдешевый однослойный 5х5см дизайн.
  • Реализована аппаратная буферизация пакетов на отправку, прием/передача и передача теперь работают асинхронно (т.е. теперь шьется быстрее, намного быстрее. Загрузка и верификация 28кб кода (цель: atmega328p + 8M RC clock) теперь занимает 23с вместо двух минут. Узкое место теперь скорость записи флеш памяти и скорость работы целевого устройства.)

rf24tool:

Загрузчик:

  • Исправлена ошибка, приводившая к потери пакета, если в аппаратный приемный FIFO попадало больше одного пакета.
  • Небольшие улучшения производительности и уменьшения размера.

>>> Страница проекта на github

★★★★★

Проверено: fallout4all ()
Последнее исправление: CYB3R (всего исправлений: 6)

Эх, а я козявка такая его даже ещё не пробовал ::)

Dron ★★★★★
()

загрузчик кода в микроконтроллеры

Это что-то из серии «певец ртом» и «танцор жопой»?

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

Ага, он умеет в микроконтроллеры))

По сути - годно

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

Просто если сказать для просто загрузчик, понабегут нубы с вопросами «А оно линух зогрузить может, посоны?».

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

Вполне, тут только чинящее.

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

Вообще мне стыдно, но я ни разу не паял QFN-корпуса. Всегда выбираю QFP, если есть возможность. Тут, я думаю, выбора нет?

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

Готовый модуль. Ибо иначе печатка будет дорогая очень. Тебе чтобы 2.4Ghz нормально работало надо заказывать контроль импеданса.

ncrmnt ★★★★★
() автор топика

Добавлена опция --sweep, наглядно показывающая использование 2.4Ghz спектра разными устройствами через gnuplot (не только nrf24l01, но и wifi, bluetooth, etc...

Посмотрел первый пост в Вашем блоге, теперь наверно антенна будет искать не только Wi-Fi %)

Lagman
()
Последнее исправление: Lagman (всего исправлений: 1)
Ответ на: комментарий от Lagman

На самом деле там оно последовательно на каждом канале смотрит несучку, если есть то увеличивает счетчик на единицу, подержав такую включенным дома легко оценить на каких wifi каналах много траффика. Ибо тупо 'iwlist scan' не всегда актуальную информацию дает/не говорит как именно используется диапазон. Ибо может кроме beacon'а ничего не быть, а могут со скрытым ssid'ом качать терабайты порнухи с торрента.

ncrmnt ★★★★★
() автор топика
Последнее исправление: ncrmnt (всего исправлений: 1)
Ответ на: комментарий от ncrmnt

В таком случае даже странно, что у китайцев так много вариантов этого модуля и все такие дешёвые.

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

Да ладно, они все одни и те же. Более того, сделанные по одному референсу от нордика. Просто заказывать контроль импеданса действительно выгодно при больших партиях. Готовый-то модуль 93 цента стоит в розницу.

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

Ну, там ещё важно, чтобы распиновка модуля совпала. Есть по крайней мере варианты с десяти и восьми пиновыми коннекторами.

CYB3R ★★★★★
()

угадал автора по тексту

Stil ★★★★★
()

Совместимо ли с Arduino ?

Добрый день! Чрезвычайно полезная разработка, учитывая доступность модуля nrf24. Подскажите не совсем понятно как подключать к контролеру который программируется и возможно ли его использовать с прошивками полученными из arduino.

Orion5
()
Ответ на: комментарий от AVL2

На днях напишу доку как это все конпелять. С дуркой работать будет, лоадеру пофиг как бинарник получен. Хоть компелятором брейнфака.

ncrmnt ★★★★★
() автор топика

Теперь код выглядит почти читаемым!

Эта пять

Улучшения стабильности работы с далеко находящимися узлами

Далеко - это где? «Новые горизонты» сейчас где-то около нептуна вроде

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

Эта пять

самокритичность (tm)

Далеко - это где? «Новые горизонты» сейчас где-то около нептуна вроде

Нет, там при плохом сигнале нордик себя очень любопытно вел. Note to self: Никогда не писать текст новости после 12 часов нон-стоп отладки.

ncrmnt ★★★★★
() автор топика
Последнее исправление: ncrmnt (всего исправлений: 2)
Ответ на: комментарий от ncrmnt

spectral scan

Как вариант, во многих Atheros карточках есть настоящий (и нормально работающий) spectral scan. В ath9k поддерживается. Скоро в апстрим всплывет и поддержка в ath9k_htc

SLE
()

Аватарка у тебя зачетная. У 155ЛА6 14-выводной корпус.

anonymous
()
Ответ на: комментарий от AVL2

Я при всем желании в README не запихну книжку «AVR для начинающих». Но базовое, как собрать - будет.

ncrmnt ★★★★★
() автор топика
Ответ на: spectral scan от SLE

М.б. spectrum? А то spectral... как-то ghostbusters вспомнаются сразу. А так - не везде есть атхерос, и не везде на него дрова свежие. Эта штука вообще побочно получилась. Раз чип это умеет - почему бы не заюзать.

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

Ну я имею в виду, какое железо, какой чипсет используется, какие AVR шьет.

AVL2 ★★★★★
()

Загрузка и верификация 28кб кода (цель: atmega398p + 8M RC clock)

Что такое «atmega398»? Возможно, имелась в виду ATmega328, как в Arduino Uno?

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

Да, на тестах пациентом была 328я мега с RC клоком и софтовым (bitbang) spi. CYB3R, почини плиз, я был в угаре когда это пейсал. Реально будет работать на любой avr'ке где есть возможность бутлоадера и хватит флеша.

ncrmnt ★★★★★
() автор топика
Последнее исправление: ncrmnt (всего исправлений: 4)
Ответ на: комментарий от ncrmnt

Починил.

Кстати, никогда не понимал этих суффиксов у Atmel. «A» — пониженное энергопотребление, «L» — пониженное напряжение питания и частота, «V» — сильно заниженное напряжение питания и частота, «P» — (не уверен) picoPower, совсем мизерное энергопотребление. А вот что такое «PA»? По логике, должно быть ещё меньше энергопотребление.

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

Кроме шуток, 5х5 однослойка в seeed ~10баксов за стопку. Как приедут - могу отсыпать.

Как и двухслойка. Кроме шуток, теоретически есть возможность плату модернизировать до 2хслойки 5х5 так, чтобы впихнуть туда мегу8 в DIP корпусе? Просто просмотреть реф дизайн сейчас нечем, а у меня пачка мег8 валяется в дипах...

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

Можно, можешь сделать, добавлю в ридми ссылку на твой вариант. Просто у меня 8х мег еще штук 30 и только TQFP. И двуслойка не обязательно, там даже проще будет на 1 слой впихнуть. Я после рефакторинга nrf24l01 библиотеки таки запилю донгл на stm32.

ncrmnt ★★★★★
() автор топика
Последнее исправление: ncrmnt (всего исправлений: 1)
Ответ на: комментарий от ncrmnt

Подготовил плату для тестирования https://cloud.mail.ru/public/95513b648996/dongle-sch.png https://cloud.mail.ru/public/e25e2f9bb538/dongle.png Вопрос, какой кварц да донгл ставить 16Mhz?

С таким клиентом для программирования работать будет? https://cloud.mail.ru/public/bf5cd1c472e7/switch-radio.png

получается что для программирования reset на клиенте в ручную нажимать?

Orion5
()
Ответ на: Немного оптимизировал плату от Orion5

90-градусные острые углы срежь хотя б под 45 градусов, цепляться будешь постоянно. Дороги под 90 градусов тоже не комильфо, за это ногами бьют. 65х35 если заказывать будешь - обойдется дороже. Попробуй мегу на 45 градусов развернуть, может уместится в 50х50 мм. Ресет нажимать да, надо. Либо как вариант в своей прошивке реализуешь команду reset, которую шлешь по беспроводному каналу, а после уже запускаешь rf24tool. Кварц - любой который умеет vusb. 12M, 16M, 20M. Посмотри исходники vusb. Больше - быстрее, но 24.5 емнип это уже оверклок меги будет.

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

И да, с 0.1uF развязкой на линейник я погорячился, другой под рукой не было. Конечно работать будет (у меня работает) но не феншуй. Лучше 1.0uF или вообще 4.7uF. И как мне подсказал еще «великий гуру», старые линейники с керамикой могут не работать. Только тантал/электролит.

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

Сборка uisp-bootloader

Добрый день! Собрал донгл https://cloud.mail.ru/public/fe9d5cc524e0/nrf24l01-dongle.zip Исходники eagle и картинки схемы и платы

Залил в контроллер готовый бинарник из https://github.com/uISP/uisp-bootloader - не работает - lsusb,dmesg молчат. пытаюсь собрать сам согласно https://github.com/nekromant/rf24boot/blob/master/README.dongle

make ./antares [INFO] Generating required headers [INFO] Building application code [GEN] built-in.o [INFO] Building antares library code and startup [GEN] built-in.o [GEN] built-in.o [GEN] built-in.o [GEN] built-in.o [GEN] built-in.o [GEN] built-in.o [GEN] built-in.o [GEN] built-in.o [GEN] built-in.o [GEN] built-in.o [GEN] built-in.o [LD] images/antares.elf /home/nikolay/rf24/uisp-bootloader-master/build/app/uisp-loader.o: In function `main': uisp-loader.c:(.text.main+0x0): multiple definition of `main' /home/nikolay/rf24/uisp-bootloader-master/build/arch/avr/startup.o:startup.c:(.text.main+0x0): first defined here collect2: ld returned 1 exit status make: *** [images/antares.elf] Ошибка 1

Среда: Ubuntu 12.04 amd64

Orion5
()
Ответ на: комментарий от ncrmnt

avr-gcc

avr-gcc -v Using built-in specs. COLLECT_GCC=avr-gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/avr/4.5.3/lto-wrapper Target: avr Configured with: ../src/configure -v --enable-languages=c,c++ --prefix=/usr/lib --infodir=/usr/share/info --mandir=/usr/share/man --bindir=/usr/bin --libexecdir=/usr/lib --libdir=/usr/lib --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-libssp --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=avr Thread model: single gcc version 4.5.3 (GCC)

Orion5
()
Ответ на: Сборка uisp-bootloader от Orion5

Правильно, готовый бинарник под uISP а у донгла другой конфиг. По ходу забыл положить конфиг в репу, обожди сейчас пну

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

Добавил в репу.

git pull cp config_nrfdongle .config make menuconfig

В настройках в «Target Platform» убедится что все правильно выставлено для таргета (Частота кварца, например)

Далее. Libraries ->3rd party -> vusb -> Hw config

Убедится что для USB порты D+ D- указаны так, как на твоей схематике

В «Deployment->avrdude» выбрать программатор.

make make deploy

Для записи фьюзов. Фьюзы заданы в «Fuse settings» avrdude. Мой дефолт там для атмеги 8. http://www.engbedded.com/fusecalc - юзай это и убедись что все задано правильно.

WFUSES=y make deploy

После этого должно заработать.

ncrmnt ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.