Логический анализатор

В этой статье пойдет речь о логическом анализаторе - незаменимом инструменте для реверс-инжиниринга, да и вообще полезном в хозяйстве приборе. Для тех кто ни разу с подобным прибором не сталкивался скажу, что логический анализатор это что-то типа осциллографа, но у него много каналов и он может различать только два состояния сигнала: логический ноль и единицу. Используется оно в основном чтоб присосаться к какой-нибудь шине данных и считывать с неё то,  что по ней передается, в компьютер. Ну а на компьютере работает специальный софт который эти данные отображает в дружественном для пользователя виде. Если бы программа просто показывала нам набор единиц и нулей растянутых во времени, то толку от этого было бы мало ибо анализ таких данных очень сложен и может взорвать моск даже опытному инженеру.  Поэтому, все нормальные программы умеют декодировать протоколы типа 1-Wire, i2c, SPI, UART и так далее. Собранный мной анализатор поддерживает две популярные программы Saleae Logic и USBee Suite
 
logic analyzer
 

STM Studio

Недавно открыл для себя новый программный инструмент от компании ST под названием STM STUDIO. Программа предназначена для визуализации значения какой либо переменной без остановки выполнения программы. К примеру в вашей программе есть какая-то переменная изменяющая своё значение с течением времени, и выхотите графически это отобразить. Конечно можно сделать так, чтоб контроллер выдавал вам эту переменную через UART, а со стороны компьютера принимать эти данные и строить график самописным софтом. Но на разработку всего этого  требуется время, проще использовать готовое решение от ST. Всё что нам нужно знать - это адрес переменной значение которой мы хотим наблюдать. Соглашусь, что возня с адресами это не очень то удобно, и у  нас есть отличный способ обойтись без этого. Каждый раз при компиляции создается elf файл откуда можно узнать адреса всех переменных используемых в программе. STM Studio умеет читать такие файлы. На рисунке ниже изображен график который был построен на основе переменной хранящей значение прочитанное из АЦП. Я быстро крутил резистор в результате чего получилась кривая синусоида:
 
stm studio
 

Минимальный набор инструментов

Где-то прочитал что инструмент которым пользуется электронщик - это продолжение его собственных рук, в принципе справедливо сказано. В этой небольшой статье я попытаюсь рассказать какие инструменты должны быть у каждого кто хочет взяться за изучение контроллеров STM32 (да и электроники вообще). Для начала на первых порах нам понадобится мультиметр: Комбинированный прибор позволяющий измерять всё что душе угодно. Как минимум он должен измерять напряжение, сопротивление и силу тока, а остальное пока опционально. У меня например мультиметр такой: 

multimeter_digital