Дошли руки до тестов режима пониженного энергопотребления. В режиме "System On Idle" получились вот такие цифры:
System On Idle -- это режим, когда ядро выключено, основной генератор тактовой частоты выключен, периферия выключена и работает только блок RTC, от которого, при надобности, происходит пробуждение. В моем случае RTC тактируется от внешнего 32кгц кварца. Не совсем понятно, но с внешним тактированием потребляет меньше, чем с внутренним, хотя по даташиту должно быть наоборот.
Цифры на картинке меня откровенно порадовали. Когда я экспериментировал с режимами пониженного энергопотребления на STM32F030, то там минимум потребления, который удалось получить, был где-то в районе 3-4мка. Это при том, что ядро там Cortex-M0, а тут M4+FP и пробуждаясь STM32 делает себе полный резет, а тут по-нормальному, продолжает с той точки, где засыпал.
Прикрутил BME280 и изобразил что-то вроде метеодатчика. Правда, вывод тут не в эфир, а в последовательный порт. По логам терминала можно оценить точность времени пробуждения:
Допилил код автономного беспроводного метеодатчика на nRF52832 + BME280. Прототип представляет из себя беспаечную макетку, куда воткнута плата с E73, BME280 на проводах и отсек с двумя АА батарейками в качестве электропитания. Впоследствии ее легко можно будет превратить в законченное решение. Конструкция довольно простая, но характеристиками обладает довольно неплохими.
К настоящему времени прототип уже более двух суток передает каждые 25 сек. пакет данных с актуальными температурой, давлением и влажностью. Работает стабильно.
5:08:01.465> 707E970098090000DFEA0000: 24.56C, 99283.04 Pa / 744.69 mmHg, 60.12%
5:08:26.466> 9D7C970099090000BDEA0000: 24.57C, 99278.37 Pa / 744.66 mmHg, 60.09%
5:08:51.466> 507E97009A0900009BEA0000: 24.58C, 99282.72 Pa / 744.69 mmHg, 60.05%
5:09:16.466> 078097009B09000092EA0000: 24.59C, 99287.11 Pa / 744.72 mmHg, 60.05%
5:09:41.466> 537D97009D09000066EA0000: 24.61C, 99280.19 Pa / 744.67 mmHg, 60.00%
5:10:06.466> 337D97009F09000046EA0000: 24.63C, 99279.87 Pa / 744.67 mmHg, 59.97%
5:10:31.466> 597F97009F09000023EA0000: 24.63C, 99285.37 Pa / 744.71 mmHg, 59.93%
5:10:56.466> C57C9700A0090000F5E90000: 24.64C, 99278.77 Pa / 744.66 mmHg, 59.89%
5:11:21.466> 857C9700A3090000D7E90000: 24.67C, 99278.13 Pa / 744.66 mmHg, 59.86%
5:11:46.466> EA7D9700A4090000AAE90000: 24.68C, 99281.70 Pa / 744.68 mmHg, 59.81%
5:12:11.466> 987D9700A30900009DE90000: 24.67C, 99280.88 Pa / 744.68 mmHg, 59.80%
Приемник -- nRF24L01 под управлением STM8S. Такая конструкция имелась уже в готовом виде, т.ч. пока решил использовать именно ее. Приемник и передатчик расположены в разных комнатах, разделенных ж/б стеной. Прямой видимости нет. Передача ведется на 99 канале, выпадений пакетов пока особо не видно. Лог большой, пробежался глазами в нескольких местах, никакого криминала не обнаружил.
Код пока существует, как проект в KEIL-е. Собираюсь перебросить в Arduino IDE и как закончу выложу здесь.
К настоящему времени прототип уже более двух суток передает каждые 25 сек. пакет данных с актуальными температурой, давлением и влажностью. Работает стабильно.
=== было бы интересно видеть в данных еще и изменение напряжения батарейки, чтобы оценить. сколько девайс реально потребляет в этом режиме
a5021 пишет:
Код пока существует, как проект в KEIL-е. Собираюсь перебросить в Arduino IDE и как закончу выложу здесь.
было бы интересно видеть в данных еще и изменение напряжения батарейки, чтобы оценить. сколько девайс реально потребляет в этом режиме
На 2 х АА изменения очень медленно происходят, т.ч. ничего там не увидеть. У меня в уличном датчике с августа прошлого года напряжение снизилось на 10мв. Причем, это может и киснущий контакт в батарейном отсеке оказаться. Для оценки потребления я ионисторы пользовал. 0.66F рзряжается больше суток.
Вобщем, прикрутил измерение VDD. Теперь вот так выглядят данные на приемнике.
АЦП у nRF52832 тоже довольно интересный. Сам умеет оверсемплинг делать. Т.е. говоришь ему, что измерь вот по этой линии, скажем, 64 раза и выдай мне среднее. Или не просто среднее, а еще и дополнительный разряд или два. Из тех семейств микроконтроллеров, с которыми приходилось сталкиваться, нигде такого не встречал, хотя идея, что называется, на поверхности лежит.
На 2 х АА изменения очень медленно происходят, т.ч. ничего там не увидеть. У меня в уличном датчике с августа прошлого года напряжение снизилось на 10мв.
оффтоп, но что же там в датчике?
0.01в снижения за год - это батареек должно бы хватить лет на двадцать, если б не саморазряд
В том датчике присутствуют: stm32f030f4p6, повышайка (включается, когда батарейки ниже 2 вольт уходят), BMP180, SI7021, BH1750 и NRF24L01+. Приблизительно измерял ионистроным способом среднее потребление, выходило 22мка * ч, т.е. сто тысяч часов от двух алкалиновых АА -- это больше 11-и лет. Причем, эта цифра была получена способом, где все неточности, допуски и пр. трактовались исключительно в пользу повышения потребления и уменьшения времени работы.
По сравнению с той моей конструкцией 2016 года, похожий прибор на nRF52832 позволит снизить энергопотребление кратно. Пока что я вижу, что он точно выигрывает по ключевым показателям энергопотребления не меньше 2 раз, но на круг должно выходить и больше.
Современные алкалиновые батарейки имеют довольно низкие значения саморазряда и производители таких батарей сегодня дают 10 лет гарантийного срока хранения. Т.е. за десять лет хранения баратейка вследствие саморазряда не уйдет ниже номинала.
При таких показателях энергобаланса, одного, максимум -- двух, комплектов батарей формата АА должно хватить на весь срок жизни устройства.
а вот кусок такой платы на ошпарке обошелся бы в каких-нибудь пять долларов с доставкой и в количестве трех штук? вполне себе удобная штуковина.
я ошибаюсь, или где-то у нордика были рекомендации неиспользуемые пины сажать на землю? тогда было бы удобно еще и земляное обрамление сразу заварганить.
а вот кусок такой платы на ошпарке обошелся бы в каких-нибудь пять долларов с доставкой и в количестве трех штук? вполне себе удобная штуковина.
я ошибаюсь, или где-то у нордика были рекомендации неиспользуемые пины сажать на землю? тогда было бы удобно еще и земляное обрамление сразу заварганить.
Дак какая разница как человек спаял. Главное работает. А втеме пишу, потому что видел отладочную плату под nRF52832 на алике. Вообще плюсу +100500
я ошибаюсь, или где-то у нордика были рекомендации неиспользуемые пины сажать на землю?
У нордика такая документация, что определенно должно повезти, чтобы увидеть некоторые важные нюансы. Вот по заземлению ног мне точно не свезло, т.к. не видел таких рекомендаций.
Фотки моих самодельных плат слетели из первого сообщения, а редактировать его форум теперь уже не дает. Картинки остались на гите. Там же есть проект бредборд-совместимой отладочной платки в протеусе для запайки E73.
Ну во первых протип это и есть -время изготовления 10 минут, наиграюсь сделаю борду.
А девайс JLinkOB072 - программатор/отладчик арм имеет VCOM на борту. Полный оригинал(софт) , обновляемый с дров сеггера через бут. Плата своя ляпанная лутЪ, две стороны, низ сплошной GND.
Работает и с кайлом и с SES (Ozone)и IAR и эмобитс и с поделками на основе клипсины .
Вылетов никаких не наблюдал, кроме зае***бов на версии дров 6.22, с какого-то лешего не работал с стм F0.
Блин, мы тут на два форума. Научи, плз, где брать этот полный оригинал? Вроде как голые чипы есть на али, а дальше что делать? Или речь об официальных чипах с прошивкой от дилеров сеггера? Где их брать?
Чешу репу в раздумьях. Может и дальше бы обходился ST-LINK-ом, но как раз на теме nRF52832-ARDUINO словил ситуацию, когда связка OpenOCD + ST-LINK в качестве прошивальщика под ArduinoIDE ничего не может сделать с микроконтроллером (nRF52832), находящемся в состоянии сна. Небольшой инвестигейшн показал, что сам ST-LINK отдает информацию о том, что МК в PowerDown, но OpenOCD воспринимает это, как код ошиблки и с воплями падает. KEIL/IAR в этой же ситуации отрабатывают без вопросов. Виноват, безусловно, OpenOCD, но поможет ли в этой ситуации J-Link-072 не совсем понятно. Парочка 072 валяется без дела, но какого-то пинка пока недостает.
Возможно придется физически соединить Reset и выставить опцию connect under reset. OpenOSD ущербная недоделка. А мне счас хочется попробовать JLinkOB72_128kb , в нем есть прошивка grag&drop.
a5021, ставь SES и Ozone там масса плюшек от сеггер ...
вот. blue pill уже есть, и есть желание превратить ее в jlink для работы с nrf через тот же сеггер.
и кстати, то, что выше названо окном ozone под макосью отображается при отладке в самой сеггер-студией. то есть дизасемблинг, возможность просмотреть (мб и поменять) регистры, память - а я все пытался понять, что же такое озон и зачем оно нужно.
А чет я не пойму в чем проблема загрузчика? Прошил голубую пилюлю с помощью ST-Link'а, так после подключения винда сразу подхватила и драйвера поставила. Теперь сегеровский софт видит пилюлю, как J-Link OB
Фиг его знает, где там это искать. Глянул по быстрому, ничего не увидел. В кейле на стм32 проверил, все работает, шьется отлаживается даже не смотря на вопли о неправильном серийнике.
я как лох купил платку за тыщу рубле, а она на том же чипе, что и блюпил (по сути то же самое, разводка чуть другая), и в ней прошивка вроде бы как раз эта самая - и вот ses с ней работает с nrf через попу: прошить успевает, а чото еще поделать - нет :-(
У меня пока получается вот что: могу собрать в SES проект, залить его в nRF52832 и даже поотлаживать какое-то время в Ozon'е. В произвольный момент отладка отваливается по невыясненным причинам -- мож проводки с контактами гуляют, мож из-за серийника левого. Не знаю.
Поначалу напутал с резетом, отчего было решил, что проблема моя не решается и подключиться к спящему мк не получится и j-link'ом, но все вроде разрешилось.
А вот, кстати, прошивка с другим серийником, но они очень похожи. :) С этой все прежние неудобства исчезли.
Попробовал ардуиной залить скетч через этот j-link arm ob -- ничего не получилось. OpenOCD, которая под ардуино IDE и занимается прошивкой, валится с воплями, что не может открыть USB устройство. Гугление подсказало, что без дополнительных танцев с бубном, j-link здесь бы и не заработал. Инструкция о том, что надлежит сделать, находится здесь: https://github.com/sandeepmistry/arduino-nRF5#driver-setup-for-segger-j-link.
После переустановки драйверов через некий Zadig
все заработало. В диагностическом окне ардуины наблюдаю:
Цитата:
Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-10-10:13)
Licensed under GNU GPL v2
For bug reports, read http://openocd.org/doc/doxygen/bugs.html
debug_level: 2
0
adapter speed: 10000 kHz
cortex_m reset_config sysresetreq
Info : No device selected, using first device.
Info : J-Link ARM-OB STM32 compiled Jun 30 2009 11:14:15
Info : Hardware version: 7.00
Info : VTarget = 3.300 V
Info : clock speed 10000 kHz
Info : SWD IDCODE 0x2ba01477
Info : nrf52.cpu: hardware has 6 breakpoints, 4 watchpoints
nrf52.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x000006e4 msp: 0x20010000
** Programming Started **
auto erase enabled
Info : nRF51822-QFN48(build code: B00) 512kB Flash
Warn : not enough working area available(requested 32)
Warn : no working area available, falling back to slow memory writes
wrote 8192 bytes from file \arduino_build_748449/NRF52_SPIM_0.ino.hex in 16.704685s (0.479 KiB/s)
** Programming Finished **
** Verify Started **
Warn : not enough working area available(requested 52)
verified 6612 bytes in 0.138925s (46.479 KiB/s)
** Verified OK **
** Resetting Target **
shutdown command invoked
Однако, не все скоту масленница. Отпали все штатные сеггеровские средства работы с адаптером, а вместе с этим и возможность использовать программатор из кейлов/иаров. Ценой еще часа усилий все было возвращено на исходную, но что дальше делать и как скрестить этих антагонистов, пока не понятно. Вариант, постоянно переставлять драйвера в пользу тех или иных, как-то не подкупает своим изяществом.
Чем шить -- это не вопрос. С прикручиванием геморроиться лениво. Вообще, такой подлянки не ожидал, что оно не будет совместимым образом с OpenOCD работать. Теперь уже нашел, что сеггеры у себя в вики об этом пишут:
"Using J-Link with OpenOCD
=========================
In general, it is possible to use J-Link with OpenOCD. OpenOCD handles J-Link as a dumb JTAG/SWD/... probe and only uses the very low level logic to output JTAG/SWD/... sequences. It does not make use of any high level logic etc. and therefore is much slower than the proprietary SEGGER J-Link DLL / GDBServer / ... implementation. In order to use J-Link with OpenOCD the standard J-Link USB driver must be replaced with the WinUSB driver, using 3rd party utilities. There are lots of walkthroughs available on the internet.
Note: Once the J-Link USB driver has been replaced, no SEGGER software from the J-Link software package will be able to communicate with J-Link anymore. To use SEGGER J-Link software again, the USB driver needs to be switched back to its default.
"
Если хочешь можешь свою таблетку перешить в стлинк v2.
А я бы на твоем месте , плюнул бы на OSD .
Что в кайле , что в сес все прекрасно компилится, нахрена нужны прослойки?
Нет, в ст-линк шить не имею никакого желания. Во первых он есть, а во вторых, инстументы у сеггера весьма неплохи и я очень доволен, что до них добрался. Плюс бесплатная лицензия от сеггера для nRF52. Вообще красотень.
Касательно ардуины + ocd + j-link, буду морщить лобик, как этот клубок расплести. Другого ничего не остается.
С большой-пребольшой неохотой взялся прикручивать эти утилиты командной строки. Не обошлось без чертовщины. Начал с nrfjprog, которая в автономном режиме шила чип без проблем. Пока курил конфиги, прикидывал, что да как, nrfjprog шить перестала. Напрочь. Пишет, что JLink с таким серийным номером не подключен к компу. С каким "таким серийным номером" -- тайна покрытая мраком есть. Запущенная с ключем -i говорит, что серийник 12345. Что за серийник и откуда он взялся я так и не понял. Весь остальной софт работает с JLink'ом без проблем. Нафиг. Откинул nrfjprog. Взялся за JFlash. Она, правда, не совсем программатор командной строки, как та же дудка, скажем, но прикрутить ее можно. Один раз ее придется запустить ручками, чтобы создать пустой проект. Единственное, что там нужно указать -- это чип Nordic Semi nRF52832_xxAA. Дальше следует сохранить этот пустой проект куда-нибудь и не забыть, куда. В нижеприведенной конфигурации это C:/TEMP/nrf52.jflash.
Следующй момент -- добавление нового программатора в файлы конфигуарации ардуины. Отредактировать придется два файла: platform.txt и programmers.txt. Лежат они обычно довольно далеко. Для Win8.1 это обычно папка C:\Users\userName\AppData\Local\Arduino15\packages\sandeepmistry\hardware\nRF5\0.5.1\, где userName -- это имя учетки.
В конец файла programmers.txt нужно добавить сии незамысловатые строки:
Цитата:
#**********************************************
# Jlink with JFlash
#**********************************************
jflash.name=J-Flash for nRF52
jflash.program.tool=jflash
jflash.bootloader.tool=sandeepmistry:jflash
В вышеприведенном тексте следует обратить внимание на то, где "живет" jflash.exe и где сохранен пустой проект. Если раздражает окно приложения, которое остается висеть после загрузки, можно в последнюю строку добавить "-hide -exit". В остальном же, эта конфигурация позволяет шить nRF52832 через J-Link штатными средствами, в том числе и в случае, когда микроконтроллер находится в режиме сна.
Народ в инстаграмме хвастается:
Прошлый раз пришло запаянным в пакетик, теперь в виде куска ленты:
Фотки с mysensors.org
Еще один хак фитнесс-браслета на nRF5.
Чип, правда, 51822, но любопытному глазу там есть за что зацепиться и в рамках данной темы.
Дошли руки до тестов режима пониженного энергопотребления. В режиме "System On Idle" получились вот такие цифры:
System On Idle -- это режим, когда ядро выключено, основной генератор тактовой частоты выключен, периферия выключена и работает только блок RTC, от которого, при надобности, происходит пробуждение. В моем случае RTC тактируется от внешнего 32кгц кварца. Не совсем понятно, но с внешним тактированием потребляет меньше, чем с внутренним, хотя по даташиту должно быть наоборот.
Цифры на картинке меня откровенно порадовали. Когда я экспериментировал с режимами пониженного энергопотребления на STM32F030, то там минимум потребления, который удалось получить, был где-то в районе 3-4мка. Это при том, что ядро там Cortex-M0, а тут M4+FP и пробуждаясь STM32 делает себе полный резет, а тут по-нормальному, продолжает с той точки, где засыпал.
Прикрутил BME280 и изобразил что-то вроде метеодатчика. Правда, вывод тут не в эфир, а в последовательный порт. По логам терминала можно оценить точность времени пробуждения:
4:38:08.637> 24.27C, 100148.01 Pa / 751.18 mmHg, 60.95% D/I = 8/2
4:39:08.637> 24.29C, 100165.03 Pa / 751.31 mmHg, 60.93% D/I = 8/4
4:40:08.637> 24.27C, 100152.68 Pa / 751.22 mmHg, 60.68% D/I = 8/6
4:41:08.637> 24.21C, 100160.12 Pa / 751.27 mmHg, 60.45% D/I = 8/0
4:42:08.638> 24.24C, 100158.74 Pa / 751.26 mmHg, 59.67% D/I = 8/2
4:43:08.638> 24.24C, 100161.48 Pa / 751.28 mmHg, 59.22% D/I = 8/4
4:44:08.638> 24.25C, 100161.22 Pa / 751.28 mmHg, 59.32% D/I = 8/6
Левая колонка -- это часы компьютера. Можно сказать, что точность неплохая. Кварц он и есть кварц.
Допилил код автономного беспроводного метеодатчика на nRF52832 + BME280. Прототип представляет из себя беспаечную макетку, куда воткнута плата с E73, BME280 на проводах и отсек с двумя АА батарейками в качестве электропитания. Впоследствии ее легко можно будет превратить в законченное решение. Конструкция довольно простая, но характеристиками обладает довольно неплохими.
К настоящему времени прототип уже более двух суток передает каждые 25 сек. пакет данных с актуальными температурой, давлением и влажностью. Работает стабильно.
5:08:01.465> 707E970098090000DFEA0000: 24.56C, 99283.04 Pa / 744.69 mmHg, 60.12%
5:08:26.466> 9D7C970099090000BDEA0000: 24.57C, 99278.37 Pa / 744.66 mmHg, 60.09%
5:08:51.466> 507E97009A0900009BEA0000: 24.58C, 99282.72 Pa / 744.69 mmHg, 60.05%
5:09:16.466> 078097009B09000092EA0000: 24.59C, 99287.11 Pa / 744.72 mmHg, 60.05%
5:09:41.466> 537D97009D09000066EA0000: 24.61C, 99280.19 Pa / 744.67 mmHg, 60.00%
5:10:06.466> 337D97009F09000046EA0000: 24.63C, 99279.87 Pa / 744.67 mmHg, 59.97%
5:10:31.466> 597F97009F09000023EA0000: 24.63C, 99285.37 Pa / 744.71 mmHg, 59.93%
5:10:56.466> C57C9700A0090000F5E90000: 24.64C, 99278.77 Pa / 744.66 mmHg, 59.89%
5:11:21.466> 857C9700A3090000D7E90000: 24.67C, 99278.13 Pa / 744.66 mmHg, 59.86%
5:11:46.466> EA7D9700A4090000AAE90000: 24.68C, 99281.70 Pa / 744.68 mmHg, 59.81%
5:12:11.466> 987D9700A30900009DE90000: 24.67C, 99280.88 Pa / 744.68 mmHg, 59.80%
Приемник -- nRF24L01 под управлением STM8S. Такая конструкция имелась уже в готовом виде, т.ч. пока решил использовать именно ее. Приемник и передатчик расположены в разных комнатах, разделенных ж/б стеной. Прямой видимости нет. Передача ведется на 99 канале, выпадений пакетов пока особо не видно. Лог большой, пробежался глазами в нескольких местах, никакого криминала не обнаружил.
Код пока существует, как проект в KEIL-е. Собираюсь перебросить в Arduino IDE и как закончу выложу здесь.
К настоящему времени прототип уже более двух суток передает каждые 25 сек. пакет данных с актуальными температурой, давлением и влажностью. Работает стабильно.
=== было бы интересно видеть в данных еще и изменение напряжения батарейки, чтобы оценить. сколько девайс реально потребляет в этом режиме
Код пока существует, как проект в KEIL-е. Собираюсь перебросить в Arduino IDE и как закончу выложу здесь.
любопытно глянуть
На 2 х АА изменения очень медленно происходят, т.ч. ничего там не увидеть. У меня в уличном датчике с августа прошлого года напряжение снизилось на 10мв. Причем, это может и киснущий контакт в батарейном отсеке оказаться. Для оценки потребления я ионисторы пользовал. 0.66F рзряжается больше суток.
Вобщем, прикрутил измерение VDD. Теперь вот так выглядят данные на приемнике.
6:22:10.425> 3F839700140A0000E2EC0000AC0A: 25.80C, 99295.35 Pa / 744.78 mmHg, 60.64%, V_BAT = 2.732
6:22:35.425> 28849700040A0000F0ED0000AC0A: 25.64C, 99297.68 Pa / 744.80 mmHg, 60.91%, V_BAT = 2.732
6:23:00.425> 4F8497002A0A00003BEA0000AC0A: 26.02C, 99298.07 Pa / 744.81 mmHg, 59.96%, V_BAT = 2.732
6:23:25.425> 738197003C0A00008CE80000AB0A: 26.20C, 99290.75 Pa / 744.75 mmHg, 59.53%, V_BAT = 2.731
6:23:50.425> FE8197004F0A000062E60000AA0A: 26.39C, 99292.14 Pa / 744.76 mmHg, 58.97%, V_BAT = 2.730
АЦП у nRF52832 тоже довольно интересный. Сам умеет оверсемплинг делать. Т.е. говоришь ему, что измерь вот по этой линии, скажем, 64 раза и выдай мне среднее. Или не просто среднее, а еще и дополнительный разряд или два. Из тех семейств микроконтроллеров, с которыми приходилось сталкиваться, нигде такого не встречал, хотя идея, что называется, на поверхности лежит.
Попозже сюда закину.
На 2 х АА изменения очень медленно происходят, т.ч. ничего там не увидеть. У меня в уличном датчике с августа прошлого года напряжение снизилось на 10мв.
оффтоп, но что же там в датчике?
0.01в снижения за год - это батареек должно бы хватить лет на двадцать, если б не саморазряд
В том датчике присутствуют: stm32f030f4p6, повышайка (включается, когда батарейки ниже 2 вольт уходят), BMP180, SI7021, BH1750 и NRF24L01+. Приблизительно измерял ионистроным способом среднее потребление, выходило 22мка * ч, т.е. сто тысяч часов от двух алкалиновых АА -- это больше 11-и лет. Причем, эта цифра была получена способом, где все неточности, допуски и пр. трактовались исключительно в пользу повышения потребления и уменьшения времени работы.
По сравнению с той моей конструкцией 2016 года, похожий прибор на nRF52832 позволит снизить энергопотребление кратно. Пока что я вижу, что он точно выигрывает по ключевым показателям энергопотребления не меньше 2 раз, но на круг должно выходить и больше.
Современные алкалиновые батарейки имеют довольно низкие значения саморазряда и производители таких батарей сегодня дают 10 лет гарантийного срока хранения. Т.е. за десять лет хранения баратейка вследствие саморазряда не уйдет ниже номинала.
При таких показателях энергобаланса, одного, максимум -- двух, комплектов батарей формата АА должно хватить на весь срок жизни устройства.
Добавил еще температуру с кристалла МК. Итого, пакет данных = 10 байт, периодичность раз в минуту:
8:00:02.885> 280A97143C08401CAF0A: 21.08C / 20C, 98985.36 Pa / 742.46 mmHg, 72.32%, V_BAT = 2.735
8:01:02.885> 930897143408601CB10A: 21.00C / 20C, 98981.31 Pa / 742.43 mmHg, 72.64%, V_BAT = 2.737
8:02:02.886> 5F0897143208831CAF0A: 20.98C / 20C, 98980.79 Pa / 742.43 mmHg, 72.99%, V_BAT = 2.735
8:03:02.886> 170697143E08301CB20A: 21.10C / 20C, 98974.95 Pa / 742.38 mmHg, 72.16%, V_BAT = 2.738
8:04:02.886> D60697143D084C1CB10A: 21.09C / 20C, 98976.86 Pa / 742.40 mmHg, 72.44%, V_BAT = 2.737
8:05:02.886> 1F0997143208641CB00A: 20.98C / 20C, 98982.71 Pa / 742.44 mmHg, 72.68%, V_BAT = 2.736
8:06:02.886> 470797143C087C1CB00A: 21.08C / 20C, 98977.99 Pa / 742.40 mmHg, 72.92%, V_BAT = 2.736
8:07:02.886> AF0897144F083F1CB00A: 21.27C / 20C, 98981.59 Pa / 742.43 mmHg, 72.31%, V_BAT = 2.736
8:08:02.886> 270997144408581CAF0A: 21.16C / 20C, 98982.79 Pa / 742.44 mmHg, 72.56%, V_BAT = 2.735
8:09:02.886> EC0A97154E08471CAE0A: 21.26C / 21C, 98987.32 Pa / 742.47 mmHg, 72.39%, V_BAT = 2.734
8:10:02.887> E20797154208551CB00A: 21.14C / 21C, 98979.54 Pa / 742.42 mmHg, 72.53%, V_BAT = 2.736
Энтузиасты продолжают извращения. :)
Распайка, судя по всему, витой парой.
а вот кусок такой платы на ошпарке обошелся бы в каких-нибудь пять долларов с доставкой и в количестве трех штук? вполне себе удобная штуковина.
я ошибаюсь, или где-то у нордика были рекомендации неиспользуемые пины сажать на землю? тогда было бы удобно еще и земляное обрамление сразу заварганить.
а вот кусок такой платы на ошпарке обошелся бы в каких-нибудь пять долларов с доставкой и в количестве трех штук? вполне себе удобная штуковина.
я ошибаюсь, или где-то у нордика были рекомендации неиспользуемые пины сажать на землю? тогда было бы удобно еще и земляное обрамление сразу заварганить.
Дак какая разница как человек спаял. Главное работает. А втеме пишу, потому что видел отладочную плату под nRF52832 на алике. Вообще плюсу +100500
нутк я ж не говорю, что какой кошмар :-) просто я б так не сумел. нечто подобное лутил под себя. лут - не то, чтобы от хорошей жизни.
елси б можно было в один клик заказать на том же ошпарке - было б удобно наверное.
отладочная плата на алике - без ссылки нещитова)
У нордика такая документация, что определенно должно повезти, чтобы увидеть некоторые важные нюансы. Вот по заземлению ног мне точно не свезло, т.к. не видел таких рекомендаций.
Фотки моих самодельных плат слетели из первого сообщения, а редактировать его форум теперь уже не дает. Картинки остались на гите. Там же есть проект бредборд-совместимой отладочной платки в протеусе для запайки E73.
Я самый ленивый...
это все хорошо для прототипирования, но вот в конечное устройство как-то не лезет)
что за девайс, кстати, для программирования? в какой среде используется? работает стабильно? не вылетает?
Ну во первых протип это и есть -время изготовления 10 минут, наиграюсь сделаю борду.
А девайс JLinkOB072 - программатор/отладчик арм имеет VCOM на борту. Полный оригинал(софт) , обновляемый с дров сеггера через бут. Плата своя ляпанная лутЪ, две стороны, низ сплошной GND.
Работает и с кайлом и с SES (Ozone)и IAR и эмобитс и с поделками на основе клипсины .
Вылетов никаких не наблюдал, кроме зае***бов на версии дров 6.22, с какого-то лешего не работал с стм F0.
Блин, мы тут на два форума. Научи, плз, где брать этот полный оригинал? Вроде как голые чипы есть на али, а дальше что делать? Или речь об официальных чипах с прошивкой от дилеров сеггера? Где их брать?
http://forum.easyelectronics.ru/viewtopic.php?f=38&t=22589&start=300
Там прошивка в dfu. Чип умеет dfu с завода, софт для заливки на сайте стм .
В той же ветке и печатки и схема.
Изготовливаете плату , паяете комплектующие, замыкаете бут, втыкаете в usb.
В устройствах появиться stm32 в dfu mode.
Запускаете софтину, заливаете прошивку.
Перетыкаете девайс , ставите дрова от сеггер, в Jlink Configuratornобновляете, в Jlink Commander прописываете серийник.
ясно. буду гуглить, что такое dfu и с чем его едят..
Dfu загрузчик через usb.
Счас некогда, завтра время будет распишу подробнее
Чешу репу в раздумьях. Может и дальше бы обходился ST-LINK-ом, но как раз на теме nRF52832-ARDUINO словил ситуацию, когда связка OpenOCD + ST-LINK в качестве прошивальщика под ArduinoIDE ничего не может сделать с микроконтроллером (nRF52832), находящемся в состоянии сна. Небольшой инвестигейшн показал, что сам ST-LINK отдает информацию о том, что МК в PowerDown, но OpenOCD воспринимает это, как код ошиблки и с воплями падает. KEIL/IAR в этой же ситуации отрабатывают без вопросов. Виноват, безусловно, OpenOCD, но поможет ли в этой ситуации J-Link-072 не совсем понятно. Парочка 072 валяется без дела, но какого-то пинка пока недостает.
Возможно придется физически соединить Reset и выставить опцию connect under reset. OpenOSD ущербная недоделка. А мне счас хочется попробовать JLinkOB72_128kb , в нем есть прошивка grag&drop.
a5021, ставь SES и Ozone там масса плюшек от сеггер ...
Так понимаю, что начать можно с обращения Blue Pill в старую версию J-Link ? Сильно много там чего работать не будет?
Не будет VCOM, но скорость должна быть выше чем в 072. Остальное все так же.
Одно но, я еще не прикручивал бут, хотя люди говорят что делали...
вот. blue pill уже есть, и есть желание превратить ее в jlink для работы с nrf через тот же сеггер.
и кстати, то, что выше названо окном ozone под макосью отображается при отладке в самой сеггер-студией. то есть дизасемблинг, возможность просмотреть (мб и поменять) регистры, память - а я все пытался понять, что же такое озон и зачем оно нужно.
Ozone и под макось и под линух и под винду , Ozone это продвинутый дебуггер.
А деббугер в SES выглядит так:
вот. blue pill уже есть, и есть желание превратить ее в jlink для работы с nrf через тот же сеггер.
Из BluePill можно сделать аж три программатора на выбор - JLink, STLink или BlackMagicProbe. Любой из трех подходит для программирования nRF52832
но ведь не любой будет работать с ses?
где найти, как из него делать j-link?
я официально переделал в j-link программатор на плате discovery, но оно в таком работает только с чипами st :-(
pup, по той же ссылке есть и на 103ий.
b707, STLink или BlackMagicProbe - в топку
Вот и Кларк (автор stm32duino) хвастается, как он из Blue Pill сделал J-Link. Но ссылки у него ведут фактически туда же.
ну и отлично. осталось выкроить время, попробовать прошить блю пил, а потом ею поковырять nrf.
Вот и Кларк (автор stm32duino) хвастается, как он из Blue Pill сделал J-Link. Но ссылки у него ведут фактически туда же.
Охренеть, вот как они загрузчик выдернули...
А чет я не пойму в чем проблема загрузчика? Прошил голубую пилюлю с помощью ST-Link'а, так после подключения винда сразу подхватила и драйвера поставила. Теперь сегеровский софт видит пилюлю, как J-Link OB
Firmware: J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04
Hardware version: V7.00
S/N: 20090928
License(s): RDI,FlashDL,FlashBP,JFlash,GDBFull
VTref=3.300V
VTref=3.300V
ITarget=0mA
TCK=1 TDI=1 TDO=1 TMS=1 TRES=1 TRST=1
Supported target interface speeds:
- 16 MHz/n, (n>=4). => 4000kHz, 3200kHz, 2666kHz, ...
J-Link>
только на серийный номер ругается.
а что делать , чтобы не ругалось? открывать файл в бинари формате, искать эту строчку и менять чуть-чуть на другую?
Фиг его знает, где там это искать. Глянул по быстрому, ничего не увидел. В кейле на стм32 проверил, все работает, шьется отлаживается даже не смотря на вопли о неправильном серийнике.
я как лох купил платку за тыщу рубле, а она на том же чипе, что и блюпил (по сути то же самое, разводка чуть другая), и в ней прошивка вроде бы как раз эта самая - и вот ses с ней работает с nrf через попу: прошить успевает, а чото еще поделать - нет :-(
У меня пока получается вот что: могу собрать в SES проект, залить его в nRF52832 и даже поотлаживать какое-то время в Ozon'е. В произвольный момент отладка отваливается по невыясненным причинам -- мож проводки с контактами гуляют, мож из-за серийника левого. Не знаю.
Поначалу напутал с резетом, отчего было решил, что проблема моя не решается и подключиться к спящему мк не получится и j-link'ом, но все вроде разрешилось.
a5021, на котах в личку кинул.
А чет я не пойму в чем проблема загрузчика?
Прошивка на 103 хоть не часто но меняется.
На 072 чаще.
Конечно выдрать новую прошивку и прикрутить не проблема, но ты это делал?
Я да...
А вот, кстати, прошивка с другим серийником, но они очень похожи. :) С этой все прежние неудобства исчезли.
Попробовал ардуиной залить скетч через этот j-link arm ob -- ничего не получилось. OpenOCD, которая под ардуино IDE и занимается прошивкой, валится с воплями, что не может открыть USB устройство. Гугление подсказало, что без дополнительных танцев с бубном, j-link здесь бы и не заработал. Инструкция о том, что надлежит сделать, находится здесь: https://github.com/sandeepmistry/arduino-nRF5#driver-setup-for-segger-j-link.
После переустановки драйверов через некий Zadig
все заработало. В диагностическом окне ардуины наблюдаю:
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
debug_level: 2
0
adapter speed: 10000 kHz
cortex_m reset_config sysresetreq
Info : No device selected, using first device.
Info : J-Link ARM-OB STM32 compiled Jun 30 2009 11:14:15
Info : Hardware version: 7.00
Info : VTarget = 3.300 V
Info : clock speed 10000 kHz
Info : SWD IDCODE 0x2ba01477
Info : nrf52.cpu: hardware has 6 breakpoints, 4 watchpoints
nrf52.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x000006e4 msp: 0x20010000
** Programming Started **
auto erase enabled
Info : nRF51822-QFN48(build code: B00) 512kB Flash
Warn : not enough working area available(requested 32)
Warn : no working area available, falling back to slow memory writes
wrote 8192 bytes from file \arduino_build_748449/NRF52_SPIM_0.ino.hex in 16.704685s (0.479 KiB/s)
** Programming Finished **
** Verify Started **
Warn : not enough working area available(requested 52)
verified 6612 bytes in 0.138925s (46.479 KiB/s)
** Verified OK **
** Resetting Target **
shutdown command invoked
Однако, не все скоту масленница. Отпали все штатные сеггеровские средства работы с адаптером, а вместе с этим и возможность использовать программатор из кейлов/иаров. Ценой еще часа усилий все было возвращено на исходную, но что дальше делать и как скрестить этих антагонистов, пока не понятно. Вариант, постоянно переставлять драйвера в пользу тех или иных, как-то не подкупает своим изяществом.
А вот, кстати, прошивка с другим серийником, но они очень похожи. :) С этой все прежние неудобства исчезли.
А вот эта кстати уже с бутом. И обновилась у меня ...
a5021, если тебе из аурдуньи просто шить, попробуй JFlash lite, он в комплекте с дровами.
Да и можно наверняка прикрутить nRF5x Command Line Tools .
Чем шить -- это не вопрос. С прикручиванием геморроиться лениво. Вообще, такой подлянки не ожидал, что оно не будет совместимым образом с OpenOCD работать. Теперь уже нашел, что сеггеры у себя в вики об этом пишут:
"Using J-Link with OpenOCD
=========================
In general, it is possible to use J-Link with OpenOCD. OpenOCD handles J-Link as a dumb JTAG/SWD/... probe and only uses the very low level logic to output JTAG/SWD/... sequences. It does not make use of any high level logic etc. and therefore is much slower than the proprietary SEGGER J-Link DLL / GDBServer / ... implementation. In order to use J-Link with OpenOCD the standard J-Link USB driver must be replaced with the WinUSB driver, using 3rd party utilities. There are lots of walkthroughs available on the internet.
Note: Once the J-Link USB driver has been replaced, no SEGGER software from the J-Link software package will be able to communicate with J-Link anymore. To use SEGGER J-Link software again, the USB driver needs to be switched back to its default.
"
Если хочешь можешь свою таблетку перешить в стлинк v2.
А я бы на твоем месте , плюнул бы на OSD .
Что в кайле , что в сес все прекрасно компилится, нахрена нужны прослойки?
Нет, в ст-линк шить не имею никакого желания. Во первых он есть, а во вторых, инстументы у сеггера весьма неплохи и я очень доволен, что до них добрался. Плюс бесплатная лицензия от сеггера для nRF52. Вообще красотень.
Касательно ардуины + ocd + j-link, буду морщить лобик, как этот клубок расплести. Другого ничего не остается.
a5021, наверняка можно прикручивать вызов консольных приложений, OSD же как-то прикрутили. А там по образу и подобию...
С большой-пребольшой неохотой взялся прикручивать эти утилиты командной строки. Не обошлось без чертовщины. Начал с nrfjprog, которая в автономном режиме шила чип без проблем. Пока курил конфиги, прикидывал, что да как, nrfjprog шить перестала. Напрочь. Пишет, что JLink с таким серийным номером не подключен к компу. С каким "таким серийным номером" -- тайна покрытая мраком есть. Запущенная с ключем -i говорит, что серийник 12345. Что за серийник и откуда он взялся я так и не понял. Весь остальной софт работает с JLink'ом без проблем. Нафиг. Откинул nrfjprog. Взялся за JFlash. Она, правда, не совсем программатор командной строки, как та же дудка, скажем, но прикрутить ее можно. Один раз ее придется запустить ручками, чтобы создать пустой проект. Единственное, что там нужно указать -- это чип Nordic Semi nRF52832_xxAA. Дальше следует сохранить этот пустой проект куда-нибудь и не забыть, куда. В нижеприведенной конфигурации это C:/TEMP/nrf52.jflash.
Следующй момент -- добавление нового программатора в файлы конфигуарации ардуины. Отредактировать придется два файла: platform.txt и programmers.txt. Лежат они обычно довольно далеко. Для Win8.1 это обычно папка C:\Users\userName\AppData\Local\Arduino15\packages\sandeepmistry\hardware\nRF5\0.5.1\, где userName -- это имя учетки.
В конец файла programmers.txt нужно добавить сии незамысловатые строки:
# Jlink with JFlash
#**********************************************
jflash.name=J-Flash for nRF52
jflash.program.tool=jflash
jflash.bootloader.tool=sandeepmistry:jflash
в конец файла platform.txt такие:
# jflash upload
#
tools.jflash.path=C:\Program Files\SEGGER\JLink_V633i
tools.jflash.cmd=JFlash.exe
tools.jflash.program.params.verbose=
tools.jflash.program.params.quiet=-hide -exit
tools.jflash.program.pattern="{path}/{cmd}" -openprjC:/TEMP/nrf52.jflash -open"{build.path}/{build.project_name}.hex" -auto -startapp
В вышеприведенном тексте следует обратить внимание на то, где "живет" jflash.exe и где сохранен пустой проект. Если раздражает окно приложения, которое остается висеть после загрузки, можно в последнюю строку добавить "-hide -exit". В остальном же, эта конфигурация позволяет шить nRF52832 через J-Link штатными средствами, в том числе и в случае, когда микроконтроллер находится в режиме сна.
a5021, посмотри в jlink configurator серийник. Может он у тебя -1 ?