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

    

esaulenka

Свой
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Профессионал
  • День рождения 25.01.1983

Информация

  • Город
    Маськва

Посетители профиля

6 521 просмотр профиля
  1. Не я это первый начал :-) Изделия, которые активно потребляют от бытовых или около-бытовых батареек/аккумуляторов, на рынке есть. Начиная от фотовспышек и заканчивая шуруповёртами. Я и сам когда-то делал термопринтер, который запитывался от 6 последовательных NiMH. Сколько тока там потреблялось, я уже забыл, но напряжение просаживалось процентов на 30 (пришлось городить даже динамическое задание скорости печати в зависимости от просадки в данный конкретный момент, чтоб оно хоть как-то работало). И вообще, батарейка - расходник. Мы ж о пользователе заботимся, чтоб ему и в эфир помощнее передавало, и лампочками поярче мигало, а то, что батарейка разрядится чуть быстрее - ну и чёрт с ним. Тем более, с точки зрения расхода батарейки куда интереснее оптимизировать ждущий режим, в котором устройство будет проводить бОльшую часть времени. Стыдно сознаться, но я неграмотный. В букваре ВАХ диода начинается от нуля. В характеристиках в даташите нулевой точки нет, а при токах в миллиампер падение уже порядка 0.6 вольта и есть. Что там в реальной жизни творится в районе нуля, толком не задумывался. Хотя... вот на BAT54 есть график в более-менее нужном масштабе. Ну да, при единицах-десятках мА падение не очень большое. В случае паразитного диода MOSFET'а лучше, видимо, смотреть на графики BAS16, там будет несколько хуже... В общем, спасибо за советы, завтра надо будет поэкспериментировать, благо основа есть, надо только транзистор добавить. Спасибо за советы. Если уж ставить литий, то плоский. Дизайнер и начальники, которые утверждают этот дизайн, будут в восторге. Останавливает только вопрос, что делать пользователю года через 2-3-4. Аккумулятор этот с ненулевой вероятностью банально снимут с производства... В остальном, для нашего применения - сплошные плюсы.
  2. Да у меня больше вопросов, как оно будет стартовать. Step-up'у нужно 0.7 вольта, на диоде 0.6 - и вот уже никакого запаса для щелочной батарейки, не говоря уж о NiMH... Внешний шоттки даёт небольшой шанс, что оно будет стартовать с аккумулятором...
  3. Да, пока основная идея - отдать эту проблему конструктору. Но хочется иметь "план Б" :-)
  4. Здравствуйте. Делаем устройство, работающее от одной AA батарейки / аккумулятора. Основные блоки - батарейка, step-up до 3 вольт, контроллер, всякие "свистелки". Потребление от батарейки при работе "свистелок" - до полуампера. Собственно, вопрос: как бы тут организовать защиту от переполюсовки? Стандартное решение - мосфет, но он от 1 вольта не откроется. Диод встречно-параллельно батарейке - как-то бестолково (куда энергию-то девать?..) Вроде б можно поставить мосфет "вниз", между землёй схемы и минусом батарейки, а затвор подцепить к выходу step-up'а. Параллельно встроенному поставить какой-то более приличный диод (я правильно понимаю, что там у всех падение 0.6 вольта?), чтобы оно хоть как-то стартовало. Сложно как-то...
  5. Программирования LPC1788

    "Программатор" на ардуине - никакой не программатор, а обыкновенный преобразователь UART<>Serial. Т.е. именно то, что вам надо. Убираем собственно ардуину, чтобы не мешалась (самый простой способ - на разъеме ICSP замкнуть reset на землю), соединяем RX LPC'шки c ногой TX ардуины, TX LPC'шки c ногой RX ардуины, не забываем про ногу BOOT, и всё! Включаем, запускаем FlashMagic...
  6. Периодически приходится искать информацию по разным форумам. Зарегистрироваться, поставить галку "согласен на всё", подтвердить почту и через полчаса обнаружить, что единственная картинка, которая была мне нужна - ну вообще не в тему, надо смотреть какой-то другой форум. Нинавижу. Этот вопрос можно и нужно обсудить отдельно.
  7. Инициализация и работа с USART1

    TXE таким образом испортить не получится :-)
  8. УГО на схемах

    Да уж куда им... Оригинал картинки легко можно найти здесь: http://www.ti.com/lit/ds/slus564c/slus564c.pdf
  9. Инициализация и работа с USART1

    Советы: - указывать название чипа. То, что это STM32L1xx, местные ясновидящие уже в курсе, но хотелось бы видеть это явно. - указывать содержимое регистров. Благо у усарта их 3 штуки для управления, 1 для прескалера и 1 статусный. - у SPL (как, впрочем, и у HAL) есть неприятная особенность. В языке си простое объявление структуры не гарантирует того, что поля её будут осмысленно инициализированы (более того, гарантирует, что это НЕ произойдёт, и там будет мусор). И если пользователь а) не заполнил вручную все поля и б) отключил отладочный макрос assert_param(), эта фигня обязательно стрельнет.
  10. Из простого вопроса "как бы мне написать загрузчик" родились DAP-контроллеры с тридцатью пятью запасными экземплярами эталонной прошивки и аппаратным рубильником. Наркомания какая-то, извините.
  11. Хочу порекламировать не это описание (к сожалению, автор дальше адвертайза не расписал, а там самое интересное начинается), а книжку Getting started with Bluetooth Low Energy. Townsend, Cufi, Akiba, Davidson.
  12. OS::get_tick_count()

    Ещё TEventFlag можно в паре мест пооптимизировать. Но там проще - флажок да/нет атомарный везде.
  13. OS::get_tick_count()

    Из потенциальных кандидатов нашёл только TMutex::is_locked(). Но настойчивого зуда её оптимизировать у меня нет.
  14. OS::get_tick_count()

    Нету. Точнее, есть, но не работает, как хочется. Передать в конструктор экземпляр переменной, чтобы он сам догадался, какой у неё тип, можно только в C++17 (вчера узнал новое слово). А объявлять критическую секцию не для переменной, а для класса этой переменной (или decltype писать) мне не понравилось. Это я делал, чтобы случайно не зацепить какой-то класс с небольшим количеством переменных. Но можно понадеяться на сознательность программиста, тем более это решение и так имеет много ограничений. Тут самая главная проблема, что эта "критическая" секция ограничивается только чтением и записью. В остальных случаях атомарность НЕ гарантируется. Пожалуй лучше даже назвать в духе CritSectionReadWrite. Тут я согласен с Сергеем, что изначальная идея касалась только счётчика времени, но может свободно распространиться и на остальные переменные ядра. А тут-то всё и ломается - во-первых, их больше одной, а во-вторых, начинают массово плодиться вложенные крит.секции. Можно сделать, чтобы оно и так работало, но от изначальной идеи - "проще и быстрее" ничего не останется...
  15. OS::get_tick_count()

    Попробовал. Своих умений не хватило, к сожалению. Спасибо добрым людям из телеграмма pro.cxx Получилось некоторое нагромождение шаблонов: https://godbolt.org/z/yJiCQS Слушаю предложения и замечания (а заодно и тесты на не-gcc. У меня под рукой только древний кейл).