Весы ски 12 ошибка а12е

Наш адрес: г. Москва, ул. Полярная, д. 31, стр. 1. Телефон: +7 495 649 16 77 (Skype, ICQ). Режим работы: понедельник — пятница с 9:00 до 18:00; суббота и воскресенье — выходной. Доставка по России, Белоруссии, Украине, Казахстану: Москва, Подольск, Сергиев Посад, Истра, Рязань, Курск, Липецк, Тула, Иваново, Воронеж, Ярославль, Тверь, Смоленск, Калуга, Белгород, Орел,
Тамбов, Кострома, Брянск, Красноярск, Норильск, Кемерово, Новокузнецк, Новосибирск, Омск, Барнаул, Иркутск, Братск, Бийск, Улан-Удэ, Томск, Абакан, Чита, Горно-Алтайск, Кызыл, Санкт-Петербург,
СПб, Выборг, Вологда, Череповец, Мурманск, Сыктывкар, Ухта, Архангельск, Северодвинск, Великий Новгород, Петрозаводск, Гомель, Гродно, Витебск, Могилев, Брест, Минск, Алма-Ата, Астана,
Ереван, Киев, Днепропетровск, Львов, Ташкент, Могилев, Псков, Калининград, Нарьян-Мар, Уфа, Стерлитамак, Самара, Тольятти, Сызрань, Нижний Новгород, Арзамас, Саратов, Энгельс, Пермь,
Ижевск, Казань, Набережные Челны, Бугульма, Пенза, Оренбург, Орск, Чебоксары, Новочебоксарск, Ульяновск, Киров, Йошкар-Ола, Саранск, Екатеринбург, Верхняя Пышма, Серов, Челябинск,
Магнитогорск, Снежинск, Тюмень, Курган, Нижневартовск, Сургут, Надым, Ростов-на-Дону, Волгодонск, Таганрог, Волгоград, Волжский, Краснодар, Армавир, Астрахань, Майкоп, Владивосток,
Уссурийск, Хабаровск, Комсомольск-на-Амуре, Советская Гавань, Южно-Сахалинск, Благовещенск, Петропавловск-Камчатский, Мирный, Ставрополь, Минеральные Воды, Махачкала, Нальчик, Алушта, Армянск, Джанкой, Евпатория, Керчь, Севастополь, Симферополь, Судак, Крым, Феодосия, Ялта. Сайт отвечает на вопросы: Как отремонтировать, настроить, установить оборудование? Где скачать документацию (инструкцию, мануал)? Где посмотреть партномер? Где купить запчасти (запасные
части, зип), комплектующие, аксессуары и термоэтикетка, чековая лента для весов, термопринтеров штрих-кода, чековых принтеров? Обслуживание весов, кассовых аппаратов, термопринтеров,
терминалов сбора данных, сканеров штрих-кода: каким образом возможно своими силами? Вас интересует наличие, цена, купить запчасти за наличный и безналичный расчет? — сделайте запрос
нашим менеджерам. Официальный сайт компании Zipstore.ru.

Уровень сложности: опытный.
Необходимые инструменты: набор отверток, мультиметр, паяльник.
Необходимые навыки: умение пользоваться мультиметром, навыки пайки, минимальное знание схемотехники.

Здравствуйте, друзья! В ремонт поступил весовой терминал Scale СКИ-12. Проблема следующая: не включается, ни при подключении к сети, ни от аккумулятора. 

Начнем проверку с питающих напряжений. Замеряем переменное напряжение на выходе трансформатора, там 12 вольт. Затем напряжение через диодный мост поступает на стабилизатор 7808. На входе стабилизатора присутствует постоянное напряжение +15 вольт, а на выходе стабилизированные +8 вольт.  Так же на плате присутствует второй стабилизатор напряжения 2904 на него приходит +7,7 вольта, на выходе стабилизированные +5 вольт, которые питают цифровую часть, в том числе процессор.  

Замеряем на сороковой ноге процессора напряжение, там должно быть +5 вольт, а по факту +1 вольт. Получается, что со стабилизатора 2904 пятивольтовое питание уходит, а на процессоре его нет. Вариантов такой картины несколько: 

  • Либо пятивольтовая линия в КЗ, но тогда и на выходе стабилизатора была бы просадка напряжения. 
  • Либо пятивольтовая линия питания в обрыве между стабилизатором и процессором. 

При дальнейшем осмотре платы выяснили такую картину: радиатор стабилизатора на +8 вольт припаян к плате и зафиксирован жестко, а качество пайки радиатора пятивольтового стабилизатора плохое, радиатор отвалился от платы.  

При ударе или вибрациях в месте пайки к плате выходного пина стабилизатора образовалась микротрещина. Если пошевелить стабилизатор, то питание на процессоре появляется и весовой терминал включается и начинает тестироваться. Устраним обрыв. 

Итог ремонта терминала весового СКЕЙЛ СКИ-12: обрыв в пятивольтовой линии питания был устранен, после чего весовой блок стал стабильно включаться и нормально работать. 

Если у вас проблема с весами, обращайтесь к нам! Заявки на ремонт весов принимаем по телефону +7 985 210-97-99.

Позвонить

Если у вас есть вопросы, оставляйте в комментариях или пишите в наш

WhatsApp

(Visited 1 758 times, 1 visits today)

при разборке и диагностике оказалось что все одинаково, смысле электронной части, посему, делюсь

головы тензосила реус — А10, А12, скейл — СКИ-12

диагностика

Питание датчиков должно быть около 5В (4,5-5,1);
Прозвонить датчики на обрыв, сопротивление между одним из
питающих и сигнальными проводами должно быть примерно
одинаковым, +/- 1-2 Ом.
Выходной сигнал с пустой платформы 0-5 мВ. Если выходной сигнал значительно больше 10 мВ, значит неисправен один или несколько датчиков.
Проверка работы датчиков: измерить сигнал при пустой платформе, при нагружении платформы сигнал должен увеличиваться.
Между сигналом при пустой и полностью загруженной платформе
должна быть разница примерно от 3 до 15 мВ.
Если есть подозрения на неисправность какого-либо датчика, в коробке отключаются сигнальные линии, и измеряется сигнал с каждого датчика.

калибровка

функции кнопок:
[#] — сохранение параметра и переход к следующему, нажатие с удержанием во время теста — вход в калибровку;
[Tare] — выбор дискретности, переключение разрядов дисплея;
[Zero] — выбор значения параметра.
1) во время теста нажать с удержанием [#], на дисплее появится [d x], где х=1,2,5,10,20,50 (дискретность) кнопкой Zero выбрать нужную, [#] — сохранить;
2) [P x] — выбор положения десятичной точки кнопкой [Tare];
3) [Full] — выбор наибольшего предела взвешивания, нажать [Tare], ввести значение;
4) [noLoad] — запоминание сигнала нуля, освободить платформу и нажать [#];
5) [AdLoad] — запоминание сигнала нагрузки, установить эталонный груз, нажать [Tare], ввести значение установленного веса, и при горящем индикаторе стабильности веса нажать [#];
6) [End] — на обратной стороне индикатора открутить калибровочную крышку и нажать неметаллическим стержнем длиной более 3см на кнопку, на дисплее появится значение установленного веса — калибровка закончена.

Наш адрес: г. Москва, ул. Полярная, д. 31, стр. 1. Телефон: +7 495 649 16 77 (Skype, ICQ). Режим работы: понедельник — пятница с 9:00 до 18:00; суббота и воскресенье — выходной. Доставка по России, Белоруссии, Украине, Казахстану: Москва, Подольск, Сергиев Посад, Истра, Рязань, Курск, Липецк, Тула, Иваново, Воронеж, Ярославль, Тверь, Смоленск, Калуга, Белгород, Орел,
Тамбов, Кострома, Брянск, Красноярск, Норильск, Кемерово, Новокузнецк, Новосибирск, Омск, Барнаул, Иркутск, Братск, Бийск, Улан-Удэ, Томск, Абакан, Чита, Горно-Алтайск, Кызыл, Санкт-Петербург,
СПб, Выборг, Вологда, Череповец, Мурманск, Сыктывкар, Ухта, Архангельск, Северодвинск, Великий Новгород, Петрозаводск, Гомель, Гродно, Витебск, Могилев, Брест, Минск, Алма-Ата, Астана,
Ереван, Киев, Днепропетровск, Львов, Ташкент, Могилев, Псков, Калининград, Нарьян-Мар, Уфа, Стерлитамак, Самара, Тольятти, Сызрань, Нижний Новгород, Арзамас, Саратов, Энгельс, Пермь,
Ижевск, Казань, Набережные Челны, Бугульма, Пенза, Оренбург, Орск, Чебоксары, Новочебоксарск, Ульяновск, Киров, Йошкар-Ола, Саранск, Екатеринбург, Верхняя Пышма, Серов, Челябинск,
Магнитогорск, Снежинск, Тюмень, Курган, Нижневартовск, Сургут, Надым, Ростов-на-Дону, Волгодонск, Таганрог, Волгоград, Волжский, Краснодар, Армавир, Астрахань, Майкоп, Владивосток,
Уссурийск, Хабаровск, Комсомольск-на-Амуре, Советская Гавань, Южно-Сахалинск, Благовещенск, Петропавловск-Камчатский, Мирный, Ставрополь, Минеральные Воды, Махачкала, Нальчик, Алушта, Армянск, Джанкой, Евпатория, Керчь, Севастополь, Симферополь, Судак, Крым, Феодосия, Ялта. Сайт отвечает на вопросы: Как отремонтировать, настроить, установить оборудование? Где скачать документацию (инструкцию, мануал)? Где посмотреть партномер? Где купить запчасти (запасные
части, зип), комплектующие, аксессуары и термоэтикетка, чековая лента для весов, термопринтеров штрих-кода, чековых принтеров? Обслуживание весов, кассовых аппаратов, термопринтеров,
терминалов сбора данных, сканеров штрих-кода: каким образом возможно своими силами? Вас интересует наличие, цена, купить запчасти за наличный и безналичный расчет? — сделайте запрос
нашим менеджерам. Официальный сайт компании Zipstore.ru.

На чтение 17 мин Просмотров 18 Опубликовано 9 апреля 2023 Обновлено 9 апреля 2023

Содержание

  1. Весы Scale СКИ-12, Тензосила Реус-2000. Диагностика, калибровка : Другие весы
  2. Теперь у нас можно купить микросхему ADS1230
  3. НВТ-3 и A12E — после 2-3 часов работы весы начинают врать
  4. АЦП ADS1230 и PIC24FJ64GA004
  5. Калибровки смещения
  6. Стандартная схема подключения АЦП к мосту датчика для измерения веса.
  7. Подключение будет выполнено к SPI2
  8. Как корректно работать с АЦП ADS1220 на Ардуино
  9. Микросхема АЦП ADS1220
  10. Модуль CJMCU ADS1220
  11. Подключение модуля ADS1220 к Ардуино
  12. Как установить библиотеку Ардуино ADS1220 модуля
  13. Использование библиотеки ProtoСentral ADS1220 24-bit ADS Library
  14. Проблемы в библиотеке Protocentral ADS1220
  15. Решение проблемы библиотеки Ардуино от ProtoСentral

Весы Scale СКИ-12, Тензосила Реус-2000. Диагностика, калибровка : Другие весы

при разборке и диагностике оказалось что все одинаково, смысле электронной части, посему, делюсь

головы тензосила реус — А10, А12, скейл — СКИ-12

Питание датчиков должно быть около 5В (4,5-5,1);
Прозвонить датчики на обрыв, сопротивление между одним из
питающих и сигнальными проводами должно быть примерно
одинаковым, +/- 1-2 Ом.
Выходной сигнал с пустой платформы 0-5 мВ. Если выходной сигнал значительно больше 10 мВ, значит неисправен один или несколько датчиков.
Проверка работы датчиков: измерить сигнал при пустой платформе, при нагружении платформы сигнал должен увеличиваться.
Между сигналом при пустой и полностью загруженной платформе
должна быть разница примерно от 3 до 15 мВ.
Если есть подозрения на неисправность какого-либо датчика, в коробке отключаются сигнальные линии, и измеряется сигнал с каждого датчика.

функции кнопок:
[#] — сохранение параметра и переход к следующему, нажатие с удержанием во время теста — вход в калибровку;
[Tare] — выбор дискретности, переключение разрядов дисплея;
[Zero] — выбор значения параметра.
1) во время теста нажать с удержанием [#], на дисплее появится [d x], где х=1,2,5,10,20,50 (дискретность) кнопкой Zero выбрать нужную, [#] — сохранить;
2) [P x] — выбор положения десятичной точки кнопкой [Tare];
3) [Full] — выбор наибольшего предела взвешивания, нажать [Tare], ввести значение;
4) [noLoad] — запоминание сигнала нуля, освободить платформу и нажать [#];
5) [AdLoad] — запоминание сигнала нагрузки, установить эталонный груз, нажать [Tare], ввести значение установленного веса, и при горящем индикаторе стабильности веса нажать [#];
6) [End] — на обратной стороне индикатора открутить калибровочную крышку и нажать неметаллическим стержнем длиной более 3см на кнопку, на дисплее появится значение установленного веса — калибровка закончена.

Источник

Теперь у нас можно купить микросхему ADS1230

Привет! Мы постоянно работаем над расширением ассортимента запчастей для весового оборудования и сегодня рады сообщить, что у нас в продаже появились микросхемы ADS1230.

ADS1230 это одноканальный 20-ти разрядный аналого-цифровой преобразователь, выпускаемый известным разработчиком в сфере электроники Texas Instruments.

Эта микросхема специально разработана для использования с тензометрическими датчиками, в частности, применяется в товарных, напольных, складских, балочных, платформенных, паллетных весах СКИ и СКЕ производства московского завода «Скейл», а так же в весах московского завода «Мидл».

Технические подробности о характеристиках микросхемы можно узнать из документации.

Рекомендации по замене микросхемы: при выявленной неисправности микросхемы нужно демонтировать метрологическую плату, пины микросхемы прогреть потоком воздуха 360-370 градусов, применяя фен, после чего неисправная микросхема с легкостью снимается со своего места.

Разместив новую микросхему на месте установки, фиксируем крайние пины паяльником, потом прогреваем пины по периметру феном, при этом сила потока воздуха не должна быть сильно высокой, чтобы не допустить смещения микросхемы. Перед обдувкой желательно использовать флюс. После завершения установки, тщательно промыть место пайки спиртом. Желательно покрыть микросхему и выводы изоляционным лаком или изоляционным пластиком, чтобы исключить влияние окружающей среды на работу микросхемы.

Источник

НВТ-3 и A12E — после 2-3 часов работы весы начинают врать

A12E(слева) и НВТ-3(справа) — найдите отличия

A12E(слева) и НВТ-3(справа) — с обратной стороны различия более видимы.

Введение. Мы уже не раз замечали «эффект электрички» при ремонтах, но такого стечения обстоятельств еще не приходилось встречать. Мало того, что в ремонт одновременно попали весы с абсолютно одинаковыми поломками, но они еще вызвали «дежавю». Разные производители, разные платформы, но индикаторы похожи друг на друга как две капли воды, пройти мимо такой ситуации мы не смогли. Весы имеют одинаковые симптомы, приведшие к различным последствиям.

Весы №1 НВТ-3 (Невские весы)

Неисправность со слов заказчика. После 2-3 часов работы весы начинают врать.
Первичная диагностика. Ток заряда аккумулятора 6В*4,5Ач при включении 0,52А, который снижается до 0,46А и останавливается на этой отметке. Формально параметрический стабилизатор L7808CV превращается в грелку, и через некоторое время напряжение начинает «плыть», что подтверждают осциллограммы, стабилизатор уходит в релаксацию. Однако замена аккумулятора (с пророческим названием «шлак») на новый ситуацию не изменила, ток заряда аккумулятора пришел в норму, но вот параметрический стабилизатор через некоторое время все равно уходил в релаксацию. Проверка ESR конденсаторов фильтра параметрического стабилизатора показала завышенные показания ESR и нулевые показания емкости, у конденсатора в питании процессора отклонений не обнаружено.
Ремонт. Заменены конденсаторы фильтра параметрического стабилизатора, получасовой тех. прогон релаксацию L7808CV не выявил. Ремонт окончен.

Весы №2 A12E (Китай).

Неисправность со слов заказчика. После 2-3 часов работы весы начинают врать.
Первичная диагностика. Ток заряда аккумулятора 6В*4,5Ач при включении 0,46А и не меняется со временем. Формально параметрический стабилизатор U11 (L7808CV) превращается в грелку, и через некоторое время напряжение начинает «плыть», что подтверждают осциллограммы, стабилизатор уходит в релаксацию.

Плата весового индикатора А12Е

Однако замена аккумулятора на новый ситуацию не изменила, ток заряда аккумулятора пришел в норму, параметрический стабилизатор через некоторое время все равно уходил в релаксацию. Из любопытных моментов – эти весы настоящие китайцы, которые, как выяснилось, ремонтировал китайский мастер, уж не знаем где в Челябинской области нашелся китайский коллега, но весы ремонтировал мастер явно знакомый с работой тензодатчика.
Ремонт. Сдутая с платы АЦП AIC1 (ADS1230) и удаление процессора U3 (89C58RD+) устранила релаксацию параметрического стабилизатора U11 (L7808CV).

Весовой индикатор A12E — АЦП AIC1 (ADS1230)

На складе найти подобный АЦП и прошитый процессор найти не удалось, ремонт подвис ввиду отсутствия новой материнской платы. (UPD 19/06/2015. АЦП удалось занять у коллег, процессор сняли с других весов. Ремонт окончен.)

Заключение. Одинаковая с виду неисправность привела к разным последствиям. Обоим весам около 3 лет, вполне предсказуемая реакция весов на китайский аккумулятор. Складывается устойчивое мнение родной аккумулятор на таких весах следует менять через два года эксплуатации, в противном случае мы получаем мину замедленного действия с непредсказуемыми последствиями, которые могут ограничить срок эксплуатации весового индикатора до 2 лет.
Личное мнение. Несмотря на сходство обоих моделей китайский вариант показался более продуманным. Оба весовых индикатора подвели китайские (в плохом понимании) аккумуляторы. В любом случае аккумулятор у A12E аккумулятор был почти в нормальном состоянии, в то время как у НВТ-3 аккумулятор был на грани взрыва. Дело в том, что у весового индикатора НВТ-3 аккумулятор начинал заряжаться, как только весы были включены в розетку вне зависимости от положения сетевого выключателя, в то время как у A12E аккумулятор начинал заряжаться при включении весов сетевым выключателем. С точки зрения пожаробезопасности, китайский весовой индикатор A12E оказался явно предпочтительней в использовании. Так же доступ к калибровочной кнопке у китайца более удобен и выполнен по классическому принципу, в отличии от НВТ-3.

Весовой индикатор A12E. Удобство доступа к калибровочной кнопке вызывает уважение.

Китайца A12E подвел только разъем от весовой платформы, более хлипкий, менее надежный, что и привело к разным последствиям при поломке, ремонт НВТ-3 вышел гораздо дешевле за счет надежного соединения с весовой платформой.

Источник

АЦП ADS1230 и PIC24FJ64GA004

АЦП ADS1230 – это 20 битный АЦП со скоростью измерения 10 или 80 раз в секунду. При подаче питания АЦП постоянно выполняет измерения. Данные можно получить с него по SPI шине. Максимальная тактовая частота шины до 1 мГц. Каждое измерение выполненное АЦП инициализируется самим АЦП по шине данных положительным импульсом. Чтение микроконтроллер должен начинать по получению отрицательного фронта.

Данные передаются старшим битом в перед для чтения 20 бит необходимо 3 байта. Данные выровнены влево.

Для чтения данных необходимо настроить SPI по отрицательному фронту синхроимпульсов.

Управляя количеством синхроимпульсов можно управлять функциями АЦП, одна из них это калибровка АЦП.

Калибровки смещения

Калибровка смещения может быть начата в любое время для компенсации в ADS1230 погрешности смещения. Чтобы начать калибровку смещения, необходимо по крайней мере, два дополнительных SCLKs после получения 20 бит данных. Данные мы получаем чтением 24 бита. Если продолжить формирование SCLK, то задний фронт 26-го SCLK начинается цикл калибровки. Дополнительные импульсы SCLK могут быть отправлены после 26 SCLK, однако, активность на шине SCLK должны быть сведены к минимуму, во время калибровки смещения, для достижения наилучших результатов. В течение выполнения функции калибровки, аналоговые входные контакты отсоединены от входов АЦП и соответствующий сигнал подается внутри, чтобы выполнить калибровку. Когда калибровка завершена, DRDY/DOUT переходит в низкий уровень, что указывает, что новые данные готовы. Первое преобразование после калибровки содержит достоверные данные.

Стандартная схема подключения АЦП к мосту датчика для измерения веса.

Вариант подключения АЦП к PIC24FJ64GA004.

Подключение будет выполнено к SPI2

Сама обработка данных и синхронизация выполняется через прерывания по входу через которые на SPI2 поступают данные. Настройка прерывание:

Первые две строчки это если есть необходимость в управлении подачей питания на измерительный мост и управления режимом “слип” АЦП. Следующие три строки это настройка режима прерывания по входу через который АЦП получает данные.

Получение данных происходит через функцию прерывания:

Источник

Как корректно работать с АЦП ADS1220 на Ардуино

Иногда нужны точные аналого-цифровые преобразования (АЦП) на Ардуино. Например, для регистрации ЭЭГ, ЭКГ и других малых сигналов. Возможным решением может послужить модуль АЦП ADS1220.
Во-первых, ADS1220 имеет точность в 24 бит в отличии от 10 бит в Ардуино. Во-вторых, этот АЦП модуль довольно доступен и не дорог. Модули с ADS1220 выпускаются множеством производителей, но в данной статье рассматривается CJMCU, он является самой дешёвый версией (работа с другими не отличается).

Поставщика данного модуля можно узнать здесь

Микросхема АЦП ADS1220

Микросхема ADS1220 является прецизионным 24-битным аналого-цифровым преобразователем, который имеет 4 однополюсных канала или 2 дифференциальных входа. Также он имеет малошумящий программируемый усилитель, благодаря которому можно осуществить контролируемое оконечное усиление.
Кроме того, он дает два режима преобразования: непрерывное и одиночное.
Основные особенности ADS1220:

  • 4 однополярных (или 2 дифференциальных) аналоговых входа
  • 24 битное разрешение (20 битное эффективное разрешение)
  • Низкое энергопотребление и широкий диапазон напряжений питания
  • Программируемый коэффициент усиления и частоты выборки
  • Встроенный цифровой фильтр подавления помех 50 и 60 Гц
  • Стабильные источник опорного напряжения и тактовый генератор
  • Программируемые источники тока
  • Встроенный датчик температуры
  • SPI интерфейс
  • Малогабаритный VQFN корпус для поверхностного монтажа.

Структура показана на рисунке

Структура ADS1220

Модуль CJMCU ADS1220

Схема модуля ADS1220 от CJMCU и Protocentral

На рисунке показана схема от Protocentral, а модуль от CJMCU отличается только номиналом резисторов SPI интерфейса 24 Ом.

Подключение модуля ADS1220 к Ардуино

Для подключения к Ардуино нужно определить выводы, задействованные под SPI интерфейс. У Arduino UNO это D11, D12, D13, а в Arduino ProMicro (в моем случае) — D15, D14, D16.
Главное нужно найти выводы, связанные с контактами MOSI, MISO, SCK.
Также нужно выделить два свободных контакта ввода/вывода для управлением разрешения работы (CS) и приема сигнала о готовности данных (DRDY). Причем, DRDY лучше по возможности подключать к выводу с поддержкой прерывания. Обычно это D1, D2.
Вариант подключения выводов модуля ADS1220 к Ардуино (двух моделей) показано в таблице.

Модуль ADS1220 Arduino UNO Arduino ProMicros
DRDY D2 D2
MISO D12 D14
MOSI D11 D16
SCLK D13 D15
CS D7 D7
CLK
DVDD 5V 5V
DGND GND GND

Соединение модуля к разным моделям Ардуино

Как установить библиотеку Ардуино ADS1220 модуля

Для ADS1220 не так уж много вариантов и самый доступный — библиотека от Protocentral. Она доступна из меню Скетч -> Подключить библиотеку -> Управление библиотеками, ввести в поиск ADS1220 и выбрать ProtoСentral ADS1220 24-bit ADS Library. Последнюю на данный момент версию 1.1.2 можно получить на GitHub
Забегая вперед, надо отметить, что она (версия 1.1.2) видимо написана в спешке и не лишена ошибок. Однако, это все же лучше, чем ничего и надеюсь данная информация дойдет до сотрудников ProtoСentral и библиотеку исправят.
Кстати, известна еще одна Ардуино библиотека для ADS1220. Работа с ней несколько сложнее, чем с версией от Protocentral и взглянув на её исходный код, заметил наличие тех же недочетов, хоть и в меньшей мере.
Но вначале нужно определить последовательность использования библиотеки.

Использование библиотеки ProtoСentral ADS1220 24-bit ADS Library

Для использования нужно осуществить следующие действия в коде:

2. Выделить представителя класса Protocentral_ADS1220

3. В функции setup() произвести инициализацию АЦП

Здесь ADC_CS_pin — номер вывода Ардуино к которому подключен CS вход АЦП, ADC_DRDY_pin — номер вывода Ардуино к которому подключен выход DRDY АЦП.

В результате будут устанослены следующие настройки по умолчанию:

  • Входной мультиплексор работает в дифференциальном режиме, подавая AIN0 на положительный вход, а AIN1 на отрицательный (инвертирующий) вход усилителя.
  • Усилитель PGA включен
  • Коэффициент усиления PGA равно 1
  • Частота преобразования АЦП 20 Гц
  • Режим АЦП нормальный
  • Режим преобразования непрерывный
  • Температурный датчик выключен
  • Источники тока смещения (burnout) выключены
  • Генератор опорного напряжения встроенный 2.048 В
  • Цифровой фильтр на подавление 50 и 60 Гц
  • Выключатель питания (Low-Side Power Switch) открыт
  • Источник тока возбуждения выключен
  • Переключатели тока возбуждения отключены
  • Режим режима готовности данных — использование только выхода DRDY

4. Затем можно изменить настройки по своему желанию:

5. Дальнейшие команды зависят от выбранных режимов

Это режимы преобразования (непрерывного и одиночного преобразования) и настройки мультиплексора (однополярный и дифференциальный).
В итоге получаются четыре возможных конфигураций:

  • Постоянное преобразование однополярного сигнала
  • Постоянное преобразование дифференциального сигнала
  • Одиночное преобразование однополярного сигнала
  • Одиночное преобразование дифференциального сигнала

Библиотека от Protocentral дает 4 метода для чтения данных:
Read_WaitForData() — проверяет (не ждет!) установку сигнала готовности на выводе DRDY до чтения регистров данных. Если данные не готовы возвратит 0. Его можно применять со всеми конфигурациями.
Read_SingleShot_WaitForData() — перед чтением посылает команду на начало преобразования. После этого сразу проверяет готовность данных и если не готово — результат будет 0. Применяется для одиночного преобразования, т.к. после преобразования АЦП засыпает.
Read_SingleShot_SingleEnded_WaitForData(channel) — в этом режиме мультиплексор переключается на выбранный вход (channel), ждет 100 мс затем производит преобразование, ждет 100 мс и если данные готовы считывает регистр данных иначе возвратит 0. Применяется для одиночного преобразования однополярного сигнала.
Read_Data_Samples() — сразу читает данные из регистра без проверки готовности. Применяется в режиме аппаратного прерывания по сигналу DRDY.

Также можно использовать второстепенные функции:

ads1220_Reset() — сброс АЦП
Start_Conv() — запуск преобразования
select_mux_channels(channel) — выбор требуемого канала мультиплексора. Есть следующие варианты:
дифференциальные комбинации
MUX_AIN0_AIN1
MUX_AIN0_AIN2
MUX_AIN0_AIN3
MUX_AIN1_AIN2
MUX_AIN1_AIN3
MUX_AIN2_AIN3
MUX_AIN1_AIN0
MUX_AIN3_AIN2

однополярные каналы
MUX_SE_CH0
MUX_SE_CH1
MUX_SE_CH2
MUX_SE_CH3
MUX_AIN0_AVSS
MUX_AIN1_AVSS
MUX_AIN2_AVSS
MUX_AIN3_AVSS
Start_Conv() — Для запуска АЦП вручную. Данная функция должна быть выполнена для запуска непрерывного преобразования или каждый раз запускаться до чтения данных в случае одиночного преобразования. Эта команда автоматически исполняется в функциях Read_SingleShot_WaitForData() и Read_SingleShot_SingleEnded_WaitForData(channel).

Проблемы в библиотеке Protocentral ADS1220

К сожалению, данной библиотекой в исходном виде (актуально для версии 1.1.2 и ниже) нельзя полноценно воспользоваться для регистрации сигналов!
Из публикаций в сети Интернет можно встретить лишь упоминания об ошибках в примерах поздней версии 1.1.1 библиотеки. Были неточности в вычислении напряжения и дублирование кода. В частности: во втором примере из библиотеки версии 1.1.1 производился некорректный расчет напряжения, т.к. в расчетах использовался коэффициент усиления 1, а в коде задавался 32. Нужно просто корректно задать коэффициент усиления #define PGA 32 и все.
Этот пример потом вовсе убрали из библиотеки, заменив на пример использования прерывания.

Но главная проблема находится в таймингах организации управления АЦП.

Общий алгоритм работы АЦП состоит в следующих действиях:

  1. Выбор канала мультиплексором
  2. Отдача команды начала преобразования
  3. Ожидание окончания АЦП
  4. Чтение данных

Произведя профилирование кода на каждой операции для частоты АЦП 20 Гц в однополярном режиме, были получены следующие результаты: выбор канала 10 мс, старт АЦП 8 мс, АЦП 58 мс, чтение 1 мс. Итого — 67 мс на измерение одного канала, что дает частоту дискретизации не более 15 Гц! Т.е. с такой задержкой можно зарегистрировать сигнал с частотой не более 7.5 Гц!
Увеличив частоту АЦП до 1000 Гц, задержка снизилась до 18 мс, однако это все равно не решает проблему — максимальная частота получалась всего 56 Гц, что далеко от заданного 1 кГц.
Поэтому слепо использовав функции библиотеки будет получен некорректно искаженный сигнал.
Если заглянуть в исходный код библиотеки станут ясны причины проблем в основных функциях:

1. В функции смены канала используется базовая команда записи в регистр writeRegister()

Здесь и находится первая причина задержки — два delay() по 5 мс. Они в сумме дают 10 мс жесткой задержки, что уже снижает максимальную частоту дискретизации до 100 Гц. Однако, требуемые тайминги в спецификации к ADS1220 не превышают 150 нс.

2. Вторая серия проблем в функции Read_WaitForData()

Во-первых, здесь нет ожидания окончания окончания АЦП, а только проверка через if((digitalRead(m_drdy_pin)) == LOW).
То есть если АЦП не успеет к этому времени закончиться, то результата просто не будет. С теми задержками проблема была не видна, но если их снизить — будут вылезать 0 в результатах. Поэтому нужно эту функцию постоянно вызывать для ожидания и при 0 ничего не делать или ждать сигнал DRDY до вызова.
Затем стоят два delayMicroseconds(100) — дающие добавку в 0.2 мс к общей задержке.

3. Такие же завышенные тайминги и отсутствие реального ожидания DRDY можно встретить в функциях Read_Data_Samples(), Read_SingleShot_WaitForData(), Read_SingleShot_SingleEnded_WaitForData().

4. В функции Read_SingleShot_WaitForData() присутствует потенциальная проблема.

Происходит запуск АЦП Start_Conv() и затем без всякого ожидания проверка на завершение операции. Поэтому тут остается только надеяться, что АЦП успеет произвестись, иначе сбой с выдачей 0.

5. В функции Read_SingleShot_SingleEnded_WaitForData() ситуация обратная.

После вызова переключения канала select_mux_channels() и после запуска АЦП Start_Conv() стоят 100 мс задержки. Это конечно даст уверенное получение сигнала готовности к моменту его проверки, но задержка получается самая большая 10 см (выбор канала) + 100 мс (задержка после выбора канала) + 100 мс (задержка после запуска АЦП) + 100 мкс (до получения данных) + 100 мкс (после получения данных) = 210.2 мс на один канал(. ) Что дает частоту дискретизацию максимально 4.8 Гц, а в случае 4 канального преобразования частота дискретизации падает до примерно 1 Гц и о регистрации большинства сигналов можно забыть.

Решение проблемы библиотеки Ардуино от ProtoСentral

Все описанные проблемы были исправлены в исходном коде библиотеки Protocentral_ADS1220.

  • снижены тайминги записи регистра АЦП
  • снижены тайминги функций чтения данных
  • заменен алгоритм проверки сигнала готовности на полноценное ожидание в тех функциях, где это необходимо.
  • добавлены константы для работы в турбо режиме и режиме рабочего цикла

Теперь задержка после полного цикла коммутации — АЦП — чтения находится в районе 1 мс, что дает возможность получения максимальной частоты дискретизации около 1000 Гц в нормальном режиме. Один канал 1080 мкс, два канала 2336 мс, три канала 3596 мс, четыре канала 4864 мкс.

В турбо режиме на частоте 2000 Гц один канал измеряется за 568 мкс, два канала 1276 мкс, три канала 2020 мкс, четыре канала 2772 мкс.

При одиночных измерениях результаты получаются несколько хуже: нормальный режим 1 канал за 8104 мкс, турбо режим — 604 мкс.

Поэтому для регистрации сигналов предпочтителен непрерывный режим.

Т.е. на одно измерение приходится минимально 0.6 мс, а 4 канала можно оцифровать с частотой до 333 Гц.

Библиотеку можно скачать по ссылке. Установка производится копированием содержимого архива в папку Документы -> Arduino -> library

Рабочий пример использования библиотеки для регистрации 4 каналов с частотой дискретизации 200 Гц.

В плоттере по последовательному соединению можно увидеть результат.

При изменении потенциометров, пропорционально меняются уровни сигналов. Сбоев и других дефектов не обнаружено.

Не забывайте подписаться на группу ВК и канал YouTub, чтобы оперативно узнать об этой разработке!

Источник

Понравилась статья? Поделить с друзьями:
  • Ведьмак 2 ошибка 0xc000007b ничего не помогает
  • Введите номер месяца и вывести сколько дней и ошибок
  • Ведьмак 2 ошибка 0xc000007b как исправить
  • Введите значение в указанном диапазоне гугл таблицы ошибка
  • Введите 20 цифр кбк в сбербанк онлайн ошибка