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

Плата АЦП AD7705/TM7705, двойная 16-битная, SPI

Добавлено: 14 янв 2023, 07:39
tol123
Хотел использовать с esp modemcu этот ацп AD7705, но сходу не все получилось легко или не получилось. В сериал выводит
v1 = TM7705.readADResult(AD770X::CHN_AIN1, 0.0); ----это настройки в файле менял
1,2 вольт подавал на AIN2
#32: CH1: 1.24985 CH2: 1.24985
#33: CH1: -1.23814 CH2: -1.23814
#34: CH1: -0.02655 CH2: -0.02655
AD770X::BIPOLAR, AD770X::GAIN_2,


AD770X::UNIPOLAR, AD770X::GAIN_2----это настройки в файле менял
1,2 вольт подавал на AIN2
#39: CH1: -1.23627 CH2: -1.23627
#40: CH1: 1.19736 CH2: 1.19736
5 вольт подавал на AIN2
#60: CH1: -1.25000 CH2: -1.25000
#61: CH1: 1.24996 CH2: 1.24996

экспериментировать дальше ... непонятно что дальше делать и какие настройки брать.
использовал файлы из https://github.com/benjaminzhao/ESP8266_AD7705_DEMO
есть пояснения автора библиотеки для ардуино http://www.kerrywong.com/2011/03/20/ad7 ... 6-library/
http://www.kerrywong.com/2012/04/18/ad7 ... revisited/
но как это прикрутить к ESP непонятно, или все сделано и только стоит что-то понять и изменить в имеющемся примере.


есть код для ESP32:
https://github.com/backfromearth/ESP32- ... h-channels
и его видео https://youtu.be/aiB5vV6C6PI
Если кто разобрался с ним, то просим помочь получить с датчика напряжение.

Плата АЦП AD7705/TM7705, двойная 16-битная, SPI

Добавлено: 14 янв 2023, 16:58
hallozin1
Делал давно , но работает)

Плата АЦП AD7705/TM7705, двойная 16-битная, SPI

Добавлено: 15 янв 2023, 09:32
Sanok
Пойдёт термопару мерить?

Плата АЦП AD7705/TM7705, двойная 16-битная, SPI

Добавлено: 15 янв 2023, 10:04
tema
[quote=Sanok post_id=120210 time=1673764329 user_id=14750]
Пойдёт термопару мерить?

тоже интерисует

Плата АЦП AD7705/TM7705, двойная 16-битная, SPI

Добавлено: 15 янв 2023, 10:17
hallozin1
Напрямую нет

Плата АЦП AD7705/TM7705, двойная 16-битная, SPI

Добавлено: 16 янв 2023, 10:02
tol123
Если этот блок использовать как есть, то показывает 0,61 В на батарейке в 1,2 В, при измерении на одном выводе. Поэтому умножал на 2 или 2000 (если надо получить миливольты)
Добавил в функцию

Код: Выделить всё

      double VRef =   2.5 ; // из библиотеки берется 2,5. 
// return (readADResult(channel) - 32768)   / 32768.0 * VRef * 2; //И если это все *2, то получим вольты 1,22 В при измерении батарейки в 1,2 вольт
// return (readADResult(channel) - 32768)   / 32768.0 * VRef * 2000; //И если это все *2000, то получим милливольты 1221 мВ при измерении батарейки в 1,2 вольт
      return (readADResult(channel) - 32768)   / 32768.0 * VRef * 2000;
Если не объединять выводы, то мерит до 1,225 вольт на батарейке 1,2 вольта
Если объединять выводы, то мерит до 4,225 вольт на батарейке 4,2 вольта.
Пока не понял сколько максимально можно подать на вывод. при том или ином варианте. Не охота спалить модуль.

Плата АЦП AD7705/TM7705, двойная 16-битная, SPI

Добавлено: 16 янв 2023, 11:41
hallozin1
tol123 писал(а): 16 янв 2023, 10:02 Если этот блок использовать как есть, то показывает 0,61 В на батарейке в 1,2 В, при измерении на одном выводе. Поэтому умножал на 2 или 2000 (если надо получить миливольты)
Добавил в функцию

Код: Выделить всё

      double VRef =   2.5 ; // из библиотеки берется 2,5. 
// return (readADResult(channel) - 32768)   / 32768.0 * VRef * 2; //И если это все *2, то получим вольты 1,22 В при измерении батарейки в 1,2 вольт
// return (readADResult(channel) - 32768)   / 32768.0 * VRef * 2000; //И если это все *2000, то получим милливольты 1221 мВ при измерении батарейки в 1,2 вольт
      return (readADResult(channel) - 32768)   / 32768.0 * VRef * 2000;
Если не объединять выводы, то мерит до 1,225 вольт на батарейке 1,2 вольта
Если объединять выводы, то мерит до 4,225 вольт на батарейке 4,2 вольта.
Пока не понял сколько максимально можно подать на вывод. при том или ином варианте. Не охота спалить модуль.
в настройках блока вместо 2,5 поставь 5
подавать 5v можно на каждый вход

Re: Плата АЦП AD7705/TM7705, двойная 16-битная, SPI

Добавлено: 21 мар 2025, 10:10
SSSR2000
Пробую Ваш блок подружить с STM32H743, подключаю SPI0 (miso PB14, mosi PB15, sck PB13), в esp hclk - D5, hmiso - D6, hmosi - D7, hcs - D8, drdy - D1, соответственно в stm PB14 - hmiso, PB15 - hmosi, PB13 - hclk, а вот hcs и drdy каким образом подсоеденить чтобы работал Ваш блок AD7705.flp?

Re: Плата АЦП AD7705/TM7705, двойная 16-битная, SPI

Добавлено: 22 мар 2025, 02:52
tol123
Не знаю.

hcs - Выбор чипа (CS).
drdy - Готовность данных (DRDY).

Где можно задать пины?
Использует SPI-интерфейс:
MOSI – передача данных к АЦП
MISO – получение данных от АЦП
SCLK – тактовый сигнал
CS (Chip Select) – выбор микросхемы
DRDY (Data Ready) – сигнал готовности данных.

В начале скетча наверно, не проверял (глобально):
#define HCLK 13 // PB13
#define HMISO 14 // PB14
#define HMOSI 15 // PB15
#define HCS 8 // CS (Chip Select)
#define DRDY 1 // Data Ready

А почему STM32H743 разве не сможет измерить, то что вы хотите измерить с помощью AD7705/TM7705?

Можно передавать с микроконтроллера esp8266 (на котором проверено работает) по юарт. Так быстрее наверное выйдет.

Re: Плата АЦП AD7705/TM7705, двойная 16-битная, SPI

Добавлено: 22 мар 2025, 04:45
fefar51702
Ну да согласен на стм ацп покруче будет тысяч 7 раз быстрее чем-то внешка только проблемы использовать её вам придётся делать блок для ацп посредством кубы MX составить код и впихать в флпрог
А я в своё время Давненько предлагал реализовать нечто подобное из Кубы MX редактор написания кода в flprog но у нас как обычно в росии партия спросила что будем развивать дальше большинство проголосовало за СТМ и партия начала развивать ESP ...

Re: Плата АЦП AD7705/TM7705, двойная 16-битная, SPI

Добавлено: 22 мар 2025, 12:43
SSSR2000
Дело в том , что AD7705 стоит на измерении тока, с шунта снимается напряжение от 0 до 75 милливольт и обрабатывается этой микросхемой, к примеру она стоит в выпрямителях Новиком, расстояние соответственно имеет большое значение, вот поэтому и есть необходимость принимать данные с неё.

Re: Плата АЦП AD7705/TM7705, двойная 16-битная, SPI

Добавлено: 22 мар 2025, 16:39
fefar51702
потомучто у него в блоке прописано фиксировано под есп8266
const int dataReadyPin= 5;
const int chipSelectPin= 15;
пропишите свои пины

в принцыпи то да берутся практически любые ну почти
ток спи то же надо указать в блоке от стм под каким номером походу

я бы взял спи1
SCK == PA5
MISO == PA6
MOSI == PA7
CS == PA4
DRDY == PA3

но там переназначать я не вижу в флпроге как немного неудачный выбор взят на pb на нём же отладка висит но вам оно врядли помешает я свой жетег недоконца освоил так и валяется плата