• Функциональное тестирование печатной платы



      Технологичное проектирование


      DFM — это принципы разработки и ведения проекта, которые нацелены на успешное производство готового изделия. Следование этим принципам призвано снизить срок постановки на производство и сроки тестирования готовой продукции, с одновременным повышением качества. DFM начинается задолго до проектирования, на этапе обсуждения технического задания, зависит от величины серии и влияет на стоимость проектирования, изготовления и тестирования. О DFM писали на Хабре, например здесь. Сегодня мы поговорим про функциональное тестирование печатной платы и опишем её подготовку для этой цели. (трафик)
      Читать дальше →
    • Отладка многопоточных программ на базе FreeRTOS

      • Tutorial

      image

      Отладка многозадачных программ дело не простое, особенно если ты сталкиваешься с этим впервые. После того, как прошла радость от запуска первой задачи или первой демо программы, от бесконечно волнительного наблюдения за светодиодами, каждый из которых моргает в своей собственной задаче, наступает время, когда ты осознаешь, что довольно мало понимаешь (вообще не врубаешься) о том, что на самом деле происходит. Классика жанра: «Я выделил целых 3КБ операционной системе и запустил всего 3 задачи со стеком по 128Б, а на четвертую уже почему-то не хватает памяти» или «А сколько вообще стека я должен выделить задаче? Столько достаточно? А столько?». Многие решают данные задачи путем проб и ошибок, поэтому в этой статье я решила объединить большинство моментов, которые, в настоящее время, значительно упрощают мне жизнь и позволяют более осознанно отлаживать многопоточные программы на базе FreeRTOS.

      Данная статья рассчитана, в первую очередь, на тех, кто только недавно начал осваивать FreeRTOS, однако вполне вероятно, что и хорошо знакомые с этой операционной системой читатели найдут для себя здесь что-то интересное. Кроме того, несмотря на то, что статья ориентирована на разработчиков встраиваемого ПО, прикладным программистам она тоже будет интересна, т.к. много слов будет сказано о FreeRTOS как таковой, безотносительно микроконтроллерной романтики.

      В данной статье я расскажу о следующих моментах:


      1. Настройка OpenOCD для работы с FreeRTOS.
      2. Не забываем включать хуки.
      3. Статическое или динамическое выделение памяти?
      4. Сказ, о параметре configMINIMAL_STACK_SIZE.
      5. Мониторинг использования ресурсов.
      Читать дальше →
    • Доверяй и проверяй: подход к проверке схем и печатных плат

      • Tutorial

      image 1


      Создание электрических схем и трассировка печатных плат становятся всё более простыми делами. Производители компонентов интегрируют в изделия всё больше функционала, выкладывают готовые модели, условные графические обозначения (УГО) и целые схемы, сайты автоматически генерируют источники питания, фильтры и многое другое. Тем не менее, даже при проектировании простых печатных узлов обнаруживаются ошибки, часто — глупые и очевидные.

      Как их избежать?
    • Giza девайс [приостановлен]



        UPD: Наше сотрудничество с Giza Device LTD приостановлено.

        UPD2: Подробности истории в пересказе CNBC (англ.) www.cnbc.com/2018/03/09/cryptocurrency-scammers-of-giza-make-off-with-2-million-after-ico.html

        Если коротко — мы расторгли договор с Giza Device LTD когда не получили оплаты за первый этап работы. К этому моменту у нас накопилось немало вопросов к её основателю, Марко Файку, отвечать на которые он не торопился. Последней каплей стал отказ раскрыть конечных бенефициаров Гизы, что требовалось для получения документации на защищённые микросхемы.

        Будьте осторожны, проверяйте своих потенциальных заказчиков.

        исходный текст статьи
        Защита данных – это всегда компромисс безопасности и удобства. «Если один человек построил – другой завсегда разобрать может».

        Можно записать пароль от банковского счёта в маленький чёрный блокнотик, положить в сундук и зарыть его на лысой горе в полночь. Можно арендовать для хранения своих биткоинов подземный военный бункер в Швейцарских Альпах — относительно безопасно, но не слишком удобно для ежедневного пользования.

        Можно (и нужно) использовать шифрование и программные инструменты, но полностью доверять им не стоит: данные могут быть украдены троянской программой при помощи какого-нибудь нового хитроумного трюка с предсказанием ветвлений.
        Читать дальше →
      • Смарт-антенна для сетей LTE

          В настоящее время многие пользуются интернетом LTE. Однако, если в крупных городах уже нет проблем с покрытием сети и скоростью интернета, то в пригородах абоненты сталкиваются с проблемой слабого приема. Причиной этого является не только непосредственно слабый сигнал, но и возникновение множества переотражений сигнала по пути от базовой станции (БС) к абоненту. В данной статье описывается разработка смарт-антенны, которая адаптируется к условиям приема сигнала.
          Читать дальше →
        • Пастильда: нишевый краудфандинг


          Разрабатывать электронику для нас и профессия, и хобби, и способ самовыражения.
          Поэтому в свободное время по ночам и в выходные мы работаем над внутренними проектами, один из которых недавно стал нашим первым собственным Коммерческим Продуктом. Вот как это было:

          Читать дальше →
        • Расшифровка базы данных KeePass: пошаговое руководство

          • Tutorial

          image


          На днях мне нужно было реализовать расшифровку базы данных KeePass. Меня поразило то, что нет ни одного документа и ни одной статьи с исчерпывающей информацией об алгоритме расшифровки файлов .kdb и .kdbx с учетом всех нюансов. Это и побудило меня написать данную статью.


          На данный момент существует 2 версии KeePass:


          • KeePass 1.x (генерирует файлы .kdb);
          • KeePass 2.x (генерирует файлы .kdbx).

          Структура файла с базой данных KeePass (.kdb, .kdbx) состоит из 3 частей:


          • Подпись (не зашифрована);
          • Заголовок (не зашифрован);
          • Данные (зашифрованы).

          Далее я подробно расскажу о том, как дешифровать базу данных KeePass 1.x и KeePass 2.x.

          Читать дальше →
        • Два в одном: USB хост и составное USB устройство

            image



            Не так давно, была опубликована статья «Пастильда — открытый аппаратный менеджер паролей». Так как данный проект является открытым, то мы решили, что будет интересно, если мы будем писать небольшие заметки о процессе проектирования, о задачах, которые перед нами стоят и о трудностях, с которыми мы сталкиваемся.

            Основная суть Пастильды заключается в том, что она является своеобразным переходником между клавиатурой и ПК. Таким образом, она должна уметь:
            • быть USB хостом для клавиатуры, которая к ней подключается,
            • быть клавиатурой для ПК, чтобы либо перенаправлять сообщения от реальной клавиатуры, либо самой быть клавиатурой,
            • быть дисковым накопителем, чтобы можно было редактировать базу данных паролей в удобном для человека виде.

            Данный функционал является скелетом нашего проекта, поэтому первая заметка будет посвящена именно ему.
            Читать дальше →
          • USB mass storage device и libopencm3

              image




              Моя работа связана с программированием микроконтроллеров, в частности STM32. Долгое время для работы с периферией я использовала STM32 Standard Peripheral Library, так как она предоставляется производителем и, соответственно, является наиболее полной. Однако работать с ней крайне неудобно: инициализирующие структуры зачастую избыточны, в функциях черт ногу сломит, в общем, очень скоро появляется непреодолимое желание слезть с этой библиотеки и перейти на что-нибудь более аккуратное, грамотно спроектированное и написанное «чистым кодом».

              После долгих поисков была обнаружена open source библиотека libopencm3, которая отвечала всем требованиям. Отзывы о ней были положительные и работать с ней оказалось максимально приятно.

              Одной из последних задач на работе было поднять USB MSD. Для решения задачи использовалась отладочная плата STM32F4-discovery и вот этот пример. Пример не завелся. Проблем было две:
              1. Было невозможно зайти на диск и прочитать находящийся там файл.
              2. Распознавание устройства как дискового занимало более 2-х минут.

              Все это было связано с наличием нескольких багов в файле usb_msc.c. Таким образом, в данной статье я расскажу о том, как исправить эти ошибки и продолжать с удовольствием пользоваться библиотекой libopencm3.
              Читать дальше →
            • Тест 10 автомобильных зарядок по стандартам ISO

              Стенд для тестирования автомобильных зарядок по схеме №1

              Недавно я разработал автомобильный USB источник питания. Но статья будет совсем не о нем. В процессе разработки я ознакомился с двумя стандартами: ISO 16750-2, ISO 7637-2, которые подробно отвечают на часто задаваемый вопрос «Какое напряжение в автомобиле», а потом познакомил с ними десяток покупных USB зарядок разных производителей. Здесь (12) и там я видел статьи о разработке/доработке/запиле готовых источников для автомобилей, где авторы не задумываются о таких вещах, как защитные цепи. В моём источнике схема защиты получилась сложнее самого источника, т.к. пожар в машине — это, безусловно, неприятно. Как показали себя испытуемые и почему выжил только один — в этой статье.
              Читать дальше →

            Самое читаемое