Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Можно ли реализовать ШИМ со стабильными параметрами на AT89S8253?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
LSV
Можно ли реализовать ШИМ со стабильными параметрами на AT89S8253 (микроконтроллер должен быть только этот)?

Период 1,5 - 20 +- 0.1 мкс, скважность от 15 до 95%.
Дискрет изменение 0.5 мкс.
Частота кварца микроконтроллера - 24 МГц.

Если бы не решались ещё другие задачи, то реализуется.
А вот если будут решать на микроконтроллере другие задачи, то вроде бы возможно дрожание от 3 до 8 циклов на отработку прерываний.

Взять микроконтроллер с аппаратным PCA нельзя.

Можно было бы взять дополнительно к микроконтроллеру интервальный таймер типа КР580ВИ53. Но как то не хочется ставить древность, которую вроде бы уже и не выпускают.

Может есть какие современные микросхемы в дополнение к микроконтроллеру для формирования стабильного ШИМ с указанными параметрами?

Спасибо.
rezident
Цитата(LSV @ Oct 2 2009, 00:36) *
Может есть какие современные микросхемы в дополнение к микроконтроллеру для формирования стабильного ШИМ с указанными параметрами?
Есть конечно. ПЛИС называются. Ваш ШИМ в небольшую CPLD вполне уложится.
Прохожий
Цитата(LSV @ Oct 1 2009, 22:36) *
Можно ли реализовать ШИМ со стабильными параметрами на AT89S8253 (микроконтроллер должен быть только этот)?

Может есть какие современные микросхемы в дополнение к микроконтроллеру для формирования стабильного ШИМ с указанными параметрами?

Спасибо.

UC384x, TL494 или вот это.
rezident
Прохожий, вы прикололись или вопроса не поняли? cranky.gif Как на ШИМ-контроллере с помощью указанного топикстартером MCU можно дискретно изменять скважность?
Прохожий
Цитата(rezident @ Oct 2 2009, 00:29) *
Прохожий, вы прикололись или вопроса не поняли?

Видимо не понял. Или понял не так как Вы, извините.

Цитата(rezident @ Oct 2 2009, 00:29) *
Как на ШИМ-контроллере с помощью указанного топикстартером MCU можно дискретно изменять скважность?

В простейшем случае подаем сигнал с выхода ШИМ МК через фильтр на ногу, регулирующую мертвое время TL494 (все остальное штатно).
Изменение скважности при этом будет дискретным. Дрожание сигнала будет зависеть от качества фильтра.
В непростейшем можно через ЦАП...
rezident
Цитата(Прохожий @ Oct 2 2009, 03:08) *
В простейшем случае подаем сигнал с выхода ШИМ МК через фильтр на ногу, регулирующую мертвое время TL494 (все остальное штатно).
Если бы у топикстартера в МК был ШИМ, то он бы не стал заморачиваться формированием ШИМ, только для того, чтобы с помощью него управлять ШИМ-контроллером, который тоже сформирует ШИМ. Весьма странное решение, не находите? smile.gif
LSV
rezident: Есть конечно. ПЛИС называются. Ваш ШИМ в небольшую CPLD вполне уложится.
------------------------------------------------------

К сожелению ПЛИС поставить наверно не получиться.
Вернее так - если есть готовая реализация для ПЛИС (чтобы можно было бы загнать в CPLD нечто подобное Intel8253 (КР580ВИ53), то можно попробовать).
Т.к. с временем напряг (да и с местом на плате). А с ПЛИС работал только с Xilinx CPLD серии 95xx, да и то чисто схемотехнически.

А более современного аналога Intel 8253 (КР580ВИ53) не существует?
Harbinger
А, если не секрет, чем обусловлен выбор именно этого МК? Есть же и пошустрее, и подешевле при этом...
LSV
Цитата(Harbinger @ Oct 2 2009, 09:56) *
А, если не секрет, чем обусловлен выбор именно этого МК? Есть же и пошустрее, и подешевле при этом...


Обусловлено тем, что изделие делается для спецприменения и комплектующие должны быть в ограничительном перечне, т.е. фактически будет делаться на 1882ВЕ53У.
Александр77
Цитата(LSV @ Oct 2 2009, 10:47) *
Обусловлено тем, что изделие делается для спецприменения и комплектующие должны быть в ограничительном перечне, т.е. фактически будет делаться на 1882ВЕ53У.

Если Вам так необходимо, в МОПе была микросхема М1821ВИ54 с приемкой 5. Применив CPLD Вам все равно придется "городить" нечто на комплектухе из МОП
Прохожий
Цитата(rezident @ Oct 2 2009, 03:21) *
Если бы у топикстартера в МК был ШИМ, то он бы не стал заморачиваться формированием ШИМ, только для того, чтобы с помощью него управлять ШИМ-контроллером, который тоже сформирует ШИМ. Весьма странное решение, не находите? smile.gif

Ничего странного не нахожу. Это не я придумал, к сожалению. По последней ссылке в моем посте №3 даже спец. ИС именно для этого предназначенная.
А преимуществ, на самом деле у этого метода несколько больше, чем недостатков...
LSV
Всем спасибо: остановился на М1821ВИ54.
62256
последовательным портом 80c52 в нулевом режиме мы при кварце 8,8МГц выдавали 5,5битный голос с частотой 11 киловыборок. При этом еще в реалтайме разжимались хаффман и дельта. Ваша задача намного проще, а тактовая втрое выше.
Дрожжание на обработку прерываний обходится хитрыми процедурками в начале прерывания - они смотрят на таймер, вызвавший прерывание, а самотормозятся на нужное к-во тактов.
LSV
Цитата(62256 @ Oct 5 2009, 00:43) *
последовательным портом 80c52 в нулевом режиме мы при кварце 8,8МГц выдавали 5,5битный голос с частотой 11 киловыборок. При этом еще в реалтайме разжимались хаффман и дельта. Ваша задача намного проще, а тактовая втрое выше.
Дрожжание на обработку прерываний обходится хитрыми процедурками в начале прерывания - они смотрят на таймер, вызвавший прерывание, а самотормозятся на нужное к-во тактов.


Прочитайте внимательно первый пост. Формирование ШИМ - это только одна из многих задач. Это к вопросу о простоте.
(прерывание от таймеров, формирующих ШИМ, будут иметь не высший приоритет, т.к. будут решаться и другие более важные задачи).

Да и процедура, описанная Вами позволит (насколько я понял) только "дощитать" длительность формируемую для ШИМ.
А как быть если отрабатывается некое прерывание (только вошли в него) и пришло прерывание от таймера, который формирует длительность ШИМ (т.е. уже ничего добавлять не надо, а надо как можно быстрее обработать это прерывание - вот Вам и увеличение длительносьти в "+"?
62256
Цитата(LSV @ Oct 5 2009, 11:03) *
вот Вам и увеличение длительносьти в "+"?

вот на это увеличение и есть запас - нижний предел у Вас 15%. Генерация много тактов не возьмет, поэтому таймеру шима можно дать бОльший приоритет. А если использовать УАПП - так у него своё прерывание при выходе последнего бита.
Но если есть место на плате, есть питание, и есть деньги - то проще поставить внешний таймер, хоть ВИ54 и явно избыточен для такой задачи.
public32
Баловался я ШИМом на именно этом контроллере (AT89S8253), когда пытался его подружить с акселерометром ADXL202AE
пытался идти двумя путями: сначала завел 2 шим вывода акселерометра на INT0 и INT1 контроллера и прописал обработчики прерываний по приходу 1 и срезу, но времени на обработку основного кода (передача по SPI и вывод на LCD) практически не оставалось, поэтому схема частенько висла.
Тогда решил сделать по другому - запустил таймер и программно ждал фронты и срезы шим: по фронтам запоминал текущее значение, по срезам тоже и вычисляя разницу - выводил значения на экран и по SPI отсылал smile.gif
Так работало... были еще идеи - если надо могу коды поискать.

А насчет стабильности... требования Вы предъявляете достаточно жесткие, но в большинстве задач усреднение классическое или медианное - значительно облегчает жизнь... мне помогло по 6 отсчетам усреднение...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.