|
STM32L + LIS3DH, Какой опыт с потреблением? |
|
|
|
Oct 27 2014, 09:38
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 2-12-13
Пользователь №: 79 453

|
Приветствую всех. Вопрос может быть не совсем по теме раздела, но думаю тут на него лучше ответят. Очередной затык в разработке девайса. Который выпил у меня неожиданно много крови. Суть дела такая.
На плате STM32L + LIS3DH соединены по SPI.
Потребление контроллера STM32L151С8. В stop mode с RTC (внешний кварц), питание 3V получается 14 uA. Замерял отрезав вообще все провода к LIS3DH. В даташите обещают до 4 uA. Искал что я мог сделать не так - не нашёл. Все ножки сконфигурированы как аналоговый вход, кроме ножки прерывания от LIS3DH (по фронту на этой ноге контроллер просыпается). Если подать питание 2.5 V то потребление 3-4 uA.
Но это пол беды. с включением в схему LIS3DH потребление получается минимум 70uA (при этом контроллер держит поднятым CS, как я понял при этом активный интерфейс акселерометра - I2C). На STшном форуме проблема упоминается, но решения нет. Писали что ногу SDO/SA0 надо притянуть к VDD, мне не помогло. Ток течёт через ножку Vdd_IO, если её отрезать то всё становится нормально. Кто-нибудь сталкивался с подобными проблемами? Что можете посоветовать проверить? у меня мысли кончились уже.
|
|
|
|
|
 |
Ответов
(1 - 11)
|
Oct 27 2014, 12:08
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 2-12-13
Пользователь №: 79 453

|
Сделал на все ноги выходы и поставил в 0, результат - 98 uA было 14. кусок схемы такой http://saveimg.ru/show-image.php?id=bf958b...dbb27049e111878
Сообщение отредактировал T800 - Oct 27 2014, 12:09
|
|
|
|
|
Oct 27 2014, 12:35
|
Частый гость
 
Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118

|
Цитата(T800 @ Oct 27 2014, 08:08)  Сделал на все ноги выходы и поставил в 0, результат - 98 uA было 14. А если сделать на все ноги выходы и поставить в 1?
Сообщение отредактировал Aleksandr Baranov - Oct 27 2014, 12:36
--------------------
ASB
|
|
|
|
|
Oct 27 2014, 12:57
|
Знающий
   
Группа: Свой
Сообщений: 600
Регистрация: 27-05-05
Пользователь №: 5 482

|
QUOTE (T800 @ Oct 27 2014, 18:08)  Сделал на все ноги выходы и поставил в 0, результат - 98 uA было 14. резисторы/подтяжки, внешние соединения учли? в 0 тоже надо с умом ставить 10кОм дают ток 300мкА, внутренний PULL UP примерно 50мкА. недавно на форуме обсуждалось - человек ноги кварца не настроил, те же проблемы касаясь LIS3DH - аналоговые входы на землю посадите. В общем и целом для малопотребляющих режимов - висячих ног быть не должно, или настраивать на выход или вход с подтяжкой.
|
|
|
|
|
Oct 27 2014, 13:08
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 2-12-13
Пользователь №: 79 453

|
Цитата(dac @ Oct 27 2014, 16:57)  резисторы/подтяжки, внешние соединения учли? в 0 тоже надо с умом ставить 10кОм дают ток 300мкА, внутренний PULL UP примерно 50мкА. недавно на форуме обсуждалось - человек ноги кварца не настроил, те же проблемы касаясь LIS3DH - аналоговые входы на землю посадите. В общем и целом для малопотребляющих режимов - висячих ног быть не должно, или настраивать на выход или вход с подтяжкой. спасибо за совет, про ADC на акселерометре я вообще забыл! А вот насчёт кварца - у меня стоит только внешний часовой кварц, он работает нормально, настройка его ног ведь не нужна? С ногами HSE понятно, они не подключены, их настраиваем как все не используемые GPIO.
|
|
|
|
|
Oct 27 2014, 14:47
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 2-12-13
Пользователь №: 79 453

|
Что-то пока ничего не помогло. ADC к земле припаял, СS и SDO на выход в 1, в таком варианте наименьший ток. Но кардинально снизить не получается.
|
|
|
|
|
Oct 28 2014, 13:07
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 2-12-13
Пользователь №: 79 453

|
Да нет, тут всё в порядке. Вы мне кое-что напомнили, за что спасибо, я пошаманил инициализацию ног - стало 2.5uA у контроллера. То что и нужно было. А вот при подключении акселерометра нестабильно в районе 100 uA. Как ни меняй конфигурацию интерфейсных ног, результат примерно один. Кардинально помогает перерубание VDD_IO акселерометра.
Сообщение отредактировал T800 - Oct 28 2014, 13:16
|
|
|
|
|
Oct 28 2014, 14:30
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 2-12-13
Пользователь №: 79 453

|
Всё оказалось банально - два порта я ранее не инициализировал (в том числе H, который по совместительству вход HSE), поэтому они не тактировались и соответственно не конфигурировались как надо перед спячкой. С акселерометром вроде тоже решился вопрос. Переводом в I2C, выставлении на SA0 логической "1" и самое интересное до чего я раньше не додумался - на SCL тоже "1". Я как то не думал что потребление будет зависеть от состояния интрефейса, т.е. если клока нет то типа и передачи нет и нечему потреблять. Вот как то так. Пока не тестировал окончательно, но потребление всей этой компании стало в пределах 7 uA.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|