|
|
|
|
141339 701 19 5 |
|
Опции темы | Поиск в этой теме |
19.10.2013, 20:23 | 221 | |
Консультант
Регистрация: 15.11.2010 Последняя активность: 26.04.2024 09:58 Адрес: Москва
Сообщений: 8206
Сказал(а) спасибо: 1077
Поблагодарили: 1713 раз(а) в 912 сообщениях
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
Цитата:
Если OCR1ACR1C на выходе всегда единица. Ага, с потреблением в даташите явно слишком оптимистичные значения... Мне меньше 1.5мА не удалось получить даже на 2МГц... |
|
19.10.2013, 20:30 | 222 |
Консультант
Регистрация: 15.11.2010 Последняя активность: 26.04.2024 09:58 Адрес: Москва
Сообщений: 8206
Сказал(а) спасибо: 1077
Поблагодарили: 1713 раз(а) в 912 сообщениях
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
Цитата:
А в Power-down у тебя МК сколько кушает? Мне меньше 20мка не удалось получить, хотя в даташите написано 2мка... |
19.10.2013, 21:43 | 223 |
Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24 Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
Я тоже работаю с PWM1A, но на микротоках слишком короткие импульсы, поэтому с определённого момента я с ШИМ перехожу на чистый однобитный сигма-дельта, и потери усасываются почти в ноль. Но для этого нужно переключать ШИМ с PLL на тактирование от RC, да ещё и предделитель заряжать, ибо требуется 2...4МГц. Ну и чтоб частота импульсов сохранилась - OCR1C на 7...15.
В Power-Down я не могу проверить. В сумме всё ест 50мкА, что-то из этого потребляет зелёный светик через подтяжку МК, что-то является утечками через светодиоды. Когда-то голый МК прошил и померил - там было порядка микроампера. Тамагочи писал что МК с разными ревизиями могут жрать нормально, а могут и около 20мкА. Наверное поэтому и ценник на них так отличается... Светики постепенно деградируют и утечки растут. [Исправлено: INFERION, 19.10.2013 в 21:44] |
19.10.2013, 21:53 | 224 |
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
А вот на этом месте отключи ФУСАМИ БОД и будет меньше микроампера. Причем я вообще офигел, когда при отключенном фусами БОД убрал из прошивки код, который отключает супервизор перед сном и... ток вырос. Что-то здесь не так. Надо разобраться как следует.
|
19.10.2013, 21:56 | 225 |
Ветеран Фонарёвки
Регистрация: 11.02.2012 Последняя активность: 21.03.2024 23:02
Сообщений: 3731
Сказал(а) спасибо: 3527
Поблагодарили: 1970 раз(а) в 1049 сообщениях
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
|
19.10.2013, 21:56 | 226 |
Консультант
Регистрация: 15.11.2010 Последняя активность: 26.04.2024 09:58 Адрес: Москва
Сообщений: 8206
Сказал(а) спасибо: 1077
Поблагодарили: 1713 раз(а) в 912 сообщениях
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
|
19.10.2013, 21:57 | 227 |
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
|
19.10.2013, 22:03 | 228 |
Ветеран Фонарёвки
Регистрация: 11.02.2012 Последняя активность: 21.03.2024 23:02
Сообщений: 3731
Сказал(а) спасибо: 3527
Поблагодарили: 1970 раз(а) в 1049 сообщениях
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
Мы для девайса работающего три года от одной заправки на LSH-14 БОД отключали и ставили внешний супервизор. 5 мкА легко на атмегу16 и rtc1305.
Но этому решению в этом году стукнуло 10 лет. До сих пор в Норильске до -40 трудится. [Исправлено: m72, 19.10.2013 в 22:08] |
19.10.2013, 22:04 | 229 |
Hoвичёк фонарёвки.
Регистрация: 18.08.2012 Последняя активность: Сегодня 14:38 Адрес: Калуга
Сообщений: 4754
Сказал(а) спасибо: 1989
Поблагодарили: 1430 раз(а) в 717 сообщениях
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
Да, стоит включить фьюз BODLEVEL0 - и потребление становится более 20мкА.
А если его убрать, 5мкА, а в полной отключке - 0,3мкА.
__________________
Fenix TK21, UltraFire UF-H6, Триплы C20C, ITP A2 EOS ss, Olight S20 Baton, DQG 18650 II, Niteye JA10, DQG AA, DQG 18650 clicky, С22С. |
19.10.2013, 23:09 | 230 |
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
|
20.10.2013, 00:24 | 231 |
Hoвичёк фонарёвки.
Регистрация: 18.08.2012 Последняя активность: Сегодня 14:38 Адрес: Калуга
Сообщений: 4754
Сказал(а) спасибо: 1989
Поблагодарили: 1430 раз(а) в 717 сообщениях
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
А, так это сцобачко столько кушает?
|
20.10.2013, 20:48 | 232 |
Консультант
Регистрация: 15.11.2010 Последняя активность: 26.04.2024 09:58 Адрес: Москва
Сообщений: 8206
Сказал(а) спасибо: 1077
Поблагодарили: 1713 раз(а) в 912 сообщениях
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
|
20.10.2013, 20:58 | 233 |
Hoвичёк фонарёвки.
Регистрация: 18.08.2012 Последняя активность: Сегодня 14:38 Адрес: Калуга
Сообщений: 4754
Сказал(а) спасибо: 1989
Поблагодарили: 1430 раз(а) в 717 сообщениях
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
AVSel
неа Но это кажется только на микросхемах с буковкой V - тинька 85V в частности. [Исправлено: Rime, 20.10.2013 в 22:57] |
20.10.2013, 22:34 | 234 |
Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24 Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
Если бы оно не работало - супервизор бы жрал 200мкА, а не 20. Именно столько потребляет ИОН. Я думаю программа вынуждена не полностью отключать супервизор, т.к. у него довольно жирный переходной процесс, ждать который при пробуждении накладно...
Сижу пасу стадо багов в очередной раз перепиленном коде. Думал глючит как всегда встроенный усилитель и залил старую заведомо рабочую версию - работает. Значит печатка и схема рабочие, этого хорошо. Придётся проверять матан, мож с указателями на переменные в ОЗУ опять чего-то где-то напутал. Каждый раз при попытке ужать код ещё немного где-то что-то ляпаю и потом два дня ищу... Нагуглил интересную статью за повышение разрядности АЦП: http://chipenable.ru/index.... http://chipenable.ru/index.... Именно те механизмы, которыми я и пользуюсь. Но всё это велосипеды на костылёх, т.к. сам по себе АЦП последовательного приближения - хрень полнейшая. Сигма-Дельта изначально даёт и необходимый шум, и отличную передискретизацию, и превосходные передаточные характеристики, но его почему-то в ширпотреб не суют... Жаль ничерта не гуглится по борьбе с говёностью встроенного усилителя, с ним то проблемы более реальные и насущные... [Исправлено: INFERION, 22.10.2013 в 19:08] |
23.10.2013, 04:50 | 235 |
Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24 Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
Народ, кто-нибудь сталкивался с нелинейностью ШИМ? Если конкретнее - при одинаковой частоте и заполнении, но с разной тактовой таймера реальное заполнение оказывается с хренпоймической разницей. Жил был ШИМ с тактовой 64МГц и периодом в 256 татов (4мкс, 250кГц) и ничего я не замечал, пока не решил перенастроить таймер на тактовую 2МГц и 8 тактов на период. По-идее в первом случае значение "32" даст такой же результат как "1" во втором - 0,5мкс, но на практике нифига. Длительность импульса во втором случае оказалась 1мкс, а в первом вроде бы норма. При переключениях ступенька очень заметна, и соответствует показаниям осциллографа. Затем я решил что таймеры пропускают "1" и сразу за "0" вываливают значение "2". Поднял частоту до 4МГц и получил 0,5мкс. Но... при переходе на более высокую частоту заполнение резко подскакивает, т.е. картина меняется до "наоборот". Начал отнимать константу в быстром варианте - граница начала исчезать где-то при значениях 14 вместо 32-х. Я нифига не понимаю, эти три факта противоречат друг другу...
Быстрый вариант: 64МГц/256LSB=0,25МГц=4мкс; 1/64МГц=4мкс/256LSB=0,015625мкс; 0,015625мкс*32LSB=0,5мкс. Экономичный вариант: 2МГц/8LSB=0,25МГц=4мкс; 1/2МГц=4мкс/8LSB=0,5мкс; 0,5мкс*1LSB=0,5мкс. Почему на практике 0,5мкс первого случая в 2 раза меньше за 0,5мкс второго варианта? Причём осциллограф во втором варианте показывает 1мкс. Допускаем что компаратор сбрасывает пин на следующий такт после совпадения, значит если запишем туда "1", то реально получим... "2". Что интересно - если записать "0", то мы получим.. не "1", а нормальный "0". А на "255" мы получим... "256", т.е. 100%. Бредота... Ок, пробуем сделать так: 4МГц/16LSB=0,25МГц=4мкс; 1/4МГц=4мкс/16LSB=0,25мкс; 0,25мкс*1LSB=0,5мкс. Осциллограф показал 0,5мкс, так что 2+2!=4, садитесь - ДВА! Теперь смотрим как драйвер переключается между режимами. Внезапно выясняется что драйвер считает иначе - всё таки 0,25мкс, ибо быстрый вариант резко даёт 2х прибавку к тяге. Уменьшаю его значение в 2 раза (т.е. до 0,25мкс, 16LSB) и получаю пока ещё заметную, но уже слабую ступеньку. Я вот думаю, может лаги связанные с тупейшей "синхронизацией" портов с железками таймера? Т.е. сам таймер своим переполнением может установить единичку быстрее, чем сбросит её его же компаратор? [Исправлено: INFERION, 23.10.2013 в 05:17] |
24.10.2013, 00:36 | 236 |
Завсегдатай Фонарёвки
Регистрация: 22.09.2013 Последняя активность: 14.06.2022 22:39 Адрес: Vienna
Сообщений: 918
Сказал(а) спасибо: 126
Поблагодарили: 322 раз(а) в 166 сообщениях
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
INFERION, с такими вопросами Вам стоит в поддержку атмеля обратиться. Они лучше всех смогут ответить.
Кстати, а почему Вы делите на 256 а не на 255? Ведь при 255 (0xFF) будет как раз 100%, нееет? |
24.10.2013, 05:10 | 237 |
Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24 Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
Таймер переполняется раз в 256 тактов, поэтому и делю. Т.е. должна быть возможность записи 256-ти ступенек в компаратор - 0...255, где 0 тоже является ступенькой. На этом этапе вроде бы всё логично, разбираем механизм дальше:
Ноль в программировании таковым не всегда является. В данном случае он должен оставаться нулём, поэтому механизм следующий: ШИМ при переполнении таймера должен ставить единицу, а при совпадении значения таймера со значением в компараторе - сносить эту единицу. Допустим имеется 0, тогда происходит оба события одновременно - понятное дело что событие таймера должно быть приоритетнее, чтоб на нуле я действительно получил ноль. Тогда если я запишу 255, то уже на следующий такт возникнет переполнение, и я должен получить скважность в 1 такт таймера. Ведь 256 я записать не могу, чтоб таймер никогда до этого значения не досчитывал. Он досчитает, компаратор сбросит пин, а уже на следующий такт таймер переполнится и установит этот пин. Но на практике получается что-то другое, логику чего я понять не могу. На нуле действительно ноль, а на 255 100%, как будто у нас 257 ступенек. Я уже обнаружил эффект с отсутствующей единицей - за нулём сразу идёт 2 под видом единицы, и в дальнейшем реальное заполнение на 0,4% больше за записанное значение. Я раньше думал что это мультиметр мой врёт, а оказывается нифига. Искал упоминая подобной фигни в даташите - не нашел. В общем ШИМ имеет смещение, ещё и нелинейный на разных частотах. Я этого никак не ожидал от топорной логики, где накосячить очень трудно... [Исправлено: INFERION, 24.10.2013 в 05:17] |
24.10.2013, 10:22 | 238 |
Завсегдатай Фонарёвки
Регистрация: 22.09.2013 Последняя активность: 14.06.2022 22:39 Адрес: Vienna
Сообщений: 918
Сказал(а) спасибо: 126
Поблагодарили: 322 раз(а) в 166 сообщениях
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
Теперь логику понял. Тогда да, лучше сразу Атмел спрашивать.
Надо будет мне свой программатор расчехлить, и самому посмотреть. Не верится что могли такое натворить и умолчать об этом. |
24.10.2013, 10:45 | 239 | |
Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24 Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
Да им бесполезно писать. Они шаблонно отвечают что-то вроде "читайте AVR120", а там нет ничего за дрейф смещения усилителя и вызывающие его механизмы. Думаете в службе поддержки знают что-то, чего сами же нигде не пишут? Врятли инженер, разрабатывавший этот камень, будет на меня отвлекаться...
Цитата:
Две вещи меня больше всего парят в этих МК: - усилитель АЦП, по которому информации почти ноль. - С недавних пор странное поведение ШИМ на околонулевых значениях заполнения. И где мне эту информацию искать? На встроенный усилитель вот уже года два ничего не нахожу, из-за чего его использование затруднительно. Он не такой простой как я раньше считал. Там не ОУ, ещё и какие-то схемы авто"коррекции" смещения есть (видел неоднократно упоминания). Альясинг, откуда ему там взяться? Генератором подкачки заряда что-ли усиливают сигнал? Что это за странная фраза "усилитель тактируется частотой 12кГц, поэтому все составляющие в сигнале выше 6кГц должны быть отфильтрованы внешним фильтром для избежания наложения спектров"? Вообще-то если написано что дифференциальный усилитель имеет полосу пропускания до 4кГц и он по умолчанию аналоговый (первое что в голову приходит) - он и сам прекрасно всё отфильтрует, но по факту альясинг таки есть... Смещение... почему оно сильно зависит от совершенно левых изменений в программе? Причём поведение усилителя так же весьма заметно. Можно получить смещение в 3LSB на всех чипах, и отличную работу. А стоит чуть подправить и перекомпилить код - уже 35LSB и ужасная работа. Хоть механизм калибровки не затрагивался вообще, как и исполнительные механизмы, использующие показания шунта. Просто физическое расположение этого куска кода в Flash оказалось чуть сдвинуто из-за правок в интерфейсе кнопки. И этого достаточно чтоб пересрать всю работу программы... [Исправлено: INFERION, 24.10.2013 в 11:08] |
|
24.10.2013, 11:15 | 240 |
Увлеченный
Регистрация: 02.09.2013 Последняя активность: 28.05.2020 11:46 Адрес: колыбель космонавтики
Сообщений: 196
Сказал(а) спасибо: 49
Поблагодарили: 30 раз(а) в 22 сообщениях
|
Re: Indigo 5.0, или "не совсем форумный" драйвер?
Эх, давно это было, поднял свои исходники из проекта на 128 меге, вот что у меня там:
Код:
.EQU f19200 = 0x005f .EQU f9600 = 0x00bf ; прескалер = 8 .EQU f4800 = 0x017f ; .EQU f2400 = 0x02ff .EQU f1200 = 0x05ff .EQU f0600 = 0x0bff .EQU f0300 = 0x17ff |