Тема: Подключение датчика к АЦП Canny 5 Nano
Доброго дня!
Правильна ли такая схема подключения питания и датчика? Надо ли каким-то образом конфигурировать канал контроллера №25, который питает датчик?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
CANNY forum → Программируемые контроллеры CANNY 5.x (5, 5.2, nano, duo, MD1(A), pico, MDX) → Подключение датчика к АЦП Canny 5 Nano
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Доброго дня!
Правильна ли такая схема подключения питания и датчика? Надо ли каким-то образом конфигурировать канал контроллера №25, который питает датчик?
По схеме, в общем, все правильно.
По использованию канала контроллера в режиме АЦП. Речь, видимо, идет о канале №17. Необходимо записать в соответствующий регистр значение 1 - подключить канал к драйверу АЦП. Подробнее - Wiki.
Спасибо, Денис! Разумеется в регистр 17 канала занесено значение. Пользуясь случаем хотелось бы спросить еще и по подключению термопары к контроллеру. Имеется термопара К-типа с двумя выводами, напряжение меняется в зависимости от температуры где-то в пределах 6-40 мВ. Способен ли контроллер измерить такое напряжение и к каким каналам в этом случае необходимо подключать термопару?
Эта задача не подходит для АЦП контроллера CANNY 5 nano. Для работы с термопарами следует использовать специальные микросхемы, например MAX31855, которую можно подключить к CANNY 5 nano реализовав в диаграмме программный SPI, либо использовать операционные усилители.
С термопарами не все так просто. Микросхема MAX31855 имеет встроенную коррекцию значений температуры, есть модели для работы с конкретными типами термопар, учитывающих их особенности. В случае с операционными усилителями коррекцию температуры нужно будет реализовывать самостоятельно.
Чтож, понятно... ПодскАжите, как реализовать связку микросхемы MAX31855 с контроллером и реализовать считывание данных? Я смотрю, что питание микросхемы 3.3 вольта...
CANNY 5 nano имеет выход 3,3В, от которого можно запитать микросхему (см. фото во вложении).
Спасибо за схему, буду собирать! Что в этом случае будет "видеть" контроллер и как приблизительно составить диаграмму? Я собираюсь считывая данные передавать их потом в кан-шину для отображения на экране приборной панели авто, в части организации работы кан-шины вопросов нет, но каковы будут входные данные?
Представление данных о температуре расписано в инструкции на микросхему.
Диаграмма для сопряжения термодатчика (термопары) и CANNY5 nano через преобразователь MAX31855 (https://cdn-shop.adafruit.com/datasheets/MAX31855.pdf) с помощью программного низкоскоростного SPI во вложении.
"data1H" - температура на термопаре, "data1L" - температура MAX31855 (сырые данные, полученные от микросхемы).
Дополнительно потребуется обработать данные: выделить знак температуры, целую и дробную ее части.
Отлично! Буду пробовать и напишу о результате
Представление данных о температуре расписано в инструкции на микросхему.
Диаграмма для сопряжения термодатчика (термопары) и CANNY5 nano через преобразователь MAX31855 (https://cdn-shop.adafruit.com/datasheets/MAX31855.pdf) с помощью программного низкоскоростного SPI во вложении.
"data1H" - температура на термопаре, "data1L" - температура MAX31855 (сырые данные, полученные от микросхемы).
Дополнительно потребуется обработать данные: выделить знак температуры, целую и дробную ее части.
Доброго вечера!
По первой части темы все реализовал, датчик считывается, данные конвертируются и отправляются в CAN для вывода на приборку.
Дошли руки до термопары... Схему спаял, разбираюсь в диаграмме и описании MAX31855. Правильно ли я понимаю, что на выходах data1H и data1L будут данные по 16 бит? И соответственно data1H содержит биты D31:D16, в которых D31 отвечает за знак температуры, D16:D17 это reserved/fault, а блок D30:D18 сама температура пары?
...а блок D30:D18 сама температура пары?...
Да, в этих битах содержится само значение (по модулю, знак содержится в D31) температуры с сотыми градуса с точностью до 0.25 градуса. В D30...D20 - целая часть; в D19...D18 - дробная.
Отрицательные значения представлены в дополнительном коде.
EVK пишет:...а блок D30:D18 сама температура пары?...
Да, в этих битах содержится само значение (по модулю, знак содержится в D31) температуры с сотыми градуса с точностью до 0.25 градуса. В D30...D20 - целая часть; в D19...D18 - дробная.
Отрицательные значения представлены в дополнительном коде.
Денис, в целом понятно. Добавил ваш блок в свою диаграмму, где я транслирую различные данные на приборную панель, но температура не отображается. Написал блок эмулятора, для проверки своей части диаграммы и тут порядок, отображение есть. Посмотрите пожалуйста в чем может быть проблема? Может я неправильно представляю какие именно пакеты данных должны идти от микросхемы? Зачем в вашей диаграмме регистр передачи UART1?
ps Не удается прикрепить сразу два файла, картинка пойдет следующим сообщением
В продолжение предыдущего сообщения. Отображение данных симулятора на приборке в картинках. В случае когда беру данные от микросхемы по data1H, то на приборной панели просто "0000"
... Зачем в вашей диаграмме регистр передачи UART1?
При разработке алгоритма работы с MAX31855 UART использовался для теста диаграммы - в него отправлялись значения температуры, полученные с MAX31855. При выкладывании диаграммы в эту тему не заметил данный регистр и забыл убрать.
... Не удается прикрепить сразу два файла...
Должно нормально прикрепляться. Главное, не забывать нажать кнопку "Добавить файл".
...когда беру данные от микросхемы по data1H, то на приборной панели просто "0000"...
Очевидно, что там действительно нули. Выполняется ли контроль получения данных от MAX31855? Можно вывести на какой-либо свободный канал контроллера значение именованной сети "dataReady" (с задержкой выключения) и смотреть, приходят ли данные. Или, как я писал выше, выводить данные в UART.
Во вложении диаграмма с альтернативным вариантом обработки пакетов для отправки в CAN (блок №1).
Во вложении диаграмма с альтернативным вариантом обработки пакетов для отправки в CAN (блок №1).
Спасибо за подсказку, полезно! Не обращал внимание на эту функцию или ее не было в ранних версиях cannylab...
Очевидно, что там действительно нули
Вот здесь я не понял, почему очевидно? Что не так в диаграмме? Я могу в принципе считать данные "dataReady" и также отправить их на приборную панель для контроля, там как я понял будет либо "0" либо "1"
update: Данные по "dataReady" проверил - меняются
... почему очевидно? Что не так в диаграмме?
В диаграмме все нормально, она проверена и работает корректно. Возможно проблема в подключении. "dataReady" показывает что произошло считывание 32 бит, но не показывает что были получены какие-либо данные. То что считалось, то и отображается в сетях "data1H" и "data1L".
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
CANNY forum → Программируемые контроллеры CANNY 5.x (5, 5.2, nano, duo, MD1(A), pico, MDX) → Подключение датчика к АЦП Canny 5 Nano