MCS51, вопросы перехода с "классики" на SiLabs...

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

genom06 писал(а):уже 3 раза отправил..
Чё отправлял-то? Если вложение, то ограничение на 256К..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
genom06
Родился
Сообщения: 14
Зарегистрирован: Пн авг 29, 2011 14:08:35

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение genom06 »

понял - видимо какие-то проблемы с большими текстами.. вернусь через час-два, попробую писать покороче, продолжу свою мысль и ответить на ваши вопросы
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

genom06 писал(а):вернусь через час-два,
Не торопись, мя до 19-ти вечера буду, а позже - не знаю, может ещё из дома зайду...
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
genom06
Родился
Сообщения: 14
Зарегистрирован: Пн авг 29, 2011 14:08:35

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение genom06 »

Продолжаю и сразу отвечаю на вопрос: никакой специальной защиты не было... Выход операционника через RC-цепочку (шумодав 5 кгц) подключался на вход АЦП силаба. По ошибке в обратную связь ОУ был впаян не тот номинал резюка, что привело к подаче на ногу МК 4,6В. Сам ОУ питался от +5В ( так надо было). Аналоговая часть выгорела очень интересно ( во втором случае результат был тот же): МК выдавал почти "правдоподобные" результаты, но ВСЕ близкорасположенные от сгоревшего опрашиваемые каналы( их было 13) выдавали почти одинаковые данные. Анализ ситуации потом показал, что произошел "как бы" электрический пробой и 4-5 каналов "соединились" между собой... Разумеется речь идет только про входы AMUX контроллера. Сам АЦП и ядро работали нормально.
genom06
Родился
Сообщения: 14
Зарегистрирован: Пн авг 29, 2011 14:08:35

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение genom06 »

Вообще, должен отметить, что микроконтроллеры от Silabs - почти идеальное решение для многих применений... Можно подобрать корпус на любой вкус и задачу. Разумеется с 16-битной арифметикой приходится возиться, но 1 корпус МК только с двумя кондерами по питанию, с такими размерами, без внешней флеш-памяти программ, памяти, кварца, VREF и т.п. - много стоит.. )
Это мое личное мнение!
genom06
Родился
Сообщения: 14
Зарегистрирован: Пн авг 29, 2011 14:08:35

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение genom06 »

Gudd-Head писал(а):
genom06 писал(а):4.6 В при VREF=2.5

Скорее ... при Vcc = 3.3 В.


Да, Vcc было=3.3В. Но это никакого отношения не имеет к данной ситуации. Я стараюсь никогда не нарушать требования пдф-ки..
И вот тут можно поспорить: :)
1) дело в том, что в пдф указано что источником опорного напряжения для АЦП и ЦАП могут являются либо VREF( внутренний либо внешний) либо Vdd. На Vdd действительно можно подавать 3.3В
Комментарий для "Gudd-Head": претендовать на истину не буду, но Vdd не равно Vcc. Обычно Vdd обозначают напряжение питания ядра ( 2.1 или 2.5/2.6 В от внутреннего стабилизатора, если он включен), а Vcc - отдельное питание цифровых портов ввода/вывода. Можно конечно замкнуть эти ножки, но вам нужны помехи по аналоговой части, когда вы дергаете цифровыми портами?
2) В разделах АЦП, ЦАП четко указано, что напряжение, подаваемое на аналогые входы не может превышать VREF. А он в случае встроенного равен либо 2.1 либо 2.25 и в случае внешнего не может быть больше 2.5/2.6В в зависимости от серии контроллера.

Вопрос, конечно спорный, но практика показывает, что лучше все приводить к 2.5В :)
genom06
Родился
Сообщения: 14
Зарегистрирован: Пн авг 29, 2011 14:08:35

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение genom06 »

Кстати, из всей серии Silabов - мой любимый -> F410... Практически неубиваемый... :)
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3780
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Ser60 »

У 9хх серии напряжение VREF нормирутся во всем диапазоне 0 - VDD, а VDD в
свою очередь от 1.8 до 3.6 В. Я эти МК использовал с Vdd = VREF = 3.3 В
для радиометрических измерений. Работают нормально уже около года.
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

genom06 писал(а):( 2.1 или 2.5/2.6 В от внутреннего стабилизатора, если он включен),
Ага.. И ещё - если он есть..
Пока не знаю, как в F410, а в F300 - нету..
genom06 писал(а):практика показывает, что лучше все приводить к 2.5В
Опять-же, если оно есть внутреннее.. А если нет и задействовать внешнюю ножку под опору нет возможности..

Универсальными могут быть подпрограммы. например по обслуживанию узла или стандартной периферии, один раз написал и потом постоянно пользуешься..
А в схемотехнике нет полностью универсальных решений и что и как, конкретно делается под текущую задачу..
Могут быть "типовые" для разработчика, отлаженные и опробованные узлы и решения, но полностью универсальной схемы - по определению быть не может... :tea:

P.S. Кто подскажет, в каких МК можно установить тактирование РСА от разных источников..
Например канал 0 - от первого таймера, а канал 1 - от второго..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
genom06
Родился
Сообщения: 14
Зарегистрирован: Пн авг 29, 2011 14:08:35

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение genom06 »

Ser60 писал(а):P.S. Кто подскажет, в каких МК можно установить тактирование РСА от разных источников..Например канал 0 - от первого таймера, а канал 1 - от второго..

Насколько я помню - ни в одном silabe, имеюшим 1 модуль PCA это сделать невозможно. Все каналы одного модуля PCA привязаны к базовому PCA-таймеру. Его конечно, можно тактировать от разных источников, но опять же, в один момент времени - от одного.
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

genom06 писал(а):в один момент времени - от одного.
Думаю, как сформировать два ШИМа со сдвигом 180 градусов, как в прикреплении..

P.S. genom06, про кошачью аватарку не забудь..
Вложения
PWM.png
(100.96 КБ) 394 скачивания
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3780
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Ser60 »

Можно перед запуском PCA загрузить в PCA0 нуль а в PCA1 число 2^15-1. Посла подачи тактовой частоты на PCA ШИМ на каналах 0 и 1 будет сдвинута по фазе как на картинке.
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Ser60 писал(а):будет сдвинута по фазе как на картинке.
Этим сдвигом ещё управлять надо.. :dont_know:
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3780
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Ser60 »

Насколько я понял из картинки, сдвиг фаз у ШИМ остается постоянным, меняется лишь ее скважность. Если так, то скважность управляется путем загрузки кода в регистры PCA0CP и PCA1CP. Я подобный принцип изпользовал в своей статье про часы в Радиомире 10/2010 с. 20-25. Там более подробно написано.
http://mirknig.com/jurnaly/elektronika/1181350478-radiomir-10-2010.html
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Ser60 писал(а):сдвиг фаз у ШИМ остается постоянным, меняется лишь ее скважность.
Да..
Ser60 писал(а):скважность управляется путем загрузки кода в регистры PCA0CP
то понятно, и скважность можно менять, но регистр счётчика PCA0 всего один..

Пока мя вот, что придумал: /ШИМ у мя - 8-ми разрядный/
1. проинвертируем аппаратно выход РСА1..
2. значение скважности в регистр PCA0CP0 записываем какое есть..
3. в регистр PCA0CP1 записываем значение инверсное скважности..

Если в АСС - значение скважности, то:

Код: Выделить всё

   mov   PCA0CPL0,a
   cpl   a
   mov   PCA0CPL1,a

Вот так думаю попробовать..

P.S. Журнал скачал, а он при распаковке номер телефона просит - послал его подальше.. :cry:
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3780
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Ser60 »

МитяРа писал(а):но регистр счётчика PCA0 всего один..

Точно, один! Тогда мой совет не пройдет...
МитяРа писал(а):Пока мя вот, что придумал: /ШИМ у мя - 8-ми разрядный/
1. проинвертируем аппаратно выход РСА1..
2. значение скважности в регистр PCA0CP0 записываем какое есть..
3. в регистр PCA0CP1 записываем значение инверсное скважности..

По-моему это должно сработать.
МитяРа писал(а):Журнал скачал, а он при распаковке номер телефона просит - послал его подальше..

Странно, у меня не требовал телефона (брал в бесплатном режиме с LetitBit).
No тогда можно посмотреть здесь
http://mcs/sb/Electronics/HugeLED/
Там в конце есть ссылка на статью на русском.
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Ser60 писал(а):По-моему это должно сработать.
Только если сделать только этими тремя командами, то ШИМ будет не 256, а только 128, т.к. импульс "усекается" одновременно с двух сторон..
Надо подумать, как сделать, что-бы он остался 256 ступеньковым..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Gudd-Head »

МитяРа писал(а):Надо подумать, как сделать, что-бы он остался 256 ступеньковым..

И как будет выглядеть противофазный ШИМ, скажем, 3/256? (с точки зрения симметрии)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3780
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Ser60 »

ОК, я понял проблему. В предлагаемом выше способе импульсы ШИМ получатся несимметричными. Получить симметричные импульсы 8-битной ШИМ можно следующим образом. Допустим сначала, что duty cycle х меньше 128. Тогда формируем ШИМ в канале 0 стандартным образом, и по окончании импульса (что произйдет до 1/2 периода ШИМ) загружаем в счетчик PCA0 значение 128-х, таким образом форсируя его обнулиться раньше и начать формировать стандартным образом импульс ШИМ в канале 1 в середине периода ШИМ (в канале 0 при этом формирование ШИМ следует запретить). Затем проделать то-же самое, поменяв ролями каналы 0 и 1.

Если х больше 127, то меняем х на х - 127, формируем ШИМ как описано выше и инвертируем сигнал на выходе ШИМ-модулятора. Недостаток такого способа - при х меньше 128 начало ШИМ импульса будет привязано к началам полупериода ШИМ (обнуление счетчика), а при х больше 127 к моментам обнуления счетчика будет привязан конец импульсов ШИМ.
genom06
Родился
Сообщения: 14
Зарегистрирован: Пн авг 29, 2011 14:08:35

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение genom06 »

Поскольку неизвестно, сколько задач еще должен выполнять МК и на какой частоте должен работать ШИМ - то абстрактно:
А зачем вообще в этом случае ( 8 бит, 180-градусов сдвиг фазы) задействовать PCA?
Я бы например, сделал все обработчике к-либо таймера и дергал вручную ножками:
диапазон переменной YYYY 0x00 - 0xFF - период ШИМ для одного канала
диапазон этой же переменной 0x80 - 0x80 - для второго канала
На мой взгляд, математика и операции сравнения для вкл/выкл ножек портов обойдется "дешевле", чем та же математика и управление перезагрузкой модулями PCA
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»