карамболь 0 14 августа, 2020 Опубликовано 14 августа, 2020 · Жалоба Здравствуйте. Запустил в Vivado монитор, он показывает температуру на PL минус 60 градусов. Проверил через awk '{ printf "%.1f\n", ((($1 * 509.314)/65536.0)-280.23) }' < /sys/bus/iio/devices/iio:device0/in_temp2_pl_temp_rawДа, все верно, отрицательная температура вычисляется по формуле. Это баг или фича ? Температура PS отображается нормально Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 14 августа, 2020 Опубликовано 14 августа, 2020 · Жалоба 2 часа назад, карамболь сказал: Здравствуйте. Запустил в Vivado монитор, он показывает температуру на PL минус 60 градусов. Проверил через awk '{ printf "%.1f\n", ((($1 * 509.314)/65536.0)-280.23) }' < /sys/bus/iio/devices/iio:device0/in_temp2_pl_temp_rawДа, все верно, отрицательная температура вычисляется по формуле. Это баг или фича ? Температура PS отображается нормально а что у вас прилетает оттуда in_temp2_pl_temp_raw? судя по докам, там есть есть разница в битности для internal|external reference, у вас обсчет в 16 битах, пропишите вместо 65536 число 1024 т.е. 2^10 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
карамболь 0 14 августа, 2020 Опубликовано 14 августа, 2020 · Жалоба 13 minutes ago, Jury093 said: а что у вас прилетает оттуда in_temp2_pl_temp_raw? 0x00006E76 пробовал, как в даташите, брал старшие 10 разрядов, считал по формуле, получается отрицательная температура. Да и в самом Вивадо тоже отрицательная для PL. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 14 августа, 2020 Опубликовано 14 августа, 2020 · Жалоба 1 час назад, карамболь сказал: 0x00006E76 пробовал, как в даташите, брал старшие 10 разрядов, считал по формуле, получается отрицательная температура. Да и в самом Вивадо тоже отрицательная для PL. там рядом есть offset и scale, пробовали их использовать? https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842163/Zynq+UltraScale+MPSoC+AMS если это не брак чипа, то как вариант, что в этом семействе не используется этот канал сенсора и в sysfs мусор, т.е. данные канала не валидны.. вот там еще такая же формула как у вас и рядом альтернатива с offset https://forums.xilinx.com/t5/Embedded-Linux/zynqmpsoc-ultrascale-sysfs-onchip-temperature-sensor-PL-PS-and/td-p/813732 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
карамболь 0 14 августа, 2020 Опубликовано 14 августа, 2020 · Жалоба 1 hour ago, Jury093 said: там рядом есть offset и scale, пробовали их использовать? https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842163/Zynq+UltraScale+MPSoC+AMS если это не брак чипа, то как вариант, что в этом семействе не используется этот канал сенсора и в sysfs мусор, т.е. данные канала не валидны.. вот там еще такая же формула как у вас и рядом альтернатива с offset https://forums.xilinx.com/t5/Embedded-Linux/zynqmpsoc-ultrascale-sysfs-onchip-temperature-sensor-PL-PS-and/td-p/813732 на мусор не похоже, отключаю питание вентилятора и температура начинает расти. Завтра попробую с другой формулой Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться