In vino veritas
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: In vino veritas
Мурик, 16-битный таймер AVR имеет режим 10-битного ШИМ
вот вам и регулировка с 1024-я дискретами
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
Re: In vino veritas
Речь про динамическую индикацию, т. е. 4-ех разрядный семисегментный индикатор. Читайте внимательно. https://radiokot.ru/forum/viewtopic.php ... 4#p3428694
Re: In vino veritas
Так Т1 имеет не только прямой ШИМ (по даташиту), но и аж два компаратора.
Я ж говорил про ПОЛНО-МАКСИМАЛЬНОЕ использоавние аппаратной начинки, а не про "банальный ШИМ".
Кстати тот проект где-то ранее в этой же теме уже даавно отлеживается - копаться ЛЕЕНЬ.

Уважаемый Мурик существует весьма много вариантов применения стандартной аппаратной начинки, помимо указанного в популярной литературе.
Кое-кому и "пошевелить мозгами" не помешает!

Я ж говорил про ПОЛНО-МАКСИМАЛЬНОЕ использоавние аппаратной начинки, а не про "банальный ШИМ".
Кстати тот проект где-то ранее в этой же теме уже даавно отлеживается - копаться ЛЕЕНЬ.
Уважаемый Мурик существует весьма много вариантов применения стандартной аппаратной начинки, помимо указанного в популярной литературе.
Кое-кому и "пошевелить мозгами" не помешает!
Re: In vino veritas
del
Последний раз редактировалось Мурик Ср авг 01, 2018 09:43:06, всего редактировалось 2 раза.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: In vino veritas
Мурик, регулировка яркости на 7-ми сегментике - не новость. Лет 7 назад делал себе домой часы с термометром на простеньком PIC'е, с регулировкой яркости. 1000 градаций. 1 шаг = 1 us. Частота переключения индикаторов = 1 КГц.
Для этого мне понадобилось 2 таймера. Если бы в PIC'е был таймер хотя бы с одним компаратором - хватило бы одного его.
Для этого мне понадобилось 2 таймера. Если бы в PIC'е был таймер хотя бы с одним компаратором - хватило бы одного его.
- Реклама
Re: In vino veritas
Это микросекунда, т. е. частота 1 миллион прерываний в секунду (для PICа с 4 тактами на инструкцию это слишком много). Или сделано как-то по другому?Аlex писал(а):1 us
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: In vino veritas
[uquote="Мурик",url="/forum/viewtopic.php?p=3429347#p3429347"]
Добавлено after 3 minutes 20 seconds:
ни разу ещё не упирался в глобальную нехватку времени, даже в прерываниях.
а локальная как правило лечится созданием буфера и перераспределением вычислений на раньшее время, чтобы к узкому моменту уже всё было максимально посчитано.
Задержки в прерывании? Что МК сможет еще делать кроме постоянного обслуживания прерывания динамической индикации?[/uquote] допустим 4 разряда, частота переключения разрядов около килогерца, тактовая 8 МГц (делим на 32), получается увеличение OCR0A на один даёт дополнительно 32 такта задержки, т.е. нопами придётся добивать не более 32 тактов - не так и много... а если сделаем точность 1 ноп - получим 256*32=8192 градации... работа то ведь в этом прерывании невелика общие катоды (аноды, в зависимости от применённого индикатора) выключить.Ivanoff-iv писал(а):256 ступеней получаем таймером с прерыванием по совпадению, а там точнехонько добиваем нопами или "делай()"
Добавлено after 3 minutes 20 seconds:
ни разу ещё не упирался в глобальную нехватку времени, даже в прерываниях.
а локальная как правило лечится созданием буфера и перераспределением вычислений на раньшее время, чтобы к узкому моменту уже всё было максимально посчитано.
Последний раз редактировалось Ivanoff-iv Вт июл 31, 2018 20:02:30, всего редактировалось 1 раз.
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: In vino veritas
Мурик, ну всем уже понятно, что все тут говно, а вы д'Артаньян, что вы тут пытаетесь всех на чистую воду выводить?
угомонитесь уже и погрузитесь в таинства STM32 - пока мы тут ведем дозволенне речи, производитель, небось, выпустил за пару центов новые МК с 100500 таймерами - вот там и индицируйте себе аппаратно.
динамическая индикация отлично может быть реализована на том самом 10-битном ШИМе, если вы не в курсе. при тактовой частоте AVR в 8 МГц частота ШИМа будет 800 герц - более чем достаточно для 8-разрядного индикатора. что вы пристали к человеку?
угомонитесь уже и погрузитесь в таинства STM32 - пока мы тут ведем дозволенне речи, производитель, небось, выпустил за пару центов новые МК с 100500 таймерами - вот там и индицируйте себе аппаратно.
динамическая индикация отлично может быть реализована на том самом 10-битном ШИМе, если вы не в курсе. при тактовой частоте AVR в 8 МГц частота ШИМа будет 800 герц - более чем достаточно для 8-разрядного индикатора. что вы пристали к человеку?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: In vino veritas
ARV, я пытаюсь разобраться, а вы лезете со своими STM32.
Понемногу начинаю понимать о чем речь. Метод не такой как я предполагал.
Понемногу начинаю понимать о чем речь. Метод не такой как я предполагал.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: In vino veritas
А зачем вам разбираться-то? у вас же все и так "из коробки" - таймеров завались, режимов ШИМа завались... к чему какие-то тупые изыски в алгоритмах? все вот эти извраты на PICах с единственным таймером? или даже, страшно вспомнить, с единственным прерыванием на все источники... или вообще страх - таймер, у которого флаг переполнения не вызывает запрос на прерывание, и узнать о переполнении таймера можно только поллингом этого флага...
зачем вам это все? это ведь прошлый век МК. вам, современным, это не нужно, вам куб нагенерит абсолютно любой каприз! и за 30 центов.
зачем вам это все? это ведь прошлый век МК. вам, современным, это не нужно, вам куб нагенерит абсолютно любой каприз! и за 30 центов.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: In vino veritas
ну, да, можно и 16 битный таймер (возможно, в режиме 10 битного или в СТС режиме) заделать с делителем 1 или 8...
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: In vino veritas
[uquote="Мурик",url="/forum/viewtopic.php?p=3429491#p3429491"]
По-другому. Достаточно узнать как работает аппаратный ШИМ и станет понятно как подобное реализовать.
В случае с 2-мя таймерами - один включает индикатор, второй выключает. В случае с 1 таймером с компаратором - по переполнению включаем индикатор, по событию от компаратора - выключаем.
Программный ШИМ готов
Это микросекунда, т. е. частота 1 миллион прерываний в секунду (для PICа с 4 тактами на инструкцию это слишком много). Или сделано как-то по другому?[/uquote]Аlex писал(а):1 us
По-другому. Достаточно узнать как работает аппаратный ШИМ и станет понятно как подобное реализовать.
В случае с 2-мя таймерами - один включает индикатор, второй выключает. В случае с 1 таймером с компаратором - по переполнению включаем индикатор, по событию от компаратора - выключаем.
Программный ШИМ готов
Re: In vino veritas
Все гораздо проще - Т1 имеет регулируемый период (ICRn) и два дополнительных источника прерывания внутри того периода (OCRnA и OCRnB).
Подгоняем как можно больше градаций/тактовых импульсов на вход (предделитель и тактовая частота МК также регулируемые) для избранного интервала отображения одной позиции
и гуляем в пределах 16 разрядов внутри измеряемого интервала.
Остальное - анализ какой лапкой дернуть и какие данные куда подгружать делает программа обработки прерываний.
Аналогия "фоновой задачи" в ПК.
Дополнительные "мелочи" - необходимость предподготовки данных до начала очередного окна/тайм-слота индикации, а не обычно применяемого постанализа. И как дополнительна фишка - для более затяжной обработки делается преданализ на каком из участков ШИМ (темновом или световом) его исполнять удобно (1/3 - 2/3).
Код с объяснениями ... чуток попозже..
Ежли есть желание самому покопать (мне вспоминать тонкости и саму схему пока некогда) - кушайте самостоятельно -
посикоку искать в дебрях темы влом - скину из архивных скелетов "не глядя"(возможно завершающий вариант или прототип - Х/З перечитывать долго...):
Тут добил... порстой полевик...
итак схемка (абсолютно простая)
http://img.radiokot.ru/files/20529/1nfmvdzy3x.GIF
и прожка к оной вопрос на засыпку:
почему при 2,4-3,7 вольтах питания РАБОТАЕТ,
а при 4-5 вольт питания ВИСНЕТ в чуток приоткрытом состоянии.
Даташит на полевик (оный нормирован на открывание при напряжении на затворе 1,8 вольта) ну и маркировка моего экземпляра

ДОСАДКА - это ж ПРОСТЕЙШАЯ СХЕМА!!!

Подгоняем как можно больше градаций/тактовых импульсов на вход (предделитель и тактовая частота МК также регулируемые) для избранного интервала отображения одной позиции
и гуляем в пределах 16 разрядов внутри измеряемого интервала.
Остальное - анализ какой лапкой дернуть и какие данные куда подгружать делает программа обработки прерываний.
Аналогия "фоновой задачи" в ПК.
Дополнительные "мелочи" - необходимость предподготовки данных до начала очередного окна/тайм-слота индикации, а не обычно применяемого постанализа. И как дополнительна фишка - для более затяжной обработки делается преданализ на каком из участков ШИМ (темновом или световом) его исполнять удобно (1/3 - 2/3).
Код с объяснениями ... чуток попозже..
Ежли есть желание самому покопать (мне вспоминать тонкости и саму схему пока некогда) - кушайте самостоятельно -
посикоку искать в дебрях темы влом - скину из архивных скелетов "не глядя"(возможно завершающий вариант или прототип - Х/З перечитывать долго...):
Тут добил... порстой полевик...
итак схемка (абсолютно простая)
http://img.radiokot.ru/files/20529/1nfmvdzy3x.GIF
и прожка к оной вопрос на засыпку:
почему при 2,4-3,7 вольтах питания РАБОТАЕТ,
а при 4-5 вольт питания ВИСНЕТ в чуток приоткрытом состоянии.
Даташит на полевик (оный нормирован на открывание при напряжении на затворе 1,8 вольта) ну и маркировка моего экземпляра
ДОСАДКА - это ж ПРОСТЕЙШАЯ СХЕМА!!!
Re: In vino veritas
Может убрать индуктивность с питания?
Спойлер
- Вложения
-
- TEST_BOB51_2.PNG
- (35.33 КБ) 349 скачиваний
Re: In vino veritas
Вместо индуктивности поставить диод от обратки. А за ним к МК поставить ёмкость приличную.
Глупый не задает вопросы. Глупый и так все знает.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: In vino veritas
я же вам предлагал ряд экспериментов, которые позволили бы локализовать вашу проблему - их надо было делать последовательно.BOB51 писал(а):ДОСАДКА - это ж ПРОСТЕЙШАЯ СХЕМА!!!
но раз уж перешли сразу к последнему варианту, то попробуйте сделать программу, которая просто включает и выключает в цикле полевик (ничего более!), и посмотрите. как оно будет работать. это для того, чтобы исключить любые программные ошибки.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: In vino veritas
Там не индуктивность а ферритова бусинка на проволочке типа вот этих
http://img.radiokot.ru/files/20529/ykmdgkf5o.gif
Подобное же явление при работе ключа от 1 (через промежуточный каскад) было устранено подтяжкой базы дополнительного каскада к 1 через 10килоомник (R9 на нижеприведенной схеме)
http://img.radiokot.ru/files/20529/1ndkrgpirm.GIF
похоже, что полевик имеет увеличенный ток перезарядки затвора при 5 вольтовом питании.
И чего-то типа "триггерной затяжки" выходного каскада в МК за собой тянет - номинал-то для полевика 3,3 вольта при управлении от 1,8. Это ежли б я допустим IRL530 на затвор загнал не 5, а 20 и более вольт - вроде и как по максимальному значению даташит - да ктож его знает....
Поставлен же тот IRLML6401 только по условию "имелся в наличии" на данный момент.
Вобщем цель энергоотключения при питании от 3,7 вольтового акумулятора выполняет и на том спасибки.
А проблемку... положил в "хроники" на память и народу для ознакомления с возможными точками контроля в проектах.
Обычно при понижении питания схемка сбоит а тут наоборот...

Была б ошибка программная - не работало бы ни в каком варианте.
Полевик без линейки светодиодов нагрузку в виде одиночного "мигающего светика" прекрасно отрабатывает в полном диапазоне питания. У планки я думаю ток не более 1 А - характеристики полевика вполне позволяют с таким справится.
Единственно на что уповать можно - нет явно выраженной цепи постоянного тока для вывода D полевика - замыкание или через емкость С7 или через линейку светиков (а что в их потрохах - Х/З). Да на необходимость большего, чем могут обеспечить выходные каскады МК тока перезарядки емкости затвора при 5 вольтовом источнике.
Одначе в моем случае это всего-то СТАТИЧЕСКОЕ включение/выключение, даже не низкочастотное переключение.

Посмотрю как-нить напружку...
Предполагаю, что в случае подвисания в последнем варианте на лапке МК будет висеть 1... (в схеме с транзисторным ключом затягивало в 0)...

http://img.radiokot.ru/files/20529/ykmdgkf5o.gif
Подобное же явление при работе ключа от 1 (через промежуточный каскад) было устранено подтяжкой базы дополнительного каскада к 1 через 10килоомник (R9 на нижеприведенной схеме)
http://img.radiokot.ru/files/20529/1ndkrgpirm.GIF
похоже, что полевик имеет увеличенный ток перезарядки затвора при 5 вольтовом питании.
И чего-то типа "триггерной затяжки" выходного каскада в МК за собой тянет - номинал-то для полевика 3,3 вольта при управлении от 1,8. Это ежли б я допустим IRL530 на затвор загнал не 5, а 20 и более вольт - вроде и как по максимальному значению даташит - да ктож его знает....
Поставлен же тот IRLML6401 только по условию "имелся в наличии" на данный момент.
Вобщем цель энергоотключения при питании от 3,7 вольтового акумулятора выполняет и на том спасибки.
А проблемку... положил в "хроники" на память и народу для ознакомления с возможными точками контроля в проектах.
Обычно при понижении питания схемка сбоит а тут наоборот...
Была б ошибка программная - не работало бы ни в каком варианте.
Полевик без линейки светодиодов нагрузку в виде одиночного "мигающего светика" прекрасно отрабатывает в полном диапазоне питания. У планки я думаю ток не более 1 А - характеристики полевика вполне позволяют с таким справится.
Единственно на что уповать можно - нет явно выраженной цепи постоянного тока для вывода D полевика - замыкание или через емкость С7 или через линейку светиков (а что в их потрохах - Х/З). Да на необходимость большего, чем могут обеспечить выходные каскады МК тока перезарядки емкости затвора при 5 вольтовом источнике.
Одначе в моем случае это всего-то СТАТИЧЕСКОЕ включение/выключение, даже не низкочастотное переключение.
Посмотрю как-нить напружку...
Предполагаю, что в случае подвисания в последнем варианте на лапке МК будет висеть 1... (в схеме с транзисторным ключом затягивало в 0)...
Re: In vino veritas
Подключи осциллограф к питанию и посмотри что в момент включения. Может бросок тока большой и проседает питание до перезагрузки мк.
И то что при 2,7в нормально, а при 5 улетает, тоже косвенно говорит об этом. Хоть светодиод и токовый прибор, но при напряжении ниже номинального для светодиода, ток который он ест становится заметно меньше. То есть при низком напряжении питания линейка потребляет меньше, чем при номинальных 5В.
Смотри блок питания, может его не хватает, может он просто плохой и не может быстро отреагировать на просед.
И то что при 2,7в нормально, а при 5 улетает, тоже косвенно говорит об этом. Хоть светодиод и токовый прибор, но при напряжении ниже номинального для светодиода, ток который он ест становится заметно меньше. То есть при низком напряжении питания линейка потребляет меньше, чем при номинальных 5В.
Смотри блок питания, может его не хватает, может он просто плохой и не может быстро отреагировать на просед.
Глупый не задает вопросы. Глупый и так все знает.
Re: In vino veritas
Спасибо за идею регулировки яркости семисегментника.
Добавил ее в аппаратный контроллер индикатора.
Для тех кому интересно.
В код внесены изменения потому что у связки TIM2 и DMA1 Channel2 только одно событие запуска DMA, а нужно не меньше двух и желательно от одного таймера (чтобы "лишний" таймер не использовать).
Этому условию соответствуют несколько связок таймер - канал DMA. Был выбран TIM3 и DMA1 Channel3.

По 4 каналу сравнения TIM3 сегмент начинает светится, а по переполнению таймера отключается. Все работает без прерываний.
И без участия процессора, т. е. аппаратно.
Для тех кому интересно.
Спойлер
Основа взята на этом сайте. http://www.cyberforum.ru/blogs/204791/blog5170.htmlВ код внесены изменения потому что у связки TIM2 и DMA1 Channel2 только одно событие запуска DMA, а нужно не меньше двух и желательно от одного таймера (чтобы "лишний" таймер не использовать).
Этому условию соответствуют несколько связок таймер - канал DMA. Был выбран TIM3 и DMA1 Channel3.
По 4 каналу сравнения TIM3 сегмент начинает светится, а по переполнению таймера отключается. Все работает без прерываний.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: In vino veritas
интересно не это, а то, что учитесь вы у "безнадежно отставших, так и не освоивших" прогрессивное.Мурик писал(а):Для тех кому интересно.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!


