Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Ответить

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Пн авг 16, 2021 20:17:54

Вот график потребления. Я-бы исключил строки кода 103 - 119, т.к. у бикона нет профиля с характеристиками и они бесполезны.
Однако, к протоколу с сенсором есть претензии. Как видно из графика, линия SCL прижимается к земле на время измерения на 16мс и в это время через подтягивающий резистор течёт ток a прож ожидает в режиме Е1. Это происходит из-за выбора способа коммуникации с сенсором (команда 0xE5 для измерения). Хотя вклад этого пика в общее среднее потребление невилик, для выжимания "каждого микроватта" я-бы примения команду 0xF5 и читал-бы данные спустя 20мс. При этом можно выиграть порядка 0.8мка в среднем потреблении за минуту (если я не ошибся в расчётах), т.е. уменьшить его на 12%.
tb22.zip
(251.4 KiB) Скачиваний: 131

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Пн авг 16, 2021 20:56:18

Спасибо за информацию. Мда, я не вникал во внутренности si70xx - даже и не знаю что там за датчик, а просто взял готовый "software component". Свой standalone датчик планировал делать на TMP117. А вот еще возникла проблема. Так как хочется контролировать напряжение батареи... а как его измерить?

Так как опорное напряжение АЦП обычно ниже источника питания, то надо сначала напряжение поделить. Раньше у меня была возможность пропустить сигнал через повторитель на ОУ и тогда поделить и подать на вход АЦП или в конструкции было такое потребление, что десяток микроампер проходящие через делитель не имели никакого значения.

Сейчас я вижу только ставить высокоомный делитель перед повторителем на ОУ (встроенном в SoC) и перед делителем ключ на p-канальном полевом транзисторе, который будет отключать делитель от батареи пока не происходит измерение.

Может есть варианты лучше?

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Вт авг 17, 2021 00:12:21

Обычно выбирают референсе = AVDD и измеряют напряжение на внутреннем опорнике. Потом пересчитать напряжение питания. Но в BG22 нельзя измерить внутренний опорник. Поэтому я за решение с делителем, но коммутировать его непосредственно с вывода порта. Когда на пин выводится лог 1., напряжение на нем будет равно напряжению батареи. Ну или ставить к какому-то пину внешний опорник и измерять напряжение на нём, как указано выше.

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Пт сен 03, 2021 07:47:29

Ser60 писал(а):Однако, к протоколу с сенсором есть претензии.
Да, я поизучал работу этого сенсора и разделил операции:
Код:
SL_WEAK void app_process_action(void) {
  if (update_temp == 1) {
      update_temp = 0;
      sl_si70xx_start_no_hold_measure_rh_and_temp(sl_i2cspm_sensor, SI7021_ADDR);
      sl_sleeptimer_start_timer_ms(&delay_handle, 30, &read_temperature, NULL, 0, 0);
  } else if (update_temp == 2) {
      update_temp = ask_temperature();
  }
}
Но натурный эксперимент провалился. Свеже купленная и поставленная 23 августа батарейка, сдохла 2 сентября. т.е. проработала всего 10 дней. Т.е. около 240 часов, что получается, что что-то ело целый миллиампер (если принять ёмкость батареи 230мА*ч).

Я тут поизучал схему и мне показалось, что кристалл дебаггера тоже постоянно запитан от батарейки? Так как с батарейки напряжение через ключ попадает на шину VMCU, а эта шина питает и целевой кристалл EFR32BG22, и кристалл отладчика EFM32GG12.
Вложения
TB_sensor.zip
(284.13 KiB) Скачиваний: 128

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Пн сен 06, 2021 05:36:25

Я сейчас измерил ток Вашего первоначального проекта через WSTK и он по-прежнему в районе нескольких мкА. Когда запитал плату от 2хАА, подключив её к контактам держателя CR2032, и измерил ток, то он также оказался в районе нескольких мкА. Код проекта меняли? Если да, можете прилать мне его на повторный замер потребления.

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Пн сен 06, 2021 07:51:44

Вроде, особых изменений не делал, убрал функцию удерживающую i2c линию и удлинил передаваемую строку на два байта - раз уж сенсор даёт еще и относительную влажность - передаю еще и значение влажности. Проект, что "проработал 10 дней" в этом сообщении. Вроде созреваю на приобретение SLWSTK6103A... Но перед следующим тестом, хочу скомбинировать февральский и майские воркшопы, чтобы измерять и передавать еще и напряжение батареи - так буду знать раньше, что что-то не так.

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Пн сен 06, 2021 09:29:42

Двигаетесь в правильном направлении насчёт WSTK. Есть ещё у Атмела замечательный инструмент для измерения тока Atmel Power Debugger. До WSTK им долго пользовался. Подобная плата есть также у Нордика, но её не рекомендую. Выглядит как дешовка, включая интерфейс с компом. Ток проекта замерю по утру по местному. Кстати, мой друг в Москве жаловался на купленные там батарейки CR2032 - быстро разряжались при работе в ключах авто для его открывания. Не знаю какие именно он там покупал, но просил меня привезти ему такие. Я привёз пачку Energizer и после этого жалобы не слышал. А как измеряете напряжение батареи на BG22? С MG12 в этом плане было проще, там АЦП нормальный. Я столкнулся с большой проблемой в плане наличия надорогих плат в продаже, точнее с их отсутствием. Сейчас иду спать, напишу как нибудь потом.

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Пн сен 06, 2021 19:22:35

Ser60 писал(а): друг в Москве жаловался на купленные там батарейки CR2032
Ну, если честно, то я в магазине специально попросил дать мне самые дешевые батарейки. Продавщица назвала их "цинковыми", хотя на них красуется надпись "3V Lithium". Сейчас прикупил пару панасониковских для следующего эксперимента.
Ser60 писал(а):А как измеряете напряжение батареи на BG22?
Еще не, но собираюсь как в Use Case, только вместо термистора будет просто константный делитель.

Но это сейчас откладывается, так как всплыла бага в моём драйвере i2c для EFM32GG12. Пока шина SDA/SCL была без подтяжек (только на внутренних подтяжках GPIO), всё вроде, работало. Подключил еще одно устройство с подтяжками 4,7к - появились глюки. Если насадить на линии щупы осциллографа - глюки пропадают. Вот и думаю, как выловить, куда деётся прерывание RXDATAV, которое я жду после передачи старта и адреса с битом чтения...

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Пн сен 06, 2021 20:31:39

Ток замерил, оказалось теже 5.6мкА в среднем. В пике при работе передатчика доходит то 9мА, может это конкретному экземпляру CR-ки не нравится. Я их всегда большим танталом шунтирую - купил по случаю reel на 220мкФ.

Проблема, с которой я столкнулся - отсутствие в продаже модулей Thunderboard Sense 2 из-за глобального дефицита компонентов. На них у меня несколько курсов основано. Пока она не obsolete, я эту плату предпочитаю BG22 в курсах, из-за бОльшего числа кнопок и светодиодов, что расширяет разнообразие проектов. Стандартные дестрибюторы типа Mouser обещают их к середине октября прислать, но мне сейчас нужно. Кстати, у них на сайте ошибка была - пару дней назад они утверждали, что есто несколько сотен в стоке, но оказалось 0. Мне надо что-то студентам посоветовать где их взять по-быстрому, лекции уже начинаются на этой неделе. Нашёл их на другом местном дестрибюторе силлабов - Symmerty Electronics, но непонятно сколько у них их имеется. Сегодня в стране праздник, смогу узнать лишь завтра. Начал прорабатывать запасной вариант с платой PG22-DK2503A для курса по машинному языку. Но там МК семейства M33, так что все мои наработки с М4 нужно переработать. Начал это делать на выходных и просто в шоке от обилия регистров по сравнению с M4. В общем всё получилось, но к концу дня с красными глазами что-то не так сделал и контроллер перестал быть видимым отладчику. Но я уже знаю, что сделал не так и на что обратить внимание студентов. Ассемблер - опасная вещь. Это у меня единственная плата. Заказал сейчас новую на Arrow с быстрой доставкой, а также отдельные чипы - надеюсь смогу перепаять его на залоченной плате. Проще, конечно, было-бы закупить эти платы департаментом и использовать из года в год, раздавая их студентам во временное пользование, но с этим есть сложности. Да и меняю я платы каждые несколько лет на более современные.

По поводу I2C - всегда использую стандартный силлабовский драйвер. Он работает как часы, хотя и не основан на прерываниях (по-моему) и поддерживает только одного мастера. По I2C пересылаю небольшие объёмы данных в устройствах на батарейном питании.
tok.jpg
(222.21 KiB) Скачиваний: 95

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Вт сен 07, 2021 19:21:06

Спасибо за информацию. Через две недели, после сентябрьского воркшопа, попробую снова включить на непрерывную работу с Панасониковскими батарейками и какой-нибудь конденсатор нацеплю. WSTK надеюсь через пару недель получить - коллега делал заказ на дигикее, я к нему прицепился. И тоже жаловался, что всё что ему нужно на складе отсутствует.

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Чт сен 09, 2021 07:44:33

Получил всё с Arrow сегодня, но оказалось зря. Не понимаю как я ранее не заметил полезную кнопку в Simplicity Commander, которая сразу решила мою проблему. Имейте это ввиду на будущее.
brick.jpg
(158.25 KiB) Скачиваний: 96
Но зато у меня теперь 2 демо-платы и перепаивать ничего не нужно. Да и с новым М33 контроллером я уже разобрался со всем что мне нужно на уровне регистров. Всё оказалось очень логично и хорошо организовано.

Поздравляю с приобретением платы WSTK. Я надеюсь заказали к ней адаптер. Если нет, рекомендую.

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Чт сен 09, 2021 20:32:47

Ser60 писал(а):Поздравляю с приобретением платы WSTK. Я надеюсь заказали к ней адаптер. Если нет, рекомендую.

Ну еще рано, оно еще только будет. А вот это не оно (выделено)?
Изображение
Правда поиск по силабовскому сайту ничего дельного не даёт...
Вложения
WSTK.PNG
content
(26.66 KiB) Скачиваний: 271

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Чт сен 09, 2021 21:03:05

Да, это оно самое. На моей плате адаптера также написано BRD8010A.

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Вс сен 12, 2021 01:12:23

По поводу проблемы с заказаом Thunderboard Sense 2 плат, что я писал выше: у меня закралось подозрение, что Mouser их всех направил для конференции Works With, которая будет на следующей неделе. В конце августа на сайте Маузера их было хорошо за сотню и все исчезли за несколько дней. Ну не может быть, что их так быстро раскупили при условии, что они там до того годами лежали. Зато сейчас обнаружил, что участникам конференции их можно заказать бесплатно. Правда, их уже всё-равно нет в стоке, но принимаются заказы на будущее и даже с опцией бесплатной пересылки (участникам). Надо будет своим студентам рассказать. В другом курсе они мне нужны будут в ноябре, или придётся опять что-то придумывать. На сайте Symmetry их оказалось всего 3 штуки в наличии, и это меня не спасёт.

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Вс сен 12, 2021 18:40:24

Очередной апгрейд SDK на 3.2.2 и... куда делся gatt_db? Пока старый проект не трогаю в autogen присутствуют и gatt_db.c и gatt_db.h. Стоит открыть .slcp проекта, как эти файлы исчезают и проект больше не собирается жалуясь, что нет этого gatt_db.

Добавлено after 52 minutes 48 seconds:
Черт! Даже родной "SoC Empty" не собирается.

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Вс сен 12, 2021 19:38:40

Хмммм. А я таких проблем не испытываю. Точнее, у меня эти файлы не пропадают и проект компилируется без ошибок.
db.png
(178.97 KiB) Скачиваний: 85

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Вс сен 12, 2021 22:09:19

Спасибо за инфу. Снес SDK и поставил по-новой - заработало. Не понятно, что это было - какой-то глюк.

Хотел было в код сенсора добавить его включение и выключение, и тут всё поломалось. Теперь починил, но моя затея что-то не работает - добавл сточки, что закомментированы. Или, может надо питание подавать заранее, а не непосредственно перед измерением?
Код:
SL_WEAK void app_process_action(void) {
  if (update_temp == 1) {
//        sl_board_enable_sensor(SL_BOARD_SENSOR_RHT);
        update_temp = 0;
        sl_si70xx_start_no_hold_measure_rh_and_temp(sl_i2cspm_sensor, SI7021_ADDR);
        sl_sleeptimer_start_timer_ms(&delay_handle, 30, &read_temperature, NULL, 0, 0);

  } else if (update_temp == 2) {
      update_temp = ask_temperature();
//      if (update_temp == 0) sl_board_disable_sensor(SL_BOARD_SENSOR_RHT);
  }
}
Маяк сообщает температуру 0xEDB3 -46.85?

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Вс сен 12, 2021 22:35:52

Я сенсор вообще не выключаю по питанию. После единичного измерения он автоматически уходит в сон с мизерным потреблением. Сколько времени ему нужно на раскачку после подачи питания не помню. Вообще, с этим сенсором давно не работал - сейчас переключился на сенсоры HDC2080 от TI. Но вот нашёл свой старый код для Si7021 в режиме опроса готовности и с использованием драйвера I2C из EMLIB.
SI7021.zip
(1008 байт) Скачиваний: 114


Добавлено позже: Power-up time сенсора отражено в его ДШ на стр 5.
7021.png
(41.49 KiB) Скачиваний: 84

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Пн сен 13, 2021 20:45:59

Угу, посмотрел на PowerUp. Вроде, в слипе и мало этот датчик потребляет, всего 60нА, но на этой плате этим же выключателем включаются еще и датчик холла (50нА), и датчик освещения (500нА). А так как у меня опрос температуры раз в минуту - может, на этом еще удастся сэкономить. Поэтому сделал трёхступенчатый опрос: включить питание, ждать, запросить измерение, ждать, считать данные и выключить питание до следующего раза. И даже, теперь работает.

Re: Разработка Bluetooth приложений на модулях Silicon Labs

Пт сен 17, 2021 17:08:48

Ээээ, помогите понять это сообщение:

Thank you for taking part in our hands-on Bluetooth workshops!

This series has ended, however, we are currently taking reservations for the new workshops, and will be back to you soon to provide you with details on the new sessions. You can re-watch all the BG22 training sessions at silabs.com/training


We’d love to hear your feedback about the series! Click the button below to share your thoughts.
Т.е. из 10 обещанных воркшопов последние 2 не будут? А я как раз надеялся, что сейчас про PDM будет что-то интересное.

И у меня возник еще вопрос. Разглядывал тут исходник февральского low energy voltage monitor... и заметил в комментариях:
Код:
/***************************************************************************//**
 * @brief
 *    PRS Configuration Definitions.
 ******************************************************************************/
// Note CH7 is used by the BLE stack.
#define PRS_CHANNEL_LETIMER_IADC  1 
Вот, оказывается седьмым каналом PRS пользоваться нельзя! А я не знал и в своей конструкции его использовал. А где можно увидеть полный список "запрещенных" к использованию ресурсов?
Ответить