Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
24.09.2010, 17:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: ШИМ в АТMega8535
Сообщение от 7Fantomas7
|
Мне очень нужно отчетливо видеть когда начался импульс и когда кончился, в это время не должно выполнятся ничего кроме опроса компаратора. Поэтому прерывания по переднему фронту импульса и по заднему самое оно.
|
Настроить что бы прерывания от переполнения таймера (того, с которым работает ШИМ модуль) у вас будет срабатывать в начале периода ШИМ, то есть по фронту импульса, а ножку INT0 настроите на спад импульса и получите прерывание по спаду импульса. В обоих прерываниях и будете делать опрос компаратора. И в этих прерываниях запретите отстальные. Здесь же можно переключать каналы АЦП, запускать преобразование АЦП и читать результаты преобразования и помещать их в буферы. Так же в каждом 4 м прерывании (1/33кгц=30микросек*4=120микросек = время таймслота для 1wire) выставлять флаг для обработки 1wire.
Сообщение от 7Fantomas7
|
При ШИМ 31кГц и тактовой 16мГц и скважности 50% Во время пауз предполагается обрабатывать и выводить на 7сегментники усредненый ток и напряжение, также данные тока и напряжения использовать для изменения скважности.
|
Организуете прерывание от другого таймера с периодом 1-2 милисек (от количества разрядов АЛС) и выводите на АЛС данные,
ввод вывод от 1 до 4 бит 1wire, производите опрос кнопок, обработку буферов измерения АЦП и анализ нажатия, действия по нажатиям кнопок.
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов
Последний раз редактировалось picavr; 24.09.2010 в 17:17.
|
|
|
|
24.09.2010, 20:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: ШИМ в АТMega8535
kison,
Цитата:
|
А без разницы 0,99 или 0,01 - пауза между событиями будет небольшой. 0,32мкс или около 5 тактов при 16МГц кварце.
|
Постойте мы судя по всему говорим об разных паузах.
Или я чегото не так понимаю.
Есть сигнал с шима 31кГц со скважностью 0,5 или 50% кому как нравится. У сигнала есть 2 фронта передний и задний, длительность импульса при скважности 0,5 составляет 32258мкс или 0,000032258 сек. такая же длительность паузы. При изменении ШИМ сигнала скважность стала например 0,1 это значит что пауза пропорционально стала больше. Мне необходимо ловить передний и задний фронта импульса, при этом зная фронта легко знать наступила пауза или наступил импульс. Задним фронтом можно тактировать динамичку, частоты больше чем достаточно, можно запускать опрос кнопок, можно работать по 1wire.
То как же получается без разницы? В одну паузу ШИМа влезет 512 тактов минимум. И этого боюсь что будет слишком мало. Хотя не факт.
picavr,
Цитата:
|
Организуете прерывание от другого таймера с периодом 1-2 милисек
|
Как же я могу это сделать? Мне необходимо чтоб чтоб во время когда на выходе ШИМа есть сигнал контролер ничем не занимался кроме опроса компаратора и при наступлении события на компараторе реагировал максимально быстро. В таком случае второй таймер необходимо синхронизировать с работающим ШИМом не только по частоте но и по скважности. А скважность не статическая а динамическая величина.
|
|
|
|
24.09.2010, 22:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: ШИМ в АТMega8535
Сообщение от 7Fantomas7
|
длительность импульса при скважности 0,5 составляет 32258мкс или 0,000032258 сек.
|
Что то цифры у Вас не сходятся. Причем на три порядка.
А период при частоте 31КГц около 30мкс, и Ваш импульс не может быть длиннее. А при коэффиценте заполнения в 0,5 соответственно он 15мкс или еще короче.
Сообщение от 7Fantomas7
|
При изменении ШИМ сигнала скважность стала например 0,1
|
Скважность не может быть меньше единицы. Меньше может быть обратная скважности величина - коэффицент заполнения.
Сообщение от 7Fantomas7
|
Мне необходимо ловить передний и задний фронта импульса
|
Если между ними будет 5 тактов - это нормально? Все успеете?
|
|
|
|
25.09.2010, 03:04
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: ШИМ в АТMega8535
kison,
Цитата:
|
А период при частоте 31КГц около 30мкс, и Ваш импульс не может быть длиннее
|
Да Вы правы не так написал выходит 32мкс
Цитата:
|
А при коэффиценте заполнения в 0,5 соответственно он 15мкс или еще короче
|
Да тут протупил действительно, 16мкс максимальная длительность импульсов если точнее 16,129мкс. При скважности 50% это 256 тактов контролера, хоть импульса хоть паузы.
Вышло еще меньше и не успею я за 256 тактов паузы выполнить то что мне необходимо. Ну а длительность импульса от 256 тактов до 5 тактов вполне и устроила бы, хотя нужно бвлобы примерно от 250 и ниже. Очень жаль, а так не хотелось городить отдельный ШИМ.
|
|
|
|
25.09.2010, 22:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: ШИМ в АТMega8535
Добрый вечер всем.
Никто принципиалкой не поделится связки какой нибудь ATMegi и TL494 или UC3825?
Шужно сделать управляемый ШИМ.
|
|
|
|
25.09.2010, 23:08
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: ШИМ в АТMega8535
А какой в этом смысл? Что таймером ШИМ генерить, что внешней схемой - вычислительные затраты одинаковы. А так связать просто - ЦАП и его выход на ножку 3 TL494. Ноги 2 и 15 на + питания, 1 и 16 на общий. Изменяя напряжение на выходе ЦАП-а и соответственно на 3 ноге TL494 сможете изменять и коэффицент заполнения.
|
|
|
|
25.09.2010, 23:50
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: ШИМ в АТMega8535
kison,
Не успеваю таймером. Не хватит контролера чтоб реализовать то что мне нужно. Очень не хотел отдельный ШИМ ладить, но скорость вещь упрямая. Да гдето встречал что ктото собрал на меге16 лабораторный блок питания, но для меня это не то что нужно. Поэтому и родилась идея (хотя я ее слизал) совместить отдельный ШИМ с защитами прочей лабудой с контролером который будет контролировать средний ток и напряжение и соответственно их и регулировать. Таким образом контролер разгружается и молотит все что мне необходимо сам по себе не привязываясь к тактам ШИМа.
|
|
|
|
26.09.2010, 00:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: ШИМ в АТMega8535
Сообщение от 7Fantomas7
|
Таким образом контролер разгружается и молотит все что мне необходимо сам по себе не привязываясь к тактам ШИМа.
|
Он может и так молотить сам по себе, а ШИМ сам по себе. Что внешний, что внутренний ШИМ сам по себе ресурсы не потребляет. Не привязывайтесь к фронтам внутреннего ШИМа и получите то же, что и с внешним. А управлять внешним через ЦАП или внутренним через регистры тоже почти без разницы.
|
|
|
|
26.09.2010, 01:50
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: ШИМ в АТMega8535
kison,
Огромное спасибо что пытаетесь помочь но мы друг друга наверное не очень понимаем. Возможно я туплю.
Во время когда на выходе ШИМа уровень высокий и открыты силовые ключи в мосте, мне необходимо контролировать ток в ключах и максимально быстро реагировать на превышение этого тока выключая ШИМ и переводя его выходной сигнал в 0. Таким способом я пытаюсь спасти ключи от выхода из строя при превышении тока выше какогото критического значения. Спасу ли? Не факт, скорей всего не спасу, но попробовать стоит. Тут все просто в круговую опрашиваем компаратор, принимаем решение и нет важности 256 или 5 тактов контролера длительность этого импульса, будет всеголиш разное количество опросов компаратора при этом контролер не должен больше ничем заниматься чтоб реагировать максимально быстро. С этим вроде просто и понятно, но необходимо знать когда выход ШИМа стал высоким и когда стал низким. При этом прерывание это более чем 4 такта.
Пауза, 256 и более тактов. В это время мне необходимо опросить 2 АЦП узнать ток и напряжение, усреднить их значения выполнив математику, сравнить с задаными и принять решение не нужно ли изменить длительность импульса и если нужно то изменить. Еше мне необходимо опросить 2-3 датчика температуры 1wire и принять решение не нагрелось ли чего и если нагрелось то выключить ШИМ. Еще мне нужно опросить некоторое количество кнопок и если хоть одна нажата не включать ШИМ и дальше можно чего угодно делать. Еще мне нужно обновить динамичку. И это все за 256 тактов, конечно может быть и больше но расматриваем наихудший вариант. Да не успею я это на "С" упаковать в эти ресурсы.
Конечно некоторые процесы можно разнести по разным паузам сэкономив таким образом такты все эти процесы в принципе можно сделать сравнительно медленными. Не нужно так часто обновлять динамичку, не очень то нужно и температуру так часто мерять достаточно раз за полсекунды, и опрос кнопок не нужен с частотой 31кГц. Ну АЦП опрашивать нужно постоянно. И я впринципе боюсь что не хватит мне в конечном итоге тактов во время паузы чтоб потянуть такие задачи. И для этого мне необходимо знать когда пауза началась и когда закончилась что в принципе всеравно что знать когда начался и закончился импульс.
Поэтому и родилась идея первую часть возложить на внешний ШИМ, а вторую часть на контролер.
При всем при этом ноги практически все заняты и нет возможности выход шима заводить на какой нибудь другой вывод например второй компаратор.
У меня еще есть 128мега ктото говорил что там вроде шим навороченее и многие проблемы могут отпасть но я еще не смотрел чего у ее там с ШИМом и счетчиками, знаю однозначно что ног больше.
Последний раз редактировалось 7Fantomas7; 26.09.2010 в 01:53.
|
|
|
|
26.09.2010, 03:59
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: ШИМ в АТMega8535
Сообщение от 7Fantomas7
|
Во время когда на выходе ШИМа уровень высокий и открыты силовые ключи в мосте, мне необходимо контролировать ток в ключах и максимально быстро реагировать на превышение этого тока выключая ШИМ и переводя его выходной сигнал в 0.
|
Вообще защита должна быть аппаратной. По току точно. Голым контроллером этого не сделать, а вот введя пару корпусов внешней логики - легко. В любом случае это проще и дешевле, чем ЦАП вводить в схему. И думаю это значительно дешевле, чем даже один комплект силовых ключей.
Если же мгновенная реакция не нужна и время в 1мкс до срабатывания защиты приемлемо, то можно и на встроенном компараторе защиту сделать. У Вас при акрытых ключах компаратор сработать может? Вероятно нет - тока нет и сигнал с датчика тока отсутствует. Так зачем включать защиу при появлении сигнала на выходе ШИМ и отключать в конце импульса? Пусть себе защищает ![Улыбка](images/smilies/icon_smile.gif)
Но все равно аппаратная защита предпочтительней - она работает независимо от работоспособности контроллера. Представьте ситуацию что у Вас в схеме отвалился резонатор. И вот незадача - в момент когда на выходе ШИМ середина импульса. Компаратор сработал, это тупая железяка, но ... некому "березку заломати" - контроллер в ступоре без тактовых импульсов и отработать защиту не может. Внешняя же защита это отработала бы легко и непринуденно - ток из за насыщения сердечника вырос и внешний компаратор защелкнул внешний же триггер защиты. Ключи спасены, душа в виде дыма из них не вышла ![Улыбка](images/smilies/icon_smile.gif)
Вообще косой прямоход навевает мысли о сварочнике, больше никуда он по сути и не годится. Вы его и проектируете?
Так что ИМХО правильное решение - внешняя защита. И тогда никаких проблем с быстродействием - и индикацию есть время отработать и кнопки и термометры. Да и с внутренним компаратором как бы тоже время есть, если держать защиту включенной всегда, но я бы стал так делать только в случае если удорожание на 20р сильно критично, а неотработка защиты к совсем уж фатальным последствиям не приводит. Во всех остальных случаях - внешний автономный блок защиты. Его выход можно так же на внешнее прерывание завести.
Сообщение от 7Fantomas7
|
У меня еще есть 128мега ктото говорил что там вроде шим навороченее
|
Да то же самое там.
Сообщение от 7Fantomas7
|
Пауза, 256 и более тактов. В это время мне необходимо опросить 2 АЦП узнать ток и напряжение,
|
АЦП в АВР не шустрое. 13 тактов преобразование, но тактов АЦП а не процессора! А тактировать АЦП нужно частотой не выше 200КГц для сохранения 10 битного разрешения или до 1МГц для 8 бит. При такте 200КГц преобразование будет идти 65мкс - два периода ШИМ, при 1МГц - 13мкс, т.е. полпериода. Автоматом каналы АВР переключать не умеет, так что два опроса за период это максимум. Не за время паузы! Но надо ли привязываться к ШИМ-у вообще?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:19.
|
|