Библиотека АЦП MCP33121

Я ищу библиотеку АЦП MCP33121 для Arduino UNO или функциональный код, у меня недостаточно инструментов для тестирования, поэтому я хотел бы получить уже протестированный код. Я ценю любую помощь. Спасибо... Джош

, 👍0

Обсуждение

Похоже, для этого конкретного чипа нет такой библиотеки. По крайней мере, я ничего не нашел, когда искал его в гугле. Возможно, вам придется написать код самостоятельно., @chrisl


1 ответ


2

На самом деле вам не нужна библиотека для этого чипа. Вы просто делаете пару передач SPI с низким выводом CS.

Например:

digitalWrite(pinCS, LOW);
uint8_t msb = SPI.transfer(0xFF);
uint8_t lsb = SPI.transfer(0xFF);
digitalWrite(pinCS, HIGH);

uint16_t val = (((uint16_t)msb << 8) | lsb);
val = val >> 2; // Для 14-битных устройств сдвиньте его дважды. Для 12 бит сделайте это 4 раза.
,

Спасибо за ваш ответ, я проверял таблицу данных и смотрел на код, который вы предоставляете, digitalWrite (pinCS, LOW)... до тех пор, пока digitalWrite (pinCS, HIGH), он пренебрегает аспектом времени. Я имею в виду, что таблица данных обеспечивает некоторое время для сбора и преобразования данных, так что должен ли я беспокоиться об этом времени?, @joshua andres blanco jerez

T_CNV - это в худшем случае 1300ns. Это всего лишь 20 тактовых циклов на Arduino 16 МГц. К тому времени, когда вы снова приступите к отбору проб, это время уже пройдет. T_EN - это всего лишь 10ns. Это шестая часть длины одного такта. Вы должны были бы делать что-то действительно странное с вашим Arduino, чтобы даже отдаленно приблизиться к необходимости даже думать о возможности того, что время является проблемой., @Majenko

Спасибо, что поделились., @joshua andres blanco jerez