HX711 это точный 24-разрядный АЦП (ADC), основанный на патентованной технологии Avia Semiconductor. Он разработан для непосредственного считывания напряжения с моста тензодатчиков весов (таких как DYLY-102 компании Daysensor [2]) и других промышленных приложений.
Входной мультиплексор выбирает дифференциальный вход канала A или B для малошумящего усилителя с программируемым коэффициентом усиления (programmable gain amplifier, PGA). Канал A можно запрограммировать на усиление 128 или 64, что соответствует полному диапазону (full-scale) дифференциального входного напряжения ±20mV или ±40mV соответственно, когда питание 5V подключено к выводу аналогового питания AVDD. У канала B фиксированное усиление 32. Встроенный регулятор питания устраняет необходимость во внешнем регуляторе, чтобы запитывать ADC и подключаемый к нему сенсор. Предусмотрено гибкое тактирование. Это может быть либо внешний источник тактового сигнала, либо кварцевый резонатор, либо может использоваться встроенный в чип внутренний RC-генератор, в последнем случае никаких внешних компонентов не требуется. Встроенная система сброса по включению питания (power-on-reset) упрощает инициализацию цифрового интерфейса.
Не требуется программирование никаких внутренних регистров. Все управление HX711 осуществляется через его выводы.
Основные функциональные особенности HX711:
• Два входных дифференциальных канала, которые можно выбирать. • Встроенный малошумящий PGA, у которого можно выбрать усиление 32, 64 и 128. • Встроенный регулятор питания для питания датчика и питания аналоговой схемы ADC. • Встроенный тактовый генератор, для работы которого не требуется никаких внешних компонентов, или может использоваться внешний кварц. • Встроенная схема сброса по питанию (power-on-reset). • Простое цифровое управление и последовательный интерфейс: управление осуществляется через выводы, программирование внутреннего состояния HX711 не требуется. • Выбираемая частота выходных данных 10SPS или 80SPS. • Одновременное подавление помех 50 и 60 Гц. • Потребление тока, включающее встроенный аналоговый регулятор питания: нормальное функционирование < 1.5 mA, power down < 1 uA. • Диапазон напряжений питания: 2.6 ~ 5.5V. • Диапазон рабочих температур: -40 ~ +85℃. • Корпус SOP-16, 16 выводов.

Рис. 1. Типовая схема подключения к измерительному мосту (тензодатчику) весов.
Цоколевка выводов:

Таблица 1. Описание выводов.
№ |
Имя |
Функция |
Описание |
1 |
VSUP |
Питание |
Питание регулятора напряжения: 2.7V .. 5.5V. |
2 |
BASE |
Аналоговый выход |
Управляющий выход регулятора (NC, когда не используется). |
3 |
AVDD |
Питание |
Аналоговое питание: 2.6V .. 5.5V. |
4 |
VFB |
Аналоговый вход |
Управляющий вход регулятора (подключите к AGND, если он не используется). |
5 |
AGND |
Земля, Ground |
Аналоговая земля, общий провод. |
6 |
VBG |
Аналоговый выход |
Выход источника опорного напряжения. |
7 |
INA- |
Аналоговый вход |
Дифференциальный канал A, отрицательный вход. |
8 |
INA+ |
Аналоговый вход |
Дифференциальный канал A, положительный вход. |
9 |
INB- |
Аналоговый вход |
Дифференциальный канал B, отрицательный вход. |
10 |
INB+ |
Аналоговый вход |
Дифференциальный канал B, положительный вход. |
11 |
PD_SCK |
Цифровой вход |
Управление выключением (активный высокий уровень) и вход тактов последовательного интерфейса. |
12 |
DOUT |
Цифровой выход |
Выход данных последовательного интерфейса. |
13 |
XO |
Цифровой выход |
Подключение кварцевого резонатора, выход генератора (NC, когда не используется). |
14 |
XI |
Цифровой вход |
Подключение кварцевого резонатора, вход генератора. Также может использоваться как вход, на который подается тактовый сигнал внешнего генератора. |
15 |
RATE |
Цифровой вход |
Управление частотой выходных данных, 0: 10 Гц, 1: 80 Гц. |
16 |
DVDD |
Питание |
Цифровое питание: 2.6V .. 5.5V. |
Примечание: NC означает Not Connected, никуда не подключено.
Таблица 2. Основные электрические характеристики.
Параметр |
Замечания |
min |
Typ |
MAX |
Ед. |
Диапазон дифференциального входного напряжения (full scale) |
V(inp)-V(inn)(1) |
±0.5(AVDD/GAIN) |
V |
Не дифференциальное входное напряжение (common mode input) |
BASE |
AGND+1.2 |
|
AVDD-1.3 |
V |
Частота появления выходных данных |
Внутренний генератор, RATE=0 |
10 |
Гц |
Внутренний генератор, RATE=DVDD |
80 |
Кварц или внешнее тактирование, RATE=0 |
fclk/1105920 |
Кварц или внешнее тактирование, RATE=DVDD |
fclk/138240 |
Кодирование выходных данных |
Дополнение до 2 |
800000 |
|
7FFFFF |
HEX |
Время установки выхода(2) |
RATE=0 |
400 |
мс |
RATE=DVDD |
50 |
Дрейф входного смещения |
Усиление 128 |
0.2 |
mV |
Усиление 64 |
0.4 |
Входной шум
|
Усиление 128, RATE=0 |
50 |
nV(rms)(3) |
Усиление 128, RATE=VDD |
90 |
Температурный дрейф |
Входное смещение (усиление 128) |
±6 |
nV/℃ |
Усиление (при усилении 128) |
±5 |
ppm/℃(4) |
Подавление синфазного сигнала |
Усиление 128,RATE=0 |
100 |
dB |
Подавление помех по питанию |
Усиление 128, RATE=0 |
100 |
dB |
Напряжение опорного источника (VBG) |
|
1.25 |
V |
Частота кварца или внешнего тактирования |
|
1 |
11.0592 |
20 |
МГц |
Напряжение питания |
DVDD |
2.6 |
|
5.5 |
V |
AVDD, VSUP |
2.6 |
|
5.5 |
Ток потребления аналогового питания (включая регулятор) |
Нормальный рабочий режим |
|
1400 |
|
µA |
Выключено (power down) |
|
0.3 |
|
Ток потребления цифрового питания |
Нормальный рабочий режим |
|
100 |
|
µA |
Выключено (power down) |
|
0.2 |
|
Примечания:
(1) V(inp) напряжение на положительном выводе дифференциального входа, V(inn) на отрицательном выводе дифференциального входа. (2) Время относительно включения питания (power up), сброса (reset), изменения входного канала и изменения усиления - до момента получения стабильных и достоверных выходных данных. (3) nV(rms) - rms означает среднее квадратическое значение (Root Mean Square), нановольт. (4) ppm означает частей на миллион (Parts Per Million).
Аналоговые входы. Канал A имеет дифференциальный вход, который непосредственно подключается к дифференциальному выходу мостового датчика (такого как например тензодатчик DYLY-102 [2]). Усиление канала A может быть выбрано 128 или 64. Большое усиление подойдет к небольшому уровню сигнала от сенсора. Когда на выводе AVDD используется напряжение питания 5V, эти коэффициенты усиления соответствуют полному диапазону входного напряжения ±20 mV или ±40 mV соответственно. У дифференциального входа канала B усиление фиксированное, и равное 32. Когда для AVDD используется питание 5V, это соответствует полному диапазону входного напряжения ±80 mV.

Питание. Цифровое питание (DVDD) должно совпадать с напряжением питания управляющего микроконтроллера (MCU).
Когда используется внутренний аналоговый регулятор питания, падение напряжения на регуляторе зависит от внешнего используемого транзистора. Выходное напряжение равно VAVDD = VBG * (R1+R2) / R1 (см. рис. 1). Это напряжение должно быть на 100 mV ниже напряжения VSUP.
Если встроенный регулятор аналогового напряжения не используется, то вывод VSUP должен быть подключен либо к AVDD, либо к DVDD, в зависимости от того, какое напряжение больше. Вывод VFB должен быть подключен к земле (GND), и вывод BASE ставится NC (Not Connected, не подключен). При этом не нужен внешний блокировочный конденсатор на выводе VBG, показанный на рис. 1.
Тактирование. При подключении вывода XI к земле (GND) активируется встроенный генератор. Номинальная скорость вывода данных при использовании внутреннего генератора равно 10SPS (RATE=0) или 80SPS (RATE=1).
Если нужна точная частота выходных данных, то может использоваться кварцевый резонатор или внешний опорный генератор. Кварц может быть непосредственно подключен между выводами XI и XO. Внешний тактовый сигнал может быть подключен к выводу XI через развязывающий конденсатор 20 пФ. Внешний тактовый сигнал необязательно должен быть прямоугольным. Он может поступать непосредственно от выхода кварцевого генератора чипа MCU, с амплитудой до 150 mV.
Когда используется кварц или внешняя тактовая частота, внутренний генератор автоматически выключается.
Скорость и формат выходных данных. Когда используется встроенный генератор, скорость выходных данных обычно 10SPS (RATE=0) или 80SPS (RATE=1).
Когда используется внешний тактовый генератор или кварц, скорость выходных данных прямо пропорциональна частоте тактов. При 11.0592 МГц получается точная скорость выходных данных 10SPS (RATE=0) или 80SPS (RATE=1).
Выходные 24 бита данных имеют формат дополнения до 2. Когда входной дифференциальный сигнал выходит за диапазон 24 бит, происходит насыщение до значение 800000h (MIN) или 7FFFFFh (MAX), пока входной сигнал не вернется во входной диапазон полной шкалы.
Последовательный интерфейс. Выводы PD_SCK и DOUT используются для считывания данных, выбора входа, выбора усиления и управления питанием.
Внутренняя схема HX711 сама запускает преобразование (оцифровку) уровня напряжения входов АЦП с заданной частой, зависящей от уровня на выводе RATE (10 или 80 Гц). Задача внешнего микроконтроллера прочитать данные результата преобразования, когда они будут готовы. Готовность данных можно определить по логическому уровню на выводе DOUT.
Когда выходные данные не готовы для чтения, на цифровом выходе DOUT присутствует лог. 1. На входе тактов PD_SCK должен быть уровень лог. 0. Когда DOUT переходит в лог. 0, это означает готовность данных к чтению. Путем подачи 25 .. 27 положительных импульсов на вывод PD_SCK данные выдвигаются наружу через вывод DOUT. Каждый положительный импульс PD_SCK производит сдвиг на 1 бит, начиная со старшего бита (MSB), пока не будут выдвинуты все 24 бита. 25-й импульс PD_SCK приведет к обратному переводу DOUT в состояние лог. 1 (см. рис. 2).
Выбор входа и усиления управляется количеством входных импульсов PD_SCK (таблица 3). Количество импульсов PD_SCK не должно быть меньше 25 и больше 27 в течение периода преобразования, чтобы не допустить ошибки последовательной коммуникации.
Таблица 3. Входной канал и выбор усиления.
Импульсов PD_SCK |
Входной канал |
Усиление |
25 |
A |
128 |
26 |
B |
32 |
27 |
A |
64 |

Рис. 2. Выход данных, тайминг и управление выбором входа и усиления.
Симв. |
Замечания |
min |
Typ |
MAX |
Ед. |
T1 |
DOUT falling edge to PD_SCK rising edge |
0.1 |
|
|
мкс |
T2 |
PD_SCK rising edge to DOUT data ready |
|
|
0.1 |
T3 |
Время лог. 1 PD_SCK |
0.2 |
1 |
50 |
T4 |
Время лог. 0 PD_SCK |
0.2 |
1 |
|
Reset и Power-Down. Когда на чип подается питание, встроенная схема сбрасывает чип в исходное состояние.
Вывод PD_SCK используется для выключения HX711. Когда на входе PD_SCK лог. 0, чип находится в нормальном рабочем режиме.

Рис. 3. Управление выключением (Power Down).
Когда вывод PD_SCK меняет уровень с лог. 0 на лог. 1, и остается в таком состоянии на время больше 60 мкс, HX711 входит состояние выключения (power down mode, рис. 3). При использовании внутреннего регулятора для HX711 и внешнего преобразователя питания, выключается как HX711, так и преобразователь. Когда PD_SCK возвращается к низкому уровню, чип сбрасывается и переходит в нормальный режим работы.
После события сброса (reset) или выключения (power-down) по умолчанию выбирается канал A с усилением 128.
[Пример применения]
На рис. 1 показана типовая схема применения HX711 для весов с тензодатчиком. Используется встроенный генератор (XI=0), скорость выходных данных 10 Гц (RATE=0). Единое напряжение питания (2.7V .. 5.5V)приходит непосредственно от шины питания MCU. Канал B может использоваться для определения уровня заряда батареи, на рис. 1 схема для этого не показана.

Рис. 4. Образец принципиальной схемы (плата рис. 5).

Рис. 5. Образец разводки печатной платы.
Пример кода на языке ассемблера:
/*-------------------------------------------------------------------
Вызов из ASM: LCALL ReaAD
Вызов из C: extern unsigned long ReadAD(void);
.
.
unsigned long data;
data=ReadAD();
.
.
----------------------------------------------------------------------*/ PUBLIC ReadAD HX711ROM segment code rseg HX711ROM sbit ADDO = P1.5; sbit ADSK = P0.0; /*--------------------------------------------------
OUT: R4, R5, R6, R7 R7=>LSB
---------------------------------------------------*/ ReadAD:
CLR ADSK //AD разрешено(PD_SCK установлен в лог. 0)
SETB ADDO //Разрешено I/O 51CPU
JB ADDO,$ //AD-преобразование завершено?
MOV R4,#24 ShiftOut:
SETB ADSK //PD_SCK установлен в лог. 1(начало положительного импульса)
NOP
CLR ADSK //PD_SCK установлен в лог. 0 (конец положительного импульса)
MOV C,ADDO //чтение бита
XCH A,R7 //перемещение данных
RLC A
XCH A,R7
XCH A,R6
RLC A
XCH A,R6
XCH A,R5
RLC A
XCH A,R5
DJNZ R4,ShiftOut //перемещено 24 бита?
SETB ADSK
NOP
CLR ADSK
RET
END
Пример кода на языке C:
sbit ADDO = P1^5;
sbit ADSK = P0^0;
unsigned long ReadCount(void)
{
unsigned long Count;
unsigned char i;
ADDO=1;
ADSK=0;
Count=0;
while(ADDO);
for (i=0;i<24;i++)
{
ADSK=1;
Count=Count<<1;
ADSK=0;
if(ADDO) Count++;
}
ADSK=1;
Count=Count^0x800000;
ADSK=0;
return Count;
}

Рис. 6. Размеры корпуса SOP-16L, указанные в миллиметрах.
[Ссылки]
1. HX711 24-Bit Analog-to-Digital Converter (ADC) for Weigh Scales site:sparkfun.com. 2. S Type Load Cells DYLY-102 site:7sensor.com. |