В этой статье пойдет речь о логическом анализаторе — незаменимом инструменте для реверс-инжиниринга, да и вообще полезном в хозяйстве приборе. Для тех кто ни разу с подобным прибором не сталкивался скажу, что логический анализатор это что-то типа осциллографа, но у него много каналов и он может различать только два состояния сигнала: логический ноль и единицу. Используется оно в основном чтоб присосаться к какой-нибудь шине данных и считывать с неё то, что по ней передается, в компьютер. Ну а на компьютере работает специальный софт который эти данные отображает в дружественном для пользователя виде. Если бы программа просто показывала нам набор единиц и нулей растянутых во времени, то толку от этого было бы мало ибо анализ таких данных очень сложен и может взорвать моск даже опытному инженеру. Поэтому, все нормальные программы умеют декодировать протоколы типа 1-Wire, i2c, SPI, UART и так далее. Собранный мной анализатор поддерживает две популярные программы Saleae Logic и USBee Suite.
STM Studio
Недавно открыл для себя новый программный инструмент от компании ST под названием STM STUDIO. Программа предназначена для визуализации значения какой либо переменной без остановки выполнения программы. К примеру в вашей программе есть какая-то переменная изменяющая своё значение с течением времени, и выхотите графически это отобразить. Конечно можно сделать так, чтоб контроллер выдавал вам эту переменную через UART, а со стороны компьютера принимать эти данные и строить график самописным софтом. Но на разработку всего этого требуется время, проще использовать готовое решение от ST. Всё что нам нужно знать — это адрес переменной значение которой мы хотим наблюдать. Соглашусь, что возня с адресами это не очень то удобно, и у нас есть отличный способ обойтись без этого. Каждый раз при компиляции создается elf файл откуда можно узнать адреса всех переменных используемых в программе. STM Studio умеет читать такие файлы. На рисунке ниже изображен график который был построен на основе переменной хранящей значение прочитанное из АЦП. Я быстро крутил резистор в результате чего получилась кривая синусоида:
Минимальный набор инструментов
Где-то прочитал что инструмент которым пользуется электронщик — это продолжение его собственных рук, в принципе справедливо сказано. В этой небольшой статье я попытаюсь рассказать какие инструменты должны быть у каждого кто хочет взяться за изучение контроллеров STM32 (да и электроники вообще). Для начала на первых порах нам понадобится мультиметр: Комбинированный прибор позволяющий измерять всё что душе угодно. Как минимум он должен измерять напряжение, сопротивление и силу тока, а остальное пока опционально. У меня например мультиметр такой: