|
|
![]() ![]() |
|
|
![]() ![]() ![]() ![]() |
|
Опции темы | Поиск в этой теме |
![]() |
![]() ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() ![]() |
![]() |
![]()
Я тоже так думал, а потом допер, что это переключение на замер напруги и обратно все портит (я кстати разрядность програмно пока повышать не пробовал... может еще пару mA выжать удасться). Если не переключать опору, там совсем все гладко. Если дать ему (АЦП) хорошо успокоиться, то мой регулятор держит, только между младшими режимами меедленно так переключается, что даже специально софтстарт делать не надо
![]() Я вот думаю, а АВСел в драйвере v6 вынес делитель не для того ли чтобы опору не переключать? [Исправлено: Tamagotchi, 17.09.2013 в 01:09] |
![]() |
![]() |
![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8162 раз(а) в 2385 сообщениях
|
![]()
Да не в ИОН дело, я же меряю пачками по 512 семплов, из которых 16 холостых. А проблема такая: У АЦП имеется смещение в 35LSB, они вычитаются калибровкой, но проблема в том, что пока ток не доберётся до этих 35LSB - АЦП всегда показывает ноль. Т.е. будто бы я зря произвёл калибровку, вычитав лишние 35LSB, но без них АЦП ведёт себя точно так же, но показывая уже 35LSB, когда на шунте ток соответствует значениям ниже этих 35LSB. Т.е. ниже определённого значения АЦП просто слепнет, и считает что ток упёрся в некий порог, который даже не на нуле. Это похоже на косяки усилителя, он там сволочь оказывается на переключающихся конденсаторах. Накосячить в его архитектуре могли запросто, тем более если в даташите мелькают фразы типа "обычно автоматическая калибровка смещения работает нормально, но всё же приходится дополнительно производить программную коррекцию". Осциллографом я выловил приличные помехи на негативном входе усилителя, если включить его через сопротивление на сотню Ом. Т.е. усилителю требуется очень низкое выходное сопротивление источника сигнала по переменному току. Импульсы похожи на подключения разряженного конденсатора в начале каждого семпла, как если бы сам АЦП подключался к пину, только значительно сильнее. В давташите нет описания структуры усилителя, но за него можно почитать в более взрослых даташитах на какой-нибудь AT90PWM. Я думаю они почти одинаковые...
[Исправлено: INFERION, 17.09.2013 в 01:21] |
![]() |
![]() |
![]() |
![]() ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() ![]() |
|
Ветеран Фонарёвки
Регистрация: 06.03.2013 Последняя активность: 15.08.2024 23:42
Сообщений: 4776
Сказал(а) спасибо: 657
Поблагодарили: 1914 раз(а) в 1180 сообщениях
|
![]()
"Шум" это я неправильно выразился, да, смещения всякие.
Цитата:
50 мА это 23 попугая в младших разрядах. При том держим в уме то, что работу двух младших разрядов сам производитель не гарантирует, итого имеем от силы пять честных попугаев. Какая там стабилизация? |
|
![]() |
![]() |
![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8162 раз(а) в 2385 сообщениях
|
![]()
То что производитель не гарантирует - не значит что там сплошной шлак. Там шум, но шум этот на НЧ вырождается в вполне себе нормальное усреднённое значение. Так что реально попугаи там размножаются до нескольких десятков с нескольких. В других МК (даже в 25-х тиньках) и 4LSB держат ток, только шум заметен.
|
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 06.03.2013 Последняя активность: 15.08.2024 23:42
Сообщений: 4776
Сказал(а) спасибо: 657
Поблагодарили: 1914 раз(а) в 1180 сообщениях
|
![]()
Да попробую я, но не знаю, что выйдет.
|
![]() |
![]() |
![]() |
![]() ![]() |
![]() |
![]()
Стабильная
![]() Ты же уже пробовал внешний усилитель. |
![]() |
![]() |
![]() |
![]() ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 06.03.2013 Последняя активность: 15.08.2024 23:42
Сообщений: 4776
Сказал(а) спасибо: 657
Поблагодарили: 1914 раз(а) в 1180 сообщениях
|
![]()
Оверсемплинг? Его и хотел попробовать.
|
![]() |
![]() |
![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8162 раз(а) в 2385 сообщениях
|
![]()
Ну так с внешним усилителем таких проблем и нет, там другие начинают мешать. Которые мешали и со встроенным - корреляция показаний с заполнением ШИМ, что является следствием плохой развязки сигнальных цепей с цепями питания. Если на новой разводке проблема останется - решу банальным уменьшением индуктивности, позволяющим отодвинуть минимальный ток по-выше...
|
![]() |
![]() |
![]() |
![]() ![]() |
||
Консультант
![]() Регистрация: 15.11.2010 Последняя активность: 27.06.2025 10:19
Сообщений: 7980
Сказал(а) спасибо: 1077
Поблагодарили: 1713 раз(а) в 912 сообщениях
|
![]() Цитата:
Цитата:
Главное, что-бы это дрожание загнать в незаметный для глаза диапазон. А убрать дрожание без гистерезиса наверное никак не получится. Дискретный ШИМ всегда будет промахиваться мимо установленного значения тока. Это когда текущее значение ШИМ - маловато, а текущее значение +1 - слишком велико. |
||
![]() |
![]() |
![]() |
![]() ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8162 раз(а) в 2385 сообщениях
|
![]()
Я сам раньше использовал внешний делитель. Точность в несколько раз выше. Но с передискретизацией точности хватает и так (там шаг что-то около 15мВ, но можно усреднять десятки семплов и получить шаг в пол милливольта), а схема проще и экономичнее. Я за свободными лапами очень и очень сильно гоняюсь. Но без делителя не обойтись в схемах с питанием от нескольких банок, так что этот вариант как минимум универсальнее (и ресурсов меньше жрёт, т.к. не требуется делить константу на показания АЦП для нормализации).
Передискретизация не обязательно выглядит как усреднение блока семплов. Можно каждый такой семпл обрабатывать по отдельности, оно всё равно всё усредниться, как AVSel выразился, вытеснением шума вверх по спектру. Тут самое главное просто сделать максимально возможную частоту диксретизации (31,25кГц у меня, но можно попробовать поднять ещё в 2 раза). Если следящая система не успевает обрабатывать каждый семпл тогда да - складывать вместе по несколько семплов и обрабатывать пачками. Ещё лучше, если понимать что генерирует шум и как с этим можно бороться. К примеру основной шум наводит АЛУ и ШИМ. С ШИМ можно синхронизировать, шум пропадёт. АЛУ можно тушить под конец измерения семпла, младшие биты не всегда будут страдать. Но я использую ещё один приём. Дело в том что показания АЦП хоть и не будут шуметь, но они будут смещаться в зависимости от заполнения ШИМ. Поэтому каждый новый семпл АЦП запускается на такт раньше, и так 32 семпла (потом по кругу). Т.е. запуск измерения как бы скользит по периоду ШИМ и каждые 32 семпла проходит весь период. Это в среднем уменьшает влияние. Да и сам шум при передискретизации полезен, без него она просто не будет работать. С внешними преобразователями, которые вносят немного не коррелированного с тактовой частотой МК шума - результат лучше всего. С родным ШИМ гораздо сложнее... А расширять разрядность ШИМ зря отказываетесь. Эта штука серьёзнее всех влияет на качество, оставаясь при этом самым простым механизмом в программе (и самым прожорливым). В AT90PWM я видел какие-то регистры, куда можно помещать константы для аппаратного 4...16x расширения разрядности. Конечно ерунда, но прилично разгрузить ядро может. Т.е. механизм в специализированных МК пытаются реализовать даже аппаратно... [Исправлено: INFERION, 17.09.2013 в 11:53] |
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 06.03.2013 Последняя активность: 15.08.2024 23:42
Сообщений: 4776
Сказал(а) спасибо: 657
Поблагодарили: 1914 раз(а) в 1180 сообщениях
|
![]()
Я тут подумал... Флеша должно много свободного остаться (на данный момент у меня килобайт всего занят), может для стабилизации по напряжению на нижних режимах тупо применить табличный метод?
Сейчас посмотрю, на сколько мне удастся держать ток по шунту, а всё, что ниже - забить в таблицу, думаю, там не более 256 байт выйдет. |
![]() |
![]() |
![]() |
![]() ![]() |
![]() |
![]()
ploop,
Это вариант. Но если фиксированные режимы. |
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 06.03.2013 Последняя активность: 15.08.2024 23:42
Сообщений: 4776
Сказал(а) спасибо: 657
Поблагодарили: 1914 раз(а) в 1180 сообщениях
|
![]()
Почему? Таблицу высчитываем для максимального тока, например, 50 мА. Всё что ниже получается тупым делением, там всё линейно. Все нелинейности от тока идут уже выше 50 мА, но там попробую шунт заставить работать.
|
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 06.03.2013 Последняя активность: 15.08.2024 23:42
Сообщений: 4776
Сказал(а) спасибо: 657
Поблагодарили: 1914 раз(а) в 1180 сообщениях
|
![]()
Вот те раз...
Ток по шунту вообще без всяких фильтров держит до 30мА. Но видна лёгкая дрожь и дрейф опоры от питания. Короче 50мА за границу смело можно брать, это отлично. |
![]() |
![]() |
![]() |
![]() ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 06.03.2013 Последняя активность: 15.08.2024 23:42
Сообщений: 4776
Сказал(а) спасибо: 657
Поблагодарили: 1914 раз(а) в 1180 сообщениях
|
![]()
Что-то не пойму, АЦП выдаёт какую-то ступеньку в районе трёх вольт. Независимо от того, как я его использую: шунт измеряю, или собственное напряжение. Думал мой косяк, оказалось - нет.
Может и опора косячит, но что-то сомнительно. |
![]() |
![]() |