Например TDA7294

Форум РадиоКот • Просмотр темы - ADS1115_ATMEGA8 Не работают последовательно каналы измерений
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вс апр 28, 2024 14:58:04

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 19 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: ADS1115_ATMEGA8 Не работают последовательно каналы измерений
СообщениеДобавлено: Сб фев 24, 2024 15:22:13 
Родился

Зарегистрирован: Сб фев 24, 2024 15:03:17
Сообщений: 7
Рейтинг сообщения: 0
Добрый день.
Уважаемые КОТы, помогите разобраться. Необходимо последовательно снять с сигнал с 2-х каналов микросхемки. если запускаешь один канал измернений (к примеру А0), то все четко снимает, точность поражает...а вот если снимаешь последовательно с нескольких каналов (например А0 потом А1) относительно GND, то показания выводит с последнего съема причем на оба канала... какой вторым поставишь , такой и будет... уже голову сломал, вроде все делаю по даташнику ... во вложении помещаю свой код. что я делаю неверно? Прикладные библиотеки управления индикаторами и I2C выкладывать нет смысла, они написаны по стандартному протоколу...


Вложения:
main.c [1.64 KiB]
Скачиваний: 15
main.c [1.64 KiB]
Скачиваний: 11
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Сб фев 24, 2024 19:04:02 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2809
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18105
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
а подождать, пока закончится преобразование - это тебя не касается?
только запустил преобразование, и тут же пытаешься прочитать результат.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Сб фев 24, 2024 19:26:08 
Родился

Зарегистрирован: Сб фев 24, 2024 15:03:17
Сообщений: 7
Рейтинг сообщения: 0
Вводил и ожидание до 100 млСек... Безрезультатно. Снял осцилограмы с даталинии, 3-й байт отличается от 12, значит конфигурационный байт отправляется корректно. К тому же ответка тоже отличается 8-9 байты отличаются от 17-18. если закомментировать одну из этих строчек

AMPERAGE = ADS1115(0) * 10;

VOLTAGE = ADS1115(1) * 2;
то все как и должно быть, преобразования происходят. Все отображается но только один параметр, а вот 2 последовательно не хотят... отображения последнего происходят...
Я тут внимательно просмотрел даташник, я совсем забыл за тайминг свичей мультиплексора... хотя там не сказано какой тайминг конкретно, но его то я не учел, вероятно поэтому последнее измерение и работает, так как после последнего обращения идет большая пауза и у мультиплексора есть время переключится а вот на первое обращение в стеке для переключения времени как раз и не хватает...на измерение нужно всего 8 мкСек они там есть(смотрел осликом... даже больше). Спасибо что намекнули на тайминги.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Сб фев 24, 2024 20:15:55 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 302
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1226
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Не прерывайте I2c (I2C_Stop();) между командами.
Код:
    ...
    I2C_SendByte(0b10000011); //младший конфигурационный байт
->  I2C_Stop();

    I2C_Start();
    I2C_SendByte(0b10010000);
    I2C_SendByte(0b00000000);
    I2C_Stop();
    ...

Попробуйте. Фрагмент кода ниже: из вашего кода. Не искал каких-либо несоответствий в данных.
Однако добавьте и время на преобразование.
Код:
if (adress == 1)
   {
      I2C_Start();
      I2C_SendByte(0b10010000);// передаем адрес устройства и бит записи
      I2C_SendByte(0b00000001);// address pointer register определяем передачу конфигурационных регистров.
      I2C_SendByte(0b11010101);//старший конфиг байт
      I2C_SendByte(0b10000011); //младший конфигурационный байт
      I2C_Stop();

      I2C_Start();
      I2C_SendByte(0b10010000);
      I2C_SendByte(0b00000000);
      I2C_Start();
      I2C_SendByte(0b10010001);
      x1 = I2C_ReadByte();//считывание старщего байта с АЦП
      x2 = I2C_ReadLastByte();
      I2C_Stop();
   }

Ссылка: https://www.ccsinfo.com/forum/viewtopic.php?t=56983
Код:
   i2c_start();   // Configuration of registers
   i2c_write(address);//address of device last bit R/W read=1 write=0
   i2c_write(0x01);//address point Register 0x1
   i2c_write(0x80);//Config register MSB 3rd bit 0- 0x80
   i2c_write(0x83);//Config register LSB - 0x83
   i2c_stop();
   delay_ms(130);

   i2c_start();
   i2c_write(address);//address of device R/W
   i2c_write(0x00);// 0x00
   i2c_start();
   i2c_write(address | 1); //0x91
   msb=i2c_read();
   lsb=i2c_read(0);
   i2c_stop();


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Сб фев 24, 2024 20:41:05 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2809
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18105
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
Витаха писал(а):
на измерение нужно всего 8 мкСек
где ты такое нашел?
Витаха писал(а):
Вводил и ожидание до 100 млСек... Безрезультатно.
без ожидания окончания преобразования точно будет безрезультатно.

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


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Сб фев 24, 2024 20:48:10 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 302
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1226
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Цитата:
The ADS111x offer programmable output data rates. Use the DR[2:0] bits in the Config register to select output
data rates of 8 SPS, 16 SPS, 32 SPS, 64 SPS, 128 SPS, 250 SPS, 475 SPS, or 860 SPS.
Conversions in the ADS111x settle within a single cycle; thus, the conversion time is equal to 1 / DR.

Да, и время относительно велико.
SPS - samples per second


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Сб фев 24, 2024 21:00:48 
Родился

Зарегистрирован: Сб фев 24, 2024 15:03:17
Сообщений: 7
Рейтинг сообщения: 0
veso74 писал(а):
где ты такое нашел?

Даташник стр 19

Добавлено after 5 minutes 35 seconds:
veso74 писал(а):
Да, и время относительно велико.
SPS - samples per second
Цитата:
The ADS111x offer programmable output data rates. Use the DR[2:0] bits in the Config register to select output
data rates of 8 SPS, 16 SPS, 32 SPS, 64 SPS, 128 SPS, 250 SPS, 475 SPS, or 860 SPS.
Conversions in the ADS111x settle within a single cycle; thus, the conversion time is equal to 1 / DR.

Да, и время относительно велико.
SPS - samples per second

Я использую 64 измерения в секунду, это и визуально комфортно, и точность на приемлемом уровне

Добавлено after 2 minutes 16 seconds:
Re: ADS1115_ATMEGA8 Не работают последовательно каналы измерений
Парни, спасибо, что откликнулись. Я тут человек новый, еще не сориентировался с интерфейсом форума. Попробую тайминги проставить. Надеюсь поможет.

Добавлено after 2 minutes 2 seconds:
Re: ADS1115_ATMEGA8 Не работают последовательно каналы измерений
Кстати, прерывания в даташнике опять же, я все делаю по даташиту(во всяком случае стараюсь) Там есть диаграммы чтения и записи, я по ним писал.


Вложения:
Безымянный.jpg [42.08 KiB]
Скачиваний: 17
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Сб фев 24, 2024 21:18:55 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2809
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18105
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
Витаха писал(а):
Даташник стр 19
это длительность сигнала ALERT/RDY, а не время преобразования.
veso74 писал(а):
the conversion time is equal to 1 / DR.
для твоих 64 измерений в секунду время преобразования равно 1 / 64 = 0,015625 сек, или 15,625 мсек.

Добавлено after 11 minutes 18 seconds:
Re: ADS1115_ATMEGA8 Не работают последовательно каналы измерений
да, и я в твоем тексте вижу 128 SPS, а не 64.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Сб фев 24, 2024 21:22:33 
Родился

Зарегистрирован: Сб фев 24, 2024 15:03:17
Сообщений: 7
Рейтинг сообщения: 0
Да, спасибо, уже прочитал. а "в моем случае" то я экспериментировал. Вообще я использую 64. Значит поставлю 20 млСек. Надеюсь не очень сильно отобразится на скорости... Либо увеличу скорость...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Вс фев 25, 2024 08:01:35 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2809
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18105
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
у тебя прерывание таймера по переполнению происходит гораздо чаще, чем длится одно измерение. а в прерывании должно пройти 2 измерения.
если на одно измерение сделать задержку 20 мс, то, с запасом, нужно прерывание таймера сделать через 50 мс.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Вс фев 25, 2024 13:44:01 
Родился

Зарегистрирован: Сб фев 24, 2024 15:03:17
Сообщений: 7
Рейтинг сообщения: 0
Парни, всем спасибо за участие, все получилось... Правда почему-то заработало при 64 Гц опросе задержка 80 млСек, глянул на осциллограмму и прослезился. Там сплошные пропуски. Видимо прерывания семисегментника накладываются на прерывания по 16-ти битному таймеру плюс задержки , и таймера срывают I2c передачу. видимо придется ставить 2 МК один чтоб рулил семисегментниками в режиме слейва, и по I2C принимал циферки, которые нужно выводить и тогда все будет гуд.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Вс фев 25, 2024 14:04:22 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 302
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1226
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Вариант: подключите семисегментные индикаторы к TM1637, MAX7219 и т.п.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Вс фев 25, 2024 14:44:27 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2809
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18105
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
Витаха, у тебя пока не закончит работу прерывание по TIMER1_OVF, никакое прерывание для семисегментника не начнется. вот и имеешь большие пропуски.
не в обиду будет сказано, но твой код называется говнокод.
и от себя добавлю - не просто, а в квадрате.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Пн фев 26, 2024 08:59:25 
Родился

Зарегистрирован: Сб фев 24, 2024 15:03:17
Сообщений: 7
Рейтинг сообщения: 0
Витаха, у тебя пока не закончит работу прерывание по TIMER1_OVF, никакое прерывание для семисегментника не начнется. вот и имеешь большие пропуски.
не в обиду будет сказано, но твой код называется говнокод.
и от себя добавлю - не просто, а в квадрате.

Я это понимаю, я только начал освоение микроконтроллеров, это , можно сказать, мое четвертое устройство. Но я научусь. Разберусь обязательно. До этого я 30 лет не писал программы, и с Си столкнулся впервые. еще год назад для меня микроконтроллер это была магия... сейчас я погряз по уши в ЮАРТ СПАЙ, И2С, таймеры, прерывания и т д... Это очень мне интересно))))

На Счет ТМ1637, и МAXIM, хорошие микросхемы, но их нужно покупать, ТМ1637 не подходит, она максимум для 6 разрядов, проще подключить к отдельному МК, коих у меня лежат сейчас в загашнике(Закупился при случае подешевке). И по тойже И2С передавать. теперь вопрос , как сделать чтоб вторая мега была слейвом? Буду разбираться. Спасибо всем, теперь я знаю немного больше...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Вт фев 27, 2024 11:29:33 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2809
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18105
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
Витаха, чтобы МК мог делать другую работу (например, обрабатывать индикацию), нельзя в прерывании таймера ждать окончания всех преобразований по АЦП.
в моих изделиях в прерывании таймера сначала читается результат преобразования по одному каналу и потом запускается преобразование по другому каналу.
понятно, что интервал таймера должен превышать время преобразования, чтобы к следующему прерыванию преобразование гарантированно закончилось.
но для этого нужна переменная, которая определяет очередность каналов, и нужно в main после всей инициализации запустить преобразование первого канала.
в прерывании после чтения результата изменяем переменную, определяющую номер канала, результат которого нужно считывать, и запускаем преобразование с другим номером канала.
таким образом, прерывание от таймера работает короткое время, и не мешает другой работе, в том числе такой, как своевременное обслуживание индикации.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Ср фев 28, 2024 12:21:41 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6628
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
ещё добавлю, если не хочется, чтобы прерывание индикации помешали критичному процессу (например передаче данных) - можно этот процесс начинать сразу за переключением индикатора - тогда на передачу будет гарантированный кусок свободного от прерываний таймера времени...

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


можно, конечно и прерывания отключать, но мигающий экран - зрелище неэстетичное

сам когда делаю устройства с дин. индикацией - эту самую индикацию и использую как арбитр процессов

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Вт мар 12, 2024 12:28:21 
Родился

Зарегистрирован: Сб фев 24, 2024 15:03:17
Сообщений: 7
Рейтинг сообщения: 0
Все сделал. За динамическую индикацию отвечает один камушек(закупился на али по дешевке), за ацп другой. все нормально работает, все успевает... Всем спасибо за участие. Ребята, вы очень помогли. я только в начале пути освоения микроконтроллеров....


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Ср мар 13, 2024 09:25:01 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2809
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18105
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
понятно, моя подсказка впрок не пошла.
а это всё легко делается на одном камушке...

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ADS1115_ATMEGA8 Не работают последовательно каналы измер
СообщениеДобавлено: Сб мар 30, 2024 07:48:03 
Друг Кота

Карма: 21
Рейтинг сообщений: 11
Зарегистрирован: Пт янв 12, 2007 11:21:39
Сообщений: 13368
Откуда: Томск
Рейтинг сообщения: 0
Вообще любая программа для МК без ос включает обычно минимум две части: источники событий и цикл обработки событий.

Источники событий это обычно то, что делается в прерываниях, а обработчики - в фоновом цикле.

Это позволяет очень сильно разгрузить прерывания.

И уж точно делать обмен по i2c или spi с ожиданием в прерывании не стоит.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 19 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y