• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Решено ESP8266+ADS1256

nikolz

Well-known member
добрый день,всем!
Подключил ADS1256 к eSP по HSPI.
Проблема в том что реально работает лишь чтение данных.
ADS работает на настройках по умолчанию с частотой 30 кгц и по 1-му каналу.
Данные читаю в колбеке по отрицательному фронту DRDY командами:
spi_tx8(HSPI,RDATA); //команда "чтение"
*dummy=spi_rx24(HSPI); //читать 24 бита
----------------------------
CS ADS Всегда активен.
---------------------------------------------
Все остальные команды практически не дают результата,
а чтение внутренних регистров дает 255.
------------------------------------
Изменение частоты SLK HSPI от 2 до 1 мгц ничего не дает
Установка задержки после команды в 5-10 мкс ничего не дает.
------------------------------------
Буду признателен за подсказки по решению данной проблемы.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Правильно установите SPI MODE (0,1,2,3):

У ADS1256 защелкивание данных производится по спаду сигнала CLK:
ADS1256-SPI.gif
Пример управления установками HSPI -> esp8266web/hspi_master.c at master · pvvx/esp8266web · GitHub
В вашей библиотеке, если это GitHub - MetalPhreak/ESP8266_SPI_Driver: Driver code to interface with ESP8266 built-in hardware SPI functions., нет установок режимов работы SPI.
 
Последнее редактирование:

nikolz

Well-known member
Правильно установите SPI MODE (0,1,2,3):

У ADS1256 защелкивание данных производится по спаду сигнала CLK:
Посмотреть вложение 5091
Пример управления установками HSPI -> esp8266web/hspi_master.c at master · pvvx/esp8266web · GitHub
В вашей библиотеке, если это GitHub - MetalPhreak/ESP8266_SPI_Driver: Driver code to interface with ESP8266 built-in hardware SPI functions., нет установок режимов работы SPI.
Спаси,за инфу, но в используемой библиотеке есть установка режима HSPI
вот функции инициализации и установки режима я их не написал так как они в user_init а не в колбеке:
spi_init(HSPI);
spi_clock(HSPI,8,5);
spi_mode(HSPI,1,0); //установка режима
-----------------------------------------
Этого не достаточно?
-----------------------------------------------------
Предположительно у меня не работает обращение к регистрам, т е чтение либо запись в них данных.
Команды RDATA WAKEUP,STANDBY работают.
согласно документации я использую ADS с постоянной выборкой CS==1.
Возможно есть какие-то особенности при работе с регистрами.
 

pvvx

Активный участник сообщества
Этого не достаточно?
Осциллограф или лог.анализатор есть? Им проще посмотреть и найти несовпадения с желаемым.
Я уже не помню точно как там ведет себя SPI ESP...(нужна ли инверсия CPHA при смене CPOL у него)... Но согласно стандартным CPOL и CPHA выходят такие картинки:
ESP8266_SPI_Driver/spi.c at master · MetalPhreak/ESP8266_SPI_Driver · GitHub

Так-же у данного ADC надо учитывать t6 Delay from last SCLK edge for DIN to first SCLK rising edge for DOUT: RDATA, RDATAC, RREG Commands в 50 клоков тактовой...
Вы же своего примера кода не даете и понять ничего невозможно - будут одни гадания...
 

nikolz

Well-known member
Написал библиотеку ADS1256 под ESP на C.
Тема закрыта.
 
Последнее редактирование:
Сверху Снизу