Например TDA7294

Форум РадиоКот • Просмотр темы - Не корректная работа I2C на F103C6T6A (INA219)
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Сб апр 27, 2024 19:29:11

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


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



Начать новую тему Ответить на тему  [ Сообщений: 19 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Сб янв 14, 2023 00:09:25 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Пт фев 13, 2009 20:58:13
Сообщений: 601
Откуда: Донецк
Рейтинг сообщения: 0
Друзья, прошу помощи.
Делаю "показометр" Вольт-Амперметр для ЛБП. Вернее уже сделал. Но есть нюанс...
Суть - замер тока через INA219
Изначально программу писал под F103C8T6 (синяя таблетка), саму плату развёл и заказал отдельно чипы C6T6A с Али. Они самые дешёвые и по "начинке" мне максимально подходят.
Так вот, на С6Т6А нормально не обнуляются показания амперметра при отсутствии нагрузки, при напряжении на выходе ЛБП больше 10 Вольт (примерно) появляется 1, а дальше и 2-3 мА. Хотя на С8Т6 и даже на F401CCU6 - всё работает отлично!
Чипы 99.9% оригинальные. Распаял в две платы, думал брак в микросхеме INA219 - нет, "погрешность" всё равно вылезает.
Сам замер +/- точный. В холостую только проявляются симптомы.
Шунт 0,01 Ом.
Пробовал его замыкать, пробовал замыкать токоизмерительные ноги на микросхеме - не помогает, не обнуляется.
Так же, замечен "накопительный эффект": если подключить нагрузку на несколько минут, а потом снять её - "холостых" миллиамепр становится больше. 4-5-6 мА ...
Использую связку Куб_МХ 6.5.0 и Кеил 5.36
Неужели проблема именно в чипах СТМ?

PS. заливал проекты созданные кубом как для С6Т6А, так и для С8Е6 - эффекту ноль.
Основная программа и библиотеки - для всех чипов, что я пробовал - просто копировал, то есть они одинаковые и не в них проблема (скорее всего).

PS2. так же на шине I2C висит дисплей LCD1602 - работает корректно. Пробовал стандартную и "быструю" частоту шины - нет результата.

PS3. Работает от встроенного генератора частоты. При тестах других чипов - так же использовал встроенный генератор.

_________________
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Сб янв 14, 2023 00:32:59 
Друг Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 1329
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 10548
Рейтинг сообщения: 0
совершенно непонятно, причём тут некорректная работа и2ц

_________________
добавь radiokot.ru##.tablebg > tbody > tr:has(td>a[href*="?f=17"]) в адблок, сделай форум чище!
"Э-э-э-хей... растёт правосознание!"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Сб янв 14, 2023 09:39:14 
Опытный кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 160
Зарегистрирован: Ср авг 03, 2022 05:22:56
Сообщений: 848
Рейтинг сообщения: 0
Если есть сомнения в работе I2C, подключите логический анализатор и проверьте приходящие и отправляемые байты напрямую анализатором с шины. По этим результатам уже и будет видно, где искать дальше.


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Сб янв 14, 2023 12:57:40 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Пт фев 13, 2009 20:58:13
Сообщений: 601
Откуда: Донецк
Рейтинг сообщения: 0
MLX90640, огромное спасибо за наводку. Давно купил анализатор, даже из пакетика не вынимал))) Вот пригодился.
Итак, опыта в анализе данных анализатора у меня практически нет, есть только общие знания.
Что имеем. Начну с девайса, где стоит "адекватно себя ведущий F103C8T6":
СпойлерЗапрос:Изображение
Ответ, когда нет нагрузки: Изображение

Запрос при токе около 0,45А: Изображение
Ответ при токе 0,45А: Изображение

Теперь F103C6T6A
СпойлерЗапрос без нагрузки (на показометре 4 мА): Изображение
Ответ без нагрузки (на показометре 4 мА): Изображение

Запрос при токе около 0,45А: Изображение
Ответ при токе 0,45А: Изображение


Собственно, что разнится:
Изображение

Тот "пик", что я выделил знаком вопроса - всего 250 нс согласно анализатору.

В обоих устройствах стоят подтягивающие резисторы на шине - по 10кОм + по 10кОм в плате-переходнике на дисплей. Итого пусть 5к.

_________________
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Сб янв 14, 2023 22:42:33 
Опытный кот

Карма: 5
Рейтинг сообщений: 132
Зарегистрирован: Пн май 01, 2017 20:01:45
Сообщений: 773
Рейтинг сообщения: 0
DataLife, я бы мог долго и нудно объяснять, почему не стоит использовать F1 и ее аппаратный I2C, но вы всё это проигнорируете. Посему кратко - поставьте программный I2C (ногодрыг), можете на тех-же ногах.
В следующий раз лучше использовать процессоры, где эти проблемы уже исправлены. Недавно взял G030, пока только положительные впечатления, особенно понравилось потребление и бережное отношение к "ногам".


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Сб янв 14, 2023 22:54:39 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2525
Рейтинг сообщения: 3
почему не стоит использовать F1 и ее аппаратный I2C

И почему же? Вот честно!
Почему у меня работает? Может, потому что я внимательно прочитал мануал и эррату?

DataLife, код в строгом соответствии с алгоритмом из мануала? Нет проблем с другой периферией, описанных в эррате?
Вот, например, мой простенький i2cscan: сканирует шину и позволяет читать/писать. Только если будешь брать код, там у меня ошибка в I2Cscan: нельзя i2c_7bit_send(NULL, 0), это может привести к ошибке в устройстве (и оно "подвесит" шину). Правильней — как здесь: просто без адресации попытаться 1 байт считать.
Да, если в F103 сделать работу с I2C через DMA, должно быть меньше проблем, чем блокирующие вызовы использовать. Правда, всю преамбулу все равно придется ручками дергать (как у меня для G0).

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Вс янв 15, 2023 00:10:12 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Пт фев 13, 2009 20:58:13
Сообщений: 601
Откуда: Донецк
Рейтинг сообщения: 0
u37, читал, что в серии F1 интерфейс I2C реализован криво, но я шёл по пути наименьшего потребления денег. Брал дешёвый МК. Попробую программный I2C, спасибо.
По поводу МК - G030 имеет всего один АЦП, мне нужно два. с ДМА я ещё не подружился, чтобы опрашивать каналы. И, например, этот G030 имеет другую распиновку (хоть и действительно лучшую, чем у других, всего один вход питания). У меня уже есть десяток плат с разводкой под типичный F103C8T6. На будущее - задумаюсь, спасибо.

Вероятно, я как начинающий в этом всём - писал на всем нелюбимом HAL... Именно для I2C использовал библиотеку Adafruit_INA219.

Eddy_Em, спасибо за ссылки на библиотеки и решения. Пока план действий на будущее накидал. Буду пробовать!

_________________
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Вс янв 15, 2023 00:33:09 
Опытный кот

Карма: 5
Рейтинг сообщений: 132
Зарегистрирован: Пн май 01, 2017 20:01:45
Сообщений: 773
Рейтинг сообщения: 0
"один АЦП, мне нужно два"
Можно поинтересоваться, в чем выражается эта нужда?

И по INA219. Я использовал INA226. Диапазон и результирующий уровень шума соответствует документации. С ним появляется другая проблема - как найти адекватный шунт. ))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Вс янв 15, 2023 00:37:08 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2525
Рейтинг сообщения: 0
DataLife, вы хочите DMA? Их есть у меня!
А вот так в массиве из девяти последних значений берется медиана и выдается пользователю.
Но, конечно, F103 — самый убогий блин из арсенала STM32.

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Вс янв 15, 2023 00:46:30 
Друг Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 1329
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 10548
Рейтинг сообщения: 2
Вся кривизна описана в еррата. Её и надо читать. Остальная кривизна - в голове и руках "писателей" и читателей. Все тупо копируют софтовый, потому что кто-то где-то когда-то не смог аппаратный запустить и расплакался об этом на весь интернет...

_________________
добавь radiokot.ru##.tablebg > tbody > tr:has(td>a[href*="?f=17"]) в адблок, сделай форум чище!
"Э-э-э-хей... растёт правосознание!"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Вс янв 15, 2023 08:57:20 
Прорезались зубы

Карма: -10
Рейтинг сообщений: -30
Зарегистрирован: Пн окт 04, 2010 11:55:41
Сообщений: 218
Рейтинг сообщения: 0
Имел дело плотно с ina226, но с AVR. По своему опыту выкини Адафрутовскую библиотеку, и напиши свою. Проблема мне кажется вся в этом, а не i2c мк stm32f103. Мог бы и портянку свою выложить, что там делаешь, не думаю что там такой уж серьезный проект, люди давно б уже сказали в чем ошибся.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Вс янв 15, 2023 17:44:39 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Пт фев 13, 2009 20:58:13
Сообщений: 601
Откуда: Донецк
Рейтинг сообщения: 0
neid, я бы свалил всю вину на библиотеку или тот же HAL, но на F103C8T6 и F401CCU6 - работает. А именно на F103C6T6A - нет.
u37, как я говорил - я ещё очень на Вы с ДМА... Знаю, что штука нужная, полезная то сё, но пока и нужды в ней не было и времени осваивать. Всему своё время, наверное. У меня просто два места, где нужно замерять напряжение (непосредственно для "показометра" и температура радиатора), поэтому и два АЦП. На моём уровне знаний - мне так проще.

Сейчас жду новый паяльный фен, перепаяю из одной синей пилюли F103C8T6 и заменю на F103C6T6A - попробую записать от внешнего кварца с платы. Может что-то прояснится. Может у меня где-то косяк в разводке самого питания МК, хотя всё по ДатаШиту и по образу и подобию плат типа блуПил.

ЗЫ. попробовал уменьшить подтягивающие резисторы на SDA/SCL до 1к - не помогло.

_________________
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Вс янв 15, 2023 18:30:41 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2525
Рейтинг сообщения: 0
DataLife, возможна ситуация, что на восьмерке чудом обошлось, а на шестерке конкретный баг и выполз.
Первый шаг: выкинуть кал и пользоваться только заголовочными файлами от CMSIS. Второй шаг: либо тщательно проверить адафрутовскую библиотеку, либо тоже выкинуть. Я, кстати, было дело, находил в адафрутовских баги и просто мелкие косяки. А оно и понятно: любой продукт с претензией на универсальность априори будет тормозным и дырявым.

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Вс янв 15, 2023 18:38:43 
Друг Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 1329
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 10548
Рейтинг сообщения: 0
И третий шаг - подцепить заведомо исправную еепромку и посмотреть обмен с ней.

_________________
добавь radiokot.ru##.tablebg > tbody > tr:has(td>a[href*="?f=17"]) в адблок, сделай форум чище!
"Э-э-э-хей... растёт правосознание!"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Вс янв 15, 2023 20:17:51 
Потрогал лапой паяльник

Карма: 5
Рейтинг сообщений: 44
Зарегистрирован: Ср янв 04, 2012 11:57:40
Сообщений: 394
Откуда: Алчевск
Рейтинг сообщения: 0
DataLife - У одного АЦП есть несколько (8-19) каналов. Не обязательно использовать отдельные АЦП. Однажды написал функцию опроса каналов с ДМА и долго пользовал пока Eddy_Em не подкинул медианный фильтр. Теперь все стало еще красивее. Иногда единица в младшем разряде появляется из-за прогрева. А так при комнатной температуре отстраиваю с точностью 0.1%. Для ЛБП вполне хватает.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Вс янв 15, 2023 21:01:48 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Пт фев 13, 2009 20:58:13
Сообщений: 601
Откуда: Донецк
Рейтинг сообщения: 0
Eddy_Em, прошерстил всю библиотеку Адафрута: лично у меня нет к ней претензий, всё реализовано очень понятно и просто. Через HAL_I2C_Mem_Write/Read. Тут реально какой-то внутренний косяк на шине.
Пока это писал, пришла в голову идея повесить на шину вообще другой дисплей (ну мало ли). Есть SSD1306 под рукой. Хотя снова... на C8T6 даже с LCD1602 нет проблем ... :evil:

Sergi, да, знаю. Но вот с ДМА нужно подружиться. Вижу, что неизбежно в обозримом будущем придётся... Спасибо.

PS. так как ооочень не хочется перепаивать МК в уже "работающей" плате, то ищу выходы. А что если таки реализовать обмен данными с INA219 через ДМА? Может уйдёт косяк (Eddy_Em, ещё раз спасибо за мысли). В еррате вроде пишут, что может помочь... И для меня некое обучение с прикладным моментом будет.

Правильно я понимаю суть? Вместо HAL_I2C_Mem_Read, которая возвращает значение некой переменной, я вставляю HAL_I2C_Master_Receive_DMA, которая так же это делает, а о готовности я смотрю в колбэк и забираю данные, ставлю флаги и тп...

Но что-то не пойму... Мне нужно забирать данные из регистра, который имеет адрес... Кароче обычно идёт обращение к устройству Адрес устройства - Адрес памяти.... А в функции ДМА только адрес устройства:
Код:
HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA (I2C_HandleTypeDef* hi2c, uint16_t DevAddress, uint8_t* pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA (I2C_HandleTypeDef* hi2c, uint16_t DevAddress, uint8_t* pData, uint16_t Size);
Или я что-то не так понимаю?

UPD: нашёл HAL_I2C_Mem_Read_DMA :hunger: ... но простая замена функции на *_DMA не помогла и вообще теперь на шине - тишина ...

_________________
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Пт фев 03, 2023 19:05:50 
Родился

Зарегистрирован: Вс янв 18, 2009 20:30:00
Сообщений: 9
Рейтинг сообщения: 0
решилась проблема?
в сети полно жалоб на F103C6T6A с али, то одно не работает,то другое.
может все таки перемаркировка какого нибудь GD?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Пт фев 03, 2023 19:35:08 
Друг Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 1329
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 10548
Рейтинг сообщения: 0
А что, у GigaDevice то одно не работает, то другое? набрали отбраковки на помойке вот и вся проблема.

_________________
добавь radiokot.ru##.tablebg > tbody > tr:has(td>a[href*="?f=17"]) в адблок, сделай форум чище!
"Э-э-э-хей... растёт правосознание!"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не корректная работа I2C на F103C6T6A (INA219)
СообщениеДобавлено: Вс фев 25, 2024 16:36:13 
Встал на лапы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 128
Рейтинг сообщения: 0
DataLife писал(а):
нормально не обнуляются показания амперметра при отсутствии нагрузки
Сейчас на руках 5 модулей INA226, 2 из одной партии, 3 из другой.
По классификации из "популярной" статьи "INA226 хорошие и плохие", то 2 "хорошие" и 3 "плохие"..
Таки вот:
"хорошие" модули: ампераж при отсутствии нагрузки не обнуляется, постоянно скачут цифры.
А "полохие" почти в нулях.


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

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


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

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


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

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


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