Найти тему

Лотерея с STM32F103C8T6 (BluePill). Часть 4

Проект одного вечера - bp_Benchmarks

Покрутив платки в руках, захотелось сравнить их производительность. И, если ядро будет предсказуемо, то вот ПЗУ, ОЗУ могут сильно отличаться по задержкам при обращении и в принципе по скорости работы.

В предыдущей части был достигнут положительный результат не только с загрузкой скомпилированного кода, но и с отладкой. Пора писать код!

Недолго думая, за вечер после работы, был набросан проект bp_Benchmarks. В него входят 6 тестов:

  1. ROM. Пока только чтение из ПЗУ в ОЗУ.
  2. RAM. Чтение, запись, простая целочисленная математика в ОЗУ.
  3. ALU. Использование математических функций и вычислений с плавающей точкой.
  4. ADC speed. Замер скорости чтения АЦП.
  5. ADC jitter. Замер шума на АЦП.
  6. GPIO speed. Скорость переключения режима и состояния.

Условия тестирования:

  • Тестирование проходит в несколько проходов
  • Время выполнения теста измеряется с помощью встроенного в STM32 модуля DWT (Data Watchpoint and Trace unit) и измеряется в тактах процессора
  • Вывод результатов через UART между тестами
  • Оптимизация кода включена
  • Питание платы происходит через ST-Link v2
  • Прошивка выполнялась из PlatformIO
  • Код тестирования для всех плат одинаковый

Результаты

В таблице результаты по общему результату для каждой платы. Сравнение времени выполнения производилось относительно чипа Orig.

Результаты тестов
Результаты тестов

А вот тест номер 5 получился неинформативным. Видимо входное сопротивление АЦП настолько велико, что проводимости текстолита и не отмытого флюса, а также паразитной емкости было достаточно, чтобы исключить колебания значения. Либо наоборот - паразитные емкости внутри кристалла и его входное сопротивление были слишком велики и малы соответственно.

В общем считаю, что для этого теста необходимо подключать ИОН к STM32 и по выдаваемому значению, колебаниям судить сразу и о точности, и о шуме модуля.

Результаты ADC jitter.
Результаты ADC jitter.

Дополнение: попробовал подключить ИОН и повторить тесты, результаты в посте-дополнении.

Остальные модули STM32 не проверялись, потому что вечер закончился, уже время было сна. Но если у вас к проекту есть интерес, то можно его продолжить с расширением количества тестов и повышением их качества.

Файлы с подробным выводом тестов для плат: WHITE, RED, Orig.

Выводы

А выводы достаточно неоднозначные. По ПЗУ клоны оказались далеко впереди, а по другим параметрам очень-очень близко или сильно лучше. В любом случае только один клон и только по одному параметру (и то незначительно) проиграл условному оригиналу. А по остальным был, кстати говоря, самым близким.

Найти проект можно в моем профиле на GitHub: bp_Benchmarks.

Спасибо, что дочитали до конца цикл статей о клонах STM32F103! Жду вашего мнения в комментариях.
Также мне будет очень интересно узнать о вашем опыте работы с клонами STM32.
Жду ваших комментариев)

—————————————————————————

Спасибо, что дочитали статью!

Подпишитесь пожалуйста на мой канал "Заметки Электроника | Alexander.Chad", этим Вы очень сильно поможете мне. Канал существует только за счет наличия и участия подписчиков.

Если Вам понравился материал - поддержите его лайком или даже донатом (ЮMoney). Есть что сказать? Оставьте комментарий! Это тоже будет помощью.

Сейчас канал нуждается в Вас как никогда прежде!