Страница 1 из 1

Внешний АЦП ADS1115 + патч флоукод

СообщениеДобавлено: 11 сен 2018, 00:00
DmitryAnarhist
Выкладываю пример работы с АЦП ADS1115 по шине I2C, а так же изменённый файл флоукода, стандартный файл вызывал зависание контроллера при любых неполадках на шине с любым из подключённых устройств, изменённый позволяет подключать и отключать любые устройства к шине на горячую без последствий для всего остального функционала.
АЦП работает на напряжении до 5 вольт, напряжение на входах так-же не должно превышать 5 вольт.
В примере всё откомментировано, остальное в даташите, функций много, все в одном примере не описать, да и не нужно, всё довольно просто.
В архив помещаю пример четырёхканального вольтмера,
изменённый файл флоукода распаковать в: C:\Program Files\Flowcode(AVR)\v5\CAL\AVR (если установка производилась в папку по умолчанию)
Там же даташит, что-бы не искать.
+Бонусы: калькулятор облегчающий двоичный счёт, и сканер I2C показывающий адреса всех устройств подключённых к шине.
Все примеры работают с индикатором 1602 (просто потому, что он у всех есть)

Re: Внешний АЦП ADS1115 + патч флоукод

СообщениеДобавлено: 11 сен 2018, 04:33
Андрей
Спасибо. Полезный патч, единственный момент, я конечно не шибко в этом разбираюсь, но на мой взгляд полностью убирать паузу после команды stop не стоит.
И надеюсь автор не будет против, оставлю ссылку на свой проектик - usb adc module на базе этого ацп и atmega8. небольшая приставка к пк - 4 канальный вольтметр, с выводом информации на компьютер.
https://youtu.be/Gg8al_oQDrg - прошивка автозагрузчика
https://youtu.be/0UfvZ7icP-w - описание программы в flowcode
https://youtu.be/yVB_rxiJKkQ - программа для компа

Re: Внешний АЦП ADS1115 + патч флоукод

СообщениеДобавлено: 11 сен 2018, 04:49
Вячеслав
DmitryAnarhist писал(а):стандартный файл вызывал зависание контроллера при любых неполадках на шине с любым из подключённых устройств

Дефект заметил с другими компонентами( датчиками) и на PIC. На словах, можно пояснить алгоритм устранения дефекта? Проще будет разбирать программу реализации выхода из зависания. Мне видится, что не все выходы из макросов учтены, а только "нормальные", по if=1".

Re: Внешний АЦП ADS1115 + патч флоукод

СообщениеДобавлено: 11 сен 2018, 05:12
Андрей
в стандартном компоненте когда подходит момент проверки ACK ответа от устройства - стоит цикл while, в котором программа крутится пока ответ не придет, а если устройства нет на линии то получаем "зависание". Дмитрий добавил в цикл ожидания ответа счетчик с паузой, таким образом если ответ от устройства не получен то через заданное время 50-200мкс программа выйдет из этого цикла и ack=1 будет говорить о том что устройство не ответило.

Re: Внешний АЦП ADS1115 + патч флоукод

СообщениеДобавлено: 11 сен 2018, 08:17
DmitryAnarhist
Да, всё именно так как и сказал Андрей.
Изменён цикл в четырёх местах кода, вот картинка:
Замена цикла.jpg

Так же есть возможность изменения предделителя шины:
Установка частоты.jpg

И в софтовом варианте частота меняется изменением задержки:
Софтверная частота.jpg

Задержку после стоп, оставил закомментированной, никакого влияния на работу на всех частотах шины от этой задержки не обнаружилось, тут уже вопрос к подключаемым устройствам, если какой-то из датчиков без неё не заработает, можно вернуть, вот она:
Задержка после стопа.jpg