Перейти к содержанию

    

KnightIgor

Участник
  • Публикаций

    648
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о KnightIgor

  • Звание
    Знающий

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Германия
  1. Связь ч/з цепи питания

    Я уже думал в этом направлении, правда, передача только от датчика наверх: см. картинку. Одним транзистором не отделаешься, хотя приведенная схема в 0402 и всяких SC-70 будет маленькой. Указаный LDO - только для примера и симуляции.
  2. STM32L0 HardFault: заморочки с выравниванием

    memcpy копирует в общем случае побайтно. Вроде есть реализации, где она копирует сначала в максимальной разрядности процессора, а потом, при нечетном количестве байт, докопирует побайтно. Очевидно, что реализация для M0|M0+ будет побайтная. Приведение к упакованной структуре просто порождает код, который работает побайтно. Потому компилятору и сообщают ключи типа -CortexM0, вроде того.
  3. Связь ч/з цепи питания

    Как насчет 1-wire? Вообще, я не понимаю смысл: если мало места, то всякая схемотехника для передачи по питанию как раз место и займет! Другое дело, если есть только два свободных провода для питания, и нет для данных, то да...
  4. Вообще-то EXTI->PR = (1<<12);
  5. Посоветуйте микроконтроллер STM

    В одном продукте мы применили PTRTC1010 (http://www.eenewseurope.com/news/low-cost-real-time-clock-ic-offers-precise-timing). Согласно DS внутри применен TCXO, отклонение во всем температурном диапазоне, если пересчитать на год, составит около 2.5 минуты. Чтобы питать от батареи нужно, конечно, внешнее переключение питания с общего на батарею и обратно, но для этого можно найти много компактных решений от, например, TI, хотя можно и на полевике и диоде.
  6. Грабли с энергосбережением STM32F0

    Таки да! Я тему возобновляю коротко, чтобы сообщить, что я нашел причину повышенного потребления: это и вправду неиспользованные и НЕВЫВЕДЕННЫЕ ноги, но только не PC13..PC15 и иже с ними, или PF0 и PF1, а... PB2 и PB8. Дело в том, что всяких PC13..PC15 или PC0..PC5 (то есть, порта C) в процессоре STM32F051K8T в LQFP32, похоже, действительно нет, т.к. манипуляции с ними ни к чему не приводили. А вот PB2 и PB8 - есть! Дело в том, что STM32F051K8U в QFPN32 имеют эти выводы снаружи, на LQFP32 - нет снаружи, но явно есть внутри! В DataSheet на странице 36 в сноске 4 меленько написано: Как только я установил эти ноги как выходы с низким уровнем, потребление упало до заявленного! Еще раз спасибо за наводку по ногам. Пришлось долго искать, какие это именно.
  7. Графический фильтр на Cortex-M7

    ОТ: Back to 80's? Не в смысле фильтров, а моды на 8-битные игры? Интересно узнать, каков back ground изысканий...
  8. Генерация звука

    1. Запустить таймер на, скажем, 8kHz 2. По срабатыванию таймера выдать в ЦАП выборку из сэмпла. 3. Выборку можно взять либо из таблицы сэмплов для разных нот, либо, для периодических сигналов, вычислить математически. Примерно так.
  9. STM32F107. Проблема при работе АЦП с DMA.

    Добро пожаловать в клуб! Такое явление я наблюдал, о чем даже писал здесь. Может Вам как заинтересованному удастся найти тему :rolleyes:. Явление возникало на F103 спорадически при внешних электрических помехах, - включении моторов и питания устройств в округе, - хотя общая работоспособность процессора не нарушалась, т.е. не было слётов, перезапусков, зависаний. Я сделал вывод, что имеет место особенность цепей в процессоре аппаратно "сглатывать" какие-то флаги, что приводит к рассинхронизации ADC и DMA. Бороться различными дополнительными фильтрами питания я посчитал нецелесообразным: на всякие аппаратные решения всегда найдется помеха с вихрево-заточенной левой резьбой, а уже примененная схемотехника была достаточно зрела. Поборол программно, перенастраивая DMA и ADC каждый раз. Конечно, нет гарантии, что в цикле преобразования между перезапусками не произойдет сбой. Я пытаюсь предотвратить неверные результаты путем фильтрации и вообще игнорированием результата, если анализ флагов периферии дает основание подозревать, что последний цикл сбойнул. Опасаюсь, что надежного решения на все случаи жизни нет, т.к. проблема заложена в аппаратуре процессора. P.S. Слабо всплывает в памяти, что на тему я писал не здесь, а в форуме ST. P.P.S. Пошерстил свои темы в ST - нет. Одна из тем здесь: https://electronix.ru/forum/index.php?showt...t&p=1269738
  10. Грабли с энергосбережением STM32F0

    :biggrin: Запланировано. Все входы-выходы перепроверил, никаких неопределенностей нет, все, что не задействовано (пара ног), - определено. Не забываю :). Может MSP432?
  11. Грабли с энергосбережением STM32F0

    Цитата(Baser @ May 4 2018, 14:54) Это еще не факт, ибо в Standby почти все порты аппаратно переключаются на вход без подтяжек, а при STOP они сохраняют свое состояние. Поэтому проверьте все уровни на ножках. Еще может быть эффект с уровнем в половину питания на плавающей ножке. Столкнулся с этим на STM32L1 в Standby: Да, я проверял все уровни, благо, ножек не много. Так я обнаружил "средний" уровень на TX процессора, когда я деактивировал его UART, что приводило в итоге к значительному росту потребления (скорее) со стороны RS485 чипа. Я перестал деактивировать UART, т.к. этот узел ничего не потребляет в STOP, однако сохраняет управление TX и уровень последнего. Все это немедленно улучшило ситуацию. Остальные ноги находятся на определенных предусмотренных уровнях, не "тягаясь" с кем-то снаружи. Если предусмотрены Pull-up, так и внешние OK транзисторы закрыты, и т.п. Единственный аналоговый вход имеет действительно примерно половинное питание от выхода операционника. Этот вход определен как аналоговый, а не цифровой вход, а операционник - вообще TLV2401, который "кушает" 0.9мкА. Где копать дальше - не знаю.
  12. Грабли с энергосбережением STM32F0

    Цитата(KnightIgor @ May 3 2018, 11:37) Как я писал в этой ветке чуть выше, я имею потребление в 25мкА, если перевожу процессор в режим STANDBY, при котором он не ест почти ничего. То есть, 100мкА из 125мкА моего режима STOP съедает явно процессор. Еще одним подтверждением процессора как источника "лишнего" потребления служит обнаруженный мной только что эффект роста потребления при нагревании процессора: даже приложив просто палец к корпусу процессора (то есть, нагрев на примерно 10 градусов), я наблюдаю немедленный рост потребления на примерно 12мкА. Оно же падает постепенно, если палец убрать. Иные компоненты как FRAM, RS485 чип и LDO на плате никак не "реагируют" в смысле потребления на ласковое прикосновение. Перечитал ERRATA на чип. Есть несколько упоминаний режима STOP. В частности, есть и правда упоминание о PC0..PC5, которые не выведены на ножки малых корпусов, но присутствуют. Написано, что эти линии портов устанавливаются аппаратно в "безопасное с точки зрения потребления" состояние, и не рекомендуется перепрограммировать их в состояние аналогового входа, особенно, если VDDA больше VDDIO, что приводит к увеличению потребления на десяток мкА по каждой линии. Я их и не трогаю, да и VDDA у меня - те же 3.3V питания, разве что через ferrit bead. Перед переходом в STOP надо также убедиться о завершении транзакций по I2C. Рекомендуют для верности деактивировать I2C. Я попробовал и то, и другое (совместно). Никаких изменений в какую-либо сторону потребления.
  13. Грабли с энергосбережением STM32F0

    Цитата(amiller @ May 1 2018, 06:16) А ток потребления измеряете до линейника 3V3 или после? 100 мкА вполне может оказаться собственным потреблением LDO, если он выбран неправильно. А периферию, ненужную во время сна, нужно было питать от другого (отключаемого) источника. Иначе возникает сомнение, где тут ток периферии, а где ток контроллера, теоретические умозаключения? При соблюдении этих условий на F1 и F4 удавалось добиваться потребления в соответствии с документацией без танцев с бубном. В качестве LDO выбран MCP1702, который имеет Iq = 2мкА и который, в свою очередь и согласно графикам дока, растет незначительно до тех токов (~0.13mA), которые сейчас имеют место в режиме STOP. На входе LDO (в режиме STOP процессора, когда он обнаруживает пропадание 5V внешнего питания) - примерно 4V от LiPo акумулятора. Ток я меряю как раз из аккумулятора. Зарядом акку и переключением нагрузки при пропадании питания 5V занимается BQ24232 (то есть, выход BQ24232 подан на вход LDO). Как я писал в этой ветке чуть выше, я имею потребление в 25мкА, если перевожу процессор в режим STANDBY, при котором он не ест почти ничего. То есть, 100мкА из 125мкА моего режима STOP съедает явно процессор.
  14. Грабли с энергосбережением STM32F0

    Цитата(aaarrr @ Apr 29 2018, 23:55) Проверьте. Причину такого поведения не искал, т.к. тактирование АЦП от HSI использовал исключительно в порядке эксперимента. Проверил. - Ничего не меняется в STOP, тактируй я ADC от HSI (PLL/4) или своего родного HSI14. Было ожидаемо: оба HSI в STOP стоят согласно докам. Главное вырубить сам ADC, который ест 0.9mA всегда. - Ноги OSC - это PF0 и PF1. Перевел их в OUT и определил 0 на выходы. Ну да, теперь можно не заземлять OSC_IN. Этот вопрос решен. Спасибо, Сергей Борщ. - Пробовал ту же тему с PC13..PC15, которые на моем F051K8 просто отсутствуют. Никаких изменений в какую либо сторону. - Вроде нашел причину, почему две платы кушали разные токи в STOP. В схеме есть SN65HVD72. Когда укладывал систему спать, я выключал UART2, хотя, наверное, можно этого и не делать. При этом на TX почему-то появлялся потенциал ощутимо меньший логической "1" (в районе 2V вместо 3.3V). Предположительно, этот промежуточный потенциал переводил вход SN65HVD72 в состояние линейного усилителя, потребление которого разнится от экземпляра к экземпляру. Теперь я перед сном "забираю" линию TX у UART2 и программирую её как обычный GPIO c выходом логической "1". Понятное дело, -RE и DE чипа SN65HVD72 управляются от отдельных GPIO, которые устанавливаются в запреты перед сном. Разброс потребления между экземплярами ушел, оба потребляют 125мкА, 25мкА из которых съедает внешняя периферия: SN65HVD72, FM24LC04B, BQ24232, MCP1702 и некий Pull-up в 1M, если в подробности не вдаваться. Короче, 100мкА куда-то текут. Цель - 4мкА из дока - пока не достигнута.
  15. Как поимать "баг" в STM32 на скорости 72 MHz?

    Цитата(manul78 @ Apr 24 2018, 13:55) 50/50... Есть проект "маршрутизатор-переводчик" промышленный. По 485-му "мастер" разговаривает с 232-ми "слейвами". Шота мне подсказывает, а не на 5V ли эти все внешние чипы работают? F103 хоть и якобы на многих ногах 5V "терпимый", но не верю я в эти маркетинговые сказки. Если 5V по пину рубит регулярно через диоды на его 3.x вольт, могут быть самые непредсказуемые результаты.