https://github.com/eddyem/stm32samples/tree/master/F3%3AF303/MLX90640multi
Правда, я надеялся, что 8 датчиков "влезет" в STM32F303CBT6, ан нет: 40кБ ОЗУ хватит лишь на семь (плюс всякие транспортные и промежуточные буферы и т.п.).
На скорости 400кГц (не говоря уж об 1МГц) спокойно пять картинок при частоте обновления каждого датчика в 1Гц отоваривает за одну секунду. Пересчет идет лишь по запросу изображения. Т.к. я сэкономил на буфере предвычесленных параметров (он занимает аж 10100Б супротив 1668Б "сырых" данных), вместо 8-8.5мс одно изображение обсчитывается 13-14мс.
Как ни странно, датчики, висящие "на соплях", работают даже на 2МГц - "разогнал" I2C… Правда, там такая дичь с этими таймингами в регистрах, что каждую конкретную скорость приходится настраивать, смотря на картинку в осциллографе. И "ровных" значений вообще не получается, понятное дело (ведь частота тактирования I2C - 72МГц, а помимо установленных параметров еще есть "плавающие" времена переходных процессов).
Поигрался с изменением частоты опроса. Толку особого от дефолта уходить нет: и на бóльших, и на меньших частотах сильней шумит. И разрядность внутреннего АЦП нет смысла менять. "19 бит" - похоже, искусственно вычисляется, а меньшая битность дает сильней шумы.
Посмотрел выхлоп с пяти датчиков: один вообще непригоден (адово шумит и от кадра к кадру выдает разные данные, лишь немного напоминающие то, что должно быть), у остальных в общем температуры не совпадают. Ну, ничего - можно откалибровать, наверное. Да и облака хорошо с небом контрастируют, даже без калибровки должно быть видно.