I2C выпуск с MLX90640

Марк Хорби
Сб 29 сентября 2018 г. 10:32
Привет, я Марк,

У меня проблемы с чтением/сканированием устройств I2C в автобусе. Например, OLED SSD1306, который я могу написать и отображать. Но я не могу найти его в автобусе. То же самое с MLX90640. Если я подключаю устройства к доске Arduino, такой как Mega2560 или ESP8266 или ESP32, я могу сканировать подачу устройства и прочитать датчики датчика. Не на моем доске STM32. У меня есть Nucleo-F401RE и Nucleo-F446RE Testet. Нет работы.

Автобусные сигналы выглядят очень хорошо на STM32. Я проверил с применением.

У меня есть тесты с 100 кГц, 400 кГц и 1 МГц на других досках тоже работает. Итак, скорость в порядке, и я использую 4K7 и 1K в качестве подтягивания.

Startpost здесь: https: // www.STM32duino.com/viewtopic.PHP?f = 2&t = 4174

С наилучшими пожеланиями
Марк

fpistm
Сб 29 сентября 2018 12:51
Привет, Марк,
Есть исправление для i2c, которое будет доступно в следующем релизе.
https: // github.com/stm32duino/arduino_c ... 2/тяга/301

Марк Хорби
Солнце 30 сентября 2018 г. 10:41
Есть ли возможность решить эту проблему, чтобы заставить мой MLX-сенсор работать?

Проблема открыта с 2 месяца!

Есть код для MLX от Sparklfun, мне нужно работать:
https: // github.com/sparkfun/sparkfun_ml ... no_example

fpistm
Солнце 30 сентября 2018 12:15
[Марк Хорби - Солнце 30 сентября 2018 г. 10:41] - Есть ли возможность решить эту проблему, чтобы заставить мой MLX-сенсор работать?

Проблема открыта с 2 месяца!

Есть код для MLX от Sparklfun, мне нужно работать:
https: // github.com/sparkfun/sparkfun_ml ... no_example
Как я уже сказал, это исправлено и доступно в репо. Не знаю, решит ли это вашу проблему, но я думаю, это, вероятно, решает это.
Вы можете использовать репо, если вы хотите проверить, иначе вам придется подождать, я сделаю релиз.

Марк Хорби
Солнце 30 сентября 2018 12:51
[fpistm - Солнце 30 сентября 2018 12:15] - Вы можете использовать репо, если вы хотите проверить, иначе вам придется подождать, я сделаю релиз.
Спасибо!

Я установил этот репо, и мой i2c-сканер нашел сейчас мое оборудование! У меня два на автобусе (дисплей и датчик),
Но это не решает мои проблемы. Мой датчик нельзя прочитать. Может быть, мы нашли решение и можем предоставить его в предстоящем выпуске?

fpistm
Солнце 30 сентября 2018 12:59
Ваш пример предоставлен код для управления i2c.
Я думаю, может быть, в этой LIB может потребоваться какое -то обновление для поддержки arduino_arch_stm32.
https: // github.com/sparkfun/sparkfun_ml ... ивер.H#L43

Я уже видел какое -то устройство i2c, не работающее с буфером по умолчанию 32 байт.
Ядро STM32 позволяет иметь больший буфер (динамически распределяется в зависимости от запроса (по умолчанию 32).
Попробуйте обновить библиотеку.

Марк Хорби
Солнце 30 сентября 2018 13:22
[fpistm - Солнце 30 сентября 2018 г. 12:59 вечера] - Попробуйте обновить библиотеку.
Привет,

Какую ценность вы бы порекомендовали мне? 64, 128 или 256?
РЕДАКТИРОВАТЬ: Я пробовал их все!

Ничего не работает. Но в 128 выглядит так, как будто я получаю больше данных. Но данные недопустимы. Температура, которую я получаю, составляет 69 ° C.

Mrburnette
Солнце 30 сентября 2018 г., 16:25
Всем участникам форума:
Я хочу сделать заметку здесь о ожиданиях для неэстерских продуктов, таких как инфракрасная матрица MLX-90640. Такие продукты не для тех, кто не может быть независимым для управления аппаратным обеспечением & Проблемы с программным обеспечением, которые будут предприниматься с усилиями, необходимыми для получения аппаратного обеспечения для работы. ИМХО, нереально предположить, что пример, не поддерживаемая библиотека, разработанная вокруг Teensy, будет портить в STM32 без серьезной работы от покупателя оборудования.

Луча

1.) Не полностью поддерживается продавцом... Sparkfun состояния; Экспериментальный продукт: продукты Sparkx быстро производятся, чтобы принести вам наиболее передовую технологию, поскольку она становится доступной. Эти продукты проверены, но не имеют никаких гарантий. Живая техническая поддержка не доступна для продуктов Sparkx. Зайдите на наш форум за поддержку или задать вопрос. 2.) Отклонение от рекомендаций продавца; MLX90640 требует сложных расчетов по платформе хоста. У обычного ООН не хватает ОЗУ или Флэш для завершения сложных вычислений, необходимых для превращения необработанных данных пикселей в данные о температуре. Вам понадобится микроконтроллер с 20 000 байтов или более оперативной памяти. Мы рекомендуем Teensy 3.1 или выше. 3.) Основной шум в обратной связи пользователей; Один из многих отчетов... Член № 1419220 / около 2 месяцев назад /
MLX90640 I2C может читать только EEPROM в <400K, в противном случае вы получаете ошибки или сумасшедшие значения и извлечение параметров. Также необходимо питание 80+ мс, прежде чем вы сможете прочитать его.

MLX90640 нуждается в 1 м на I2C, чтобы прочитать устройство при 32i Гц (режим интерласа шахмат), и, вероятно, требуется режим интерласа телевизора и улучшенный код чтения для запуска в 64i Гц. В противном случае он жалуется на количество ошибок.

Мелексис должен отметить, что если они прочитают это, что их считывание из памяти в режиме доски шахматисты является идиотским, так как он тратит половину полосы пропускания I2C, что делает режим 64i HZ практически невозможным для достижения достижения достижения.

Следует отметить, что небольшие микро -микросы не могут обрабатывать расчеты температуры с плавающей температурой при работе при каких -либо кадров, и они не могут передавать данные обратно по 232 рупий, работая при любой разумной кадре. Мой ESP8266, работающий на 160 МГц, занимает 30 мс для чтения межполосной половины обработки на 1 м на I2C и требует 60 мс для обработки кадра, поэтому он не может работать при кадре выше 1000/90 => 8i Гц.

В конце концов я написал код для отправки коротких данных по UDP, и делал временные расчеты на ПК, что позволило мне получить 32i Гц, хотя тогда я обнаружил, что ESP8266 вводил огромные количества шума в изображение.

Я считаю, что MLX90640 довольно чувствителен к низкому напряжению, я видел, как он, по-видимому, зацепил и требует полного питания для восстановления (выключен в течение нескольких секунд).

В конце концов, я сдался и использовал RPI, чтобы прочитать его, и в этом случае он работал намного лучше (хотя с скоростью I2C все еще есть проблемы).

Марк Хорби
Солнце 30 сентября 2018 г. 18:55
Привет, Рэй, и спасибо за эту информацию!

Я был на 55 ° Fov-Sensorsite, чтобы я не читал комментарий пользователей для MLX 110 ° FOV.

Моя проблема в том, что мой датчик не работает только на STM32!
Он работает на ESP8266. Я также получил картинку, как на сайте Sparkfun.
Я прочитал это с 8 Гц.

BU, моему Projekt нужно больше булавок, которые ESP имеют! Вот почему я хотел бы заставить его работать на STM32

Mrburnette
Солнце 30 сентября 2018 г., 19:38
[Марк Хорби - Солнце 30 сентября 2018 г. 18:55] - ...
Моя проблема в том, что мой датчик не работает только на STM32!
Он работает на ESP8266. Я также получил картинку, как на сайте Sparkfun.
Я прочитал это с 8 Гц.

BU, моему Projekt нужно больше булавок, которые ESP имеют! Вот почему я хотел бы заставить его работать на STM32
Вы считали ESP32?
Изображение

Теперь я не намерен попытаться изменить свой выбор UC, просто интересно, если вы посмотрели на ESP32, потому что вы пробовали ESP8266?

Луча

Марк Хорби
Ср. 03 октября 2018 г., 15:34
Привет, Mrburnette,

Моя цель - построить небольшой дисплей с OV5640 и нанесите на себя тепловую часть MLX на дисплей.
ESP32 имеет только 160 МГц, и нет информации о FPU. У STM есть FPU. Таким образом, расчет датчиков датчика должен быть быстрее.
Причина использования Arduino заключалась в том, что я могу без проблем переключиться с своего AVR на ESP8266. Некоторые детали с ESP32 также работают.
STM32-тест с дисплеем (3,2 "и 3,5" Куман) также был очень впечатляющим. Но я не могу изменить библиотеку, которая использует I2C, потому что я не понимаю, как ее работа. И я не знаю, почему я должен позволить этому быть. Если я не могу использовать Arduino, потому что либера. Но я хочу использовать Aruino Ide.
Я надеялся, что смогу исправить либеру с помощью с помощью, но у меня есть чувство, что я был наказан. У меня все еще нет решения, чтобы заставить i2c-lib на работу, но у меня такое чувство, что у меня есть то, что я заработал. Но я не делаю ничего плохого, Чой (я надеюсь, что не считается выбором STM32Duino...)

[Mrburnette - Солнце 30 сентября 2018 г., 19:38] -
Вы считали ESP32?
Изображение

Теперь я не намерен попытаться изменить свой выбор UC, просто интересно, если вы посмотрели на ESP32, потому что вы пробовали ESP8266?

Луча

Mrburnette
Ср. 03 октября 2018 г. 22:44
Не по теме, продолжение моего последнего запроса...

Марк,

DataShing DataShing ESP32 (60pps) & Техническая ссылка (большая): https: // www.эспресс.com/en/products/h ... 2/Обзор

ESP32 Performance: https: // блог.Классейкод.com/esp32-float ... 9F6F567A69
Обсуждение FPU: https: // www.ESP32.com/viewtopic.PHP?f = 14&t = 800
СПОЙЛЕР: ESP32 при Arduino использует Freertos, который управляет FPU в «Lazy Mode», существует значительная производительность на первом использовании FPU.
Spoiler2: STM32 поражает ESP на FPU... но Это SOC, и нужно смотреть на них как на система.

Луча