Дальше про MLX90640
May. 20th, 2022 02:36 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Методом тыка Монте-Карло установлено, что при чтении посредством DMA какого-то количества байт из последних 128Б буфера устройства возникает нечто, приводящее к подвисанию шины I2C. При этом сброс со стороны МК ни к чему не приводит, нужно выключать питание датчика и включать снова.
Если же читать регистры поочередно, каждый раз сначала засылая команду с номером регистра, ничего такого не происходит. Видимо, придется в данном случае обойтись без DMA и увеличить время приема почти в 2 раза!
Благо, буфер за это время не меняется, т.к. я запретил автоматическое обновление RAM светоприемника: только по запросу от МК.
Продолжаю писать код…
Интересно, во сколько денег обойдется нормальный датчик, без косяков, как у этого (скажем, этот не умеет точно измерять температуры ниже нуля по Цельсию, т.е. нормальный "all-sky" на таких не построишь)?
Если же читать регистры поочередно, каждый раз сначала засылая команду с номером регистра, ничего такого не происходит. Видимо, придется в данном случае обойтись без DMA и увеличить время приема почти в 2 раза!
Благо, буфер за это время не меняется, т.к. я запретил автоматическое обновление RAM светоприемника: только по запросу от МК.
Продолжаю писать код…
Интересно, во сколько денег обойдется нормальный датчик, без косяков, как у этого (скажем, этот не умеет точно измерять температуры ниже нуля по Цельсию, т.е. нормальный "all-sky" на таких не построишь)?