Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Kavka »

ARV писал(а):ваш код не будет
Ну, ARV, от вас я такого не ожидал :o
А если подумать!? :)
ARV писал(а):из суммы надо вычитать самый "старый" семпл, а не предыдущий
Оно так и есть.
ARV писал(а):что делать с самым первым семплом, когда весь массив обнулен и sum тоже?
Результат ровно то же, что и у вас - среднее между первым значением и FILTR_DEPTH-1 штук нулей.

СпойлерИсходное состояние: массив обнулён, current_sample=0, sum=0. Тут вопросов нет, надёюсь. :)
Далее. Пока current_sample "движется" по массиву из суммы будет вычитаться ноль, и к сумме будет добавляться очередное значение. Догнали до конца массива. А когда current_sample станет равным 0, то он будет указывать на самое старое значение,
которое и будет сначало вычтено из суммы, заменено на новое значение, и новое значение прибалено к сумме. И только потом ++current_sample
Ну и т.д., по кругу...
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25149
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

COKPOWEHEU писал(а):Это может уменьшить мерцание, но не устранить его. Когда напряжение находится в середине младшего бита и от помехи рандомно меняется, будь там хоть 50 разрядов, при изменении старшего разряда будет мигание всех.
Поэтому я и говорил про гистерезис: точность несколько снижается, зато число на индикаторе будет меняться только по серьезному поводу, игнорируя единичные выбросы.

:))) :))) :)))
Дадада... И как это с помощью КИХ или БИХ можно обеспечить ЛЮБОЕ наперед заданное подавление пульсаций - ума не приложу...?
Прежде чем писать глупсти, уважаемый, стоит ознакомится с матчастью хотя бы поверхностно...
COKPOWEHEU писал(а):
Недостаток БИХ состоит в необходимости обеспечения устойчивости.
Честно говоря, не особо углублялся в теорию. "На пальцах" он, как я понимаю, работает аналогично RC-цепочке. А там вся настройка в установке частоты среза, неустойчивости возникнуть неоткуда.

И опять... :facepalm: Не знаю, но мнение имею? Не нужно на пальцах. Вы возьмите за труд прочесть хоть какие нибудь основы по расчету БИХ фильтров. Неустойчивость (возможная) БИХ фильтра следует из его рекурсивности.
COKPOWEHEU писал(а):
При ограниченной разрядности БИХ оказывается много хуже КИХ, поскольку быстро убывает вклад дальних семплов.
А недостаток ли это? Да, результат может отличаеться от прямого усреднения или КИХ, но пульсации меньше.

Нет никаких прямых или "косвенных" усреднений. Результат ФИЛЬТРАЦИИ определится конечным АЧХ синтезированного цифрового фильтра. И чем выше порядок фильтра, тем выше подавление в полосе его заграждения.
COKPOWEHEU писал(а):
На самом деле ресурсы вычислителя при КИХ и БИХ для равной крутизны примерно одинаковы.
Затраты процессора - возможно, но расходовать на такую задачу аж 128 байт памяти вместо 2 я считаю лишним. Для более мощных устройств - возможно, но не для AVR, где всего 64 байта - 8 кБайт. (мелочь без ОЗУ не рассматриваем).

Последняя сентенция, любезный коллега, вообще непонятно с какого потолка взята. Автор вопроса не оговорил объем ОЗУ, а вообще обозначил объем буфера как УЖЕ ПРИНЯТОЕ решение. Ваш "метод" по эффективности фильтрации примерно соответствует КИХ 3 порядка (буфер на 4 семпла). Поэтому предлагать "простейший и эффективнейший" фильтр вместо КИХ 63 порядка не стоит...
:dont_know:
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Kavka »

COKPOWEHEU писал(а):игнорируя единичные выбросы
Против единичных выбросов есть медианный фильтр.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение pokk »

Благодарю всех за советы, сделал как предлагал COKPOWEHEU в самом начале с помощью гистерезиса. Так как у меня не было не какого буфера и я просто все значения суммировал в одну переменную. Вариант с фильтром мне больше интересен, но есть такие параметры на которые надо быстро реагировать(1ms), какого прядка фильтр для этого нужен ?
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение COKPOWEHEU »

Неустойчивость (возможная) БИХ фильтра следует из его рекурсивности.
Пример в студию! Обратной связи нет, откуда возьмутся колебания?
Автор вопроса не оговорил объем ОЗУ, а вообще обозначил объем буфера как УЖЕ ПРИНЯТОЕ решение
Автор вопроса, pokk, только высказал желание избавиться от мерцания чисел на индикаторе. Ни о каком буфере с УЖЕ ПРИНЯТЫМ размером речи не шло. Поскольку неизвестны параметры, говорить об однозначном преимуществе своего метода бессмысленно. Кроме того, в отличие от вас, я не зациклился на "самом лучшем" варианте усреднения, когда другие работают в данной ситуации не хуже.
И как это с помощью КИХ или БИХ можно обеспечить ЛЮБОЕ наперед заданное подавление пульсаций - ума не приложу...?
Вернитесь с небес на землю и предложите уже решение не для абстрактной, а для конкретной задачи. Напряжение меняется со скоростью 1 разряд в минуту, шум в пределах 2 младших разрядов, требуется избавиться от мерцания дисплея. Конкретные числа взяты от балды.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25149
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

COKPOWEHEU писал(а):
Неустойчивость (возможная) БИХ фильтра следует из его рекурсивности.
Пример в студию! Обратной связи нет, откуда возьмутся колебания?

Читаем, смотрим, удивляемся...
:))) :))) :)))
БИХ
Об устойчивости фильтра с бесконечной импульсной характеристикой судят по его передаточной функции. Для дискретного фильтра необходимо и достаточно, чтобы все полюса его передаточной функции по модулю были меньше единицы (т.е. лежали внутри единичного круга на z-плоскости). Все критерии устойчивости, применимые в теории линейных стационарных систем, например критерий устойчивости Найквиста или критерий устойчивости Рауса применимы и в случае БИХ-фильтров.
В отличие от КИХ-фильтров, БИХ-фильтры не всегда являются устойчивыми.

COKPOWEHEU писал(а):
Автор вопроса не оговорил объем ОЗУ, а вообще обозначил объем буфера как УЖЕ ПРИНЯТОЕ решение
Автор вопроса, pokk, только высказал желание избавиться от мерцания чисел на индикаторе. Ни о каком буфере с УЖЕ ПРИНЯТЫМ размером речи не шло. Поскольку неизвестны параметры, говорить об однозначном преимуществе своего метода бессмысленно. Кроме того, в отличие от вас, я не зациклился на "самом лучшем" варианте усреднения, когда другие работают в данной ситуации не хуже.

pokk писал(а):Подскажите, как правильно усреднить данные АЦП.
Понадобилось мне вывести на индикатор данные из АЦП, что бы на индикаторе они сильно не прыгали сделал суммирование 64 значений, а после делением сдвигом. Так вот теперь значение на индикаторе более менее установилось, но если значение АЦП будет на границе перехода 0.9-1.0, то небольшое колебания АЦП опять приводит к прыганию данных на индикаторе.
Как от такого можно избавится ? Думал сделать округление, а не отбрасывание дробной части, но тогда та же ситуация будет повторятся но уже на границе 0.5.

:))) :))) :)))
COKPOWEHEU писал(а):
И как это с помощью КИХ или БИХ можно обеспечить ЛЮБОЕ наперед заданное подавление пульсаций - ума не приложу...?
Вернитесь с небес на землю и предложите уже решение не для абстрактной, а для конкретной задачи. Напряжение меняется со скоростью 1 разряд в минуту, шум в пределах 2 младших разрядов, требуется избавиться от мерцания дисплея. Конкретные числа взяты от балды.

Любезный коллега... Не делайте мне смешно... Последние 5 лет я только и занимаюсь ЦОС.
Даже Ваша терминология выдает Ваше АБСОЛЮТНОЕ непонимание задачи и вариантов ее решения.
Исходные данные для фильтрации определяют полосой спектра полезного сигнала и полосой и относительным действующим значением шумов. А не разрядами в минуту, секунду или за столетие.
Поставьте себе MATLAB и в Toolboxes-Filter Design поиграйте с АЧХ разных реализаций КИХ и БИХ. Может и поймете о чем я веду речь.
А может и нет. :wink:
Но одно могу сказать точно. Еще ни разу АЧХ, ФЧХ и ГВЗ фильтров рассчитанных в матлабе сколь нибудь заметно бы для практики отличались В РЕАЛЬНЫХ изделиях от расчета...
Что для простейших прямоугольных окон анализа КИХ, что для самых изощренных БИХ.
:)

pokk писал(а):Вариант с фильтром мне больше интересен, но есть такие параметры на которые надо быстро реагировать(1ms), какого прядка фильтр для этого нужен ?

Тут нужно отделить мух от котлет.
Есть потребность в реакции сигнала за 1 мс? Тогда это означает, что частота среза ФНЧ составит примерно 1 кГц.
Но для ИНДИКАЦИИ не требуется вывод с такой скоростью - прочесть показания не будет никакой возможности.
В таком варианте можно поставить ДВА последовательных ФНЧ. Один для быстрых процессов со срезом в 1 кГц, а второй для вывода на дисплей со срезом в 2...4 Гц.
При фильтрации необходимо определить полосу шумов, чтобы выбрать корректно частоту семплирования. Нужно помнить, что для фильтрации необходимо, чтобы шум подлежащий режектированию был КОРРЕКТНО преобразован АЦП в цифровой массив. Иначе потребуется входной антиалиасинговый фильтр, который удалит весь спектр, лежащий выше половинной частоты дискретизации смеси сигнала и шума на входе устройства.
Если говорить о порядке фильтра, тогда необходимо обозначить спектральные параметры сигнала и шума.

ЗЫ. разного рода гистерезисы при выводе являются НЕЛИНЕЙНОЙ обработкой и применять ее нужно достаточно аккуратно для исключения фатальных потерь точности.
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение COKPOWEHEU »

Читаем, смотрим, удивляемся...
:))) :))) :)))
БИХ
Не википедию, а конкретный пример.
Подскажите, как правильно усреднить данные АЦП.
Понадобилось мне вывести на индикатор данные из АЦП, что бы на индикаторе они сильно не прыгали сделал суммирование 64 значений, а после делением сдвигом. Так вот теперь значение на индикаторе более менее установилось, но если значение АЦП будет на границе перехода 0.9-1.0, то небольшое колебания АЦП опять приводит к прыганию данных на индикаторе.
Как от такого можно избавится ? Думал сделать округление, а не отбрасывание дробной части, но тогда та же ситуация будет повторятся но уже на границе 0.5.
И где написано, что он хранит все эти измерения по отдельности? Больше похоже на хранение в одной переменной, после 64 измерений - вывод на экран и сброс. Кстати, это подтверждается:
Так как у меня не было не какого буфера и я просто все значения суммировал в одну переменную

Любезный коллега... Не делайте мне смешно... Последние 5 лет я только и занимаюсь ЦОС.
Даже Ваша терминология выдает Ваше АБСОЛЮТНОЕ непонимание задачи и вариантов ее решения.
Я и не претендую на звание гуру, а предлагаю подходящие дли данного случая решения, достаточно простые в реализации, не слишком нагружающие контроллер, но выполняющие поставленную задачу. Для чего-то более серьезного будут применяться другие методы, но для избавления от мерцания индикторов этого достаточно. А вот трата кучи памяти на хранения отдельных измерений - избыточна.
есть такие параметры на которые надо быстро реагировать(1ms), какого прядка фильтр для этого нужен ?
Видимо, имеется в виду реакция контроллера, без вывода на индикатор. Приведите параметры желеха, что за контроллер, какая частота АЦП. Разрядность, скорее всего, 10 бит, иначе именно 64 измерения ставить бессмысленно. Вдруг там всего одно измерение пройти успевает? Или этот импульс это замыкание земли, которое и специально спрятать трудно, не то что случайно пропустить.
ЗЫ. разного рода гистерезисы при выводе являются НЕЛИНЕЙНОЙ обработкой и применять ее нужно достаточно аккуратно для исключения фатальных потерь точности.
Абсолютно согласен. В данном случае ее нужно использовать только для вывода, но не для фильтрации или анализа сигнала.
Последние 5 лет я только и занимаюсь ЦОС.
Видимо, просто смотрим с разных сторон. Вы "сверху", от теории, когда задачу надо решить максимально точно, а ресурсы почти не ограничены. А я "снизу", от железа, когда ресурсы ограничены, и лучше их потратить на основную функциональность, чем на дополнительную, тем более что требуется не повышение точности и не подавление шумов, сравнимых с сигналом, а всего лишь убрать мерцание индикатора при изменении младшего разряда.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25149
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

COKPOWEHEU писал(а):
Читаем, смотрим, удивляемся...
:))) :))) :)))
БИХ
Не википедию, а конкретный пример.

Попробуйте уменьшать делитель в своей формуле расчета, пытаясь увеличить качество фильтрации, и Вы получите искомое.
Еще раз предлагаю ИЗУЧИТЬ расчет БИХ фильтров и Вы САМИ сможете легко получить генерацию... Условие генерации фильтра там очень простое... :)

COKPOWEHEU писал(а):И где написано, что он хранит все эти измерения по отдельности? Больше похоже на хранение в одной переменной, после 64 измерений - вывод на экран и сброс.

Это я понял сразу. Потому и написал первый пост на эту тему. Я говорил о ресурсах ЗАДАЧИ, а не о выборе старинного контроллера с совершенно непотребным соотношением "качество ресурсов-цена".

COKPOWEHEU писал(а):Я и не претендую на звание гуру, а предлагаю подходящие дли данного случая решения, достаточно простые в реализации, не слишком нагружающие контроллер, но выполняющие поставленную задачу. Для чего-то более серьезного будут применяться другие методы, но для избавления от мерцания индикаторов этого достаточно. А вот трата кучи памяти на хранения отдельных измерений - избыточна.

Ваши "простые методы" на самом деле методами НЕ ЯВЛЯЮТСЯ. Потому что НЕ ВЫПОЛНЯЮТ ЗАДАЧУ. Ну то есть "мерцание" то убирают, но ценой достоверности показаний. Вместо вывода ДОСТОВЕРНОГО младшего разряда, Вы предлагаете заменить его некоей цифрой, которая нелинейным образом связана с измеренной величиной. И зачем тогда вообще ее выводить? :dont_know:
Если необходимо показать измерение на дисплее, то это и является ЦЕЛЬЮ, а не игрой в красивый внешний вид формально неподвижной комбинации цифр.
Трата "кучи памяти" в условиях, когда Вы АБСОЛЮТНО не понимаете потребные объемы этой "кучи" для достижения цели, и приводит к той самой ИЗБЫТОЧНОСТИ, которую Вы так не любите.
На самом деле, для эффективной и корректной фильтрации с минимальным расходом ОЗУ необходимо и достаточно ЗНАТЬ СПЕКТРЫ СИГНАЛА И ПОМЕХ и правильно рассчитать фильтр, а не применять первое попавшееся под руку в интернете решение или, хуже того, собственный "деревянный велосипед"...
Чаще всего флюктуация показаний происходит с частотой питающей сети или частотой работы того оборудования, которое и подлежит измерению. Для минимального РАЗМЕРА буфера достаточно выбрать ДЛИНУ буфера равной (или кратной) ПЕРИОДУ основной частоты помехи. Это приведет к тому, что первый "ноль" АЧХ цифрового фильтра окажется точно на частоте помехи и даже короткий буфер из 4 выборок даст феноменальную эффективность... :wink:

COKPOWEHEU писал(а):а всего лишь убрать мерцание индикатора при изменении младшего разряда.

Типичное заблуждение. Это "всего лишь" - суть и есть ЗАДАЧА, которую ПО ВАШИМ ЖЕ СЛОВАМ линейно решить не удается...
ВАМ не удается...
:)
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение COKPOWEHEU »

Еще раз предлагаю ИЗУЧИТЬ расчет БИХ фильтров и Вы САМИ сможете легко получить генерацию... Условие генерации фильтра там очень простое... :)
Еще раз предлагаю привести наконец конкретный пример, а не разбрасываться общими фразами.
Я говорил о ресурсах ЗАДАЧИ, а не о выборе старинного контроллера с совершенно непотребным соотношением "качество ресурсов-цена".
Учитывая, что неизвестно, какой контроллер используется, фраза о непотребности контроллера лишена оснований. А ЗАДАЧУ Вы, видимо, так и не поняли, как и то, что не надо под любую задачу брать самое мощное железо.
Ваши "простые методы" на самом деле методами НЕ ЯВЛЯЮТСЯ. Потому что НЕ ВЫПОЛНЯЮТ ЗАДАЧУ. Ну то есть "мерцание" то убирают, но ценой достоверности показаний. Вместо вывода ДОСТОВЕРНОГО младшего разряда, Вы предлагаете заменить его некоей цифрой, которая нелинейным образом связана с измеренной величиной. И зачем тогда вообще ее выводить? :dont_know:
1. Что-то странное Вы понимаете под задачей, явно не то, что было описано.
2. Поскольку используется усреднение, младший выводимый разряд не совпадает с младшим значащим. Про ширину гистерезиса я ничего не говорил, ее можно взять равной можно одному выводимому разряду, но никто не мешает взять меньше, тогда точность индикации не пострадает.
Я специально упоминал, что гистерезис нужно использовать только для вывода на индикатор, если нужна дополнительная обработка сигнала, использовать для нее измеренное или усредненное значение, но не то, которое выводится на индикатор.
Если необходимо показать измерение на дисплее, то это и является ЦЕЛЬЮ, а не игрой в красивый внешний вид формально неподвижной комбинации цифр.
Про собственную неидеальность АЦП слышали? Для ATmega8 это 1-2 МЗР. Не вижу ничего страшного в потере 1/64-1/2 МЗР. (МЗР - младший значащий разряд)
Блок индикации делается для людей, а человеку далеко не всегда нужна точноть больше 3 десятичных знаков.
Трата "кучи памяти" в условиях, когда Вы АБСОЛЮТНО не понимаете потребные объемы этой "кучи" для достижения цели, и приводит к той самой ИЗБЫТОЧНОСТИ, которую Вы так не любите.
Я представляю себе качество встроенного АЦП и понимаю, что сверхточные измерения на нем не проводят. А вот поиск теоретических решений, без оглядки на реальную задачу, как раз и приводят к избыточности.
На самом деле, для эффективной и корректной фильтрации с минимальным расходом ОЗУ необходимо и достаточно ЗНАТЬ СПЕКТРЫ СИГНАЛА И ПОМЕХ и правильно рассчитать фильтр
Ну-ну, и где Вы возьмете зти значения для сферических условий, в которых будет экспулатироваться устройство? Ничего конкретного не известно не только нам, но даже автору.
Для минимального РАЗМЕРА буфера достаточно выбрать ДЛИНУ буфера равной (или кратной) ПЕРИОДУ основной частоты помехи. Это приведет к тому, что первый "ноль" АЧХ цифрового фильтра окажется точно на частоте помехи и даже короткий буфер из 4 выборок даст феноменальную эффективность... :wink:
Да, точность фильтрации и помехоподавление можно существенно повысить. Но задача не столько в повышении точности, сколько в удобном выводе.
Типичное заблуждение. Это "всего лишь" - суть и есть ЗАДАЧА, которую ПО ВАШИМ ЖЕ СЛОВАМ линейно решить не удается...
ВАМ не удается...
Ну так предложите линейное решение, которое будет работать. Пока слышны только рвссуждения о фильтрах, которые данную задачу не решают. Да, чувствительность повышается, снижаются шумы, даже мерцание индикатора снижается. Но не исчезает.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение FreshMan »

имеется мега8 и mbi5042 (светодиодный драйвер)
надо снять с кварца сигнал и подать на драйвер
надо ли для этого какй-то буфер или можна это сделать напрямую ?
вопрос к тем кто ПРАКТИКОВАЛ подобное :))
Tell Me The Truth
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение akl »

Если CKOPT запрограммировать и выход взять с XTAL2, то будет работать. Но, по мне, лучше так не делать.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение FreshMan »

akl писал(а):Если CKOPT

это что такое ?
akl писал(а):Но, по мне, лучше так не делать.

почему?
Tell Me The Truth
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

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

FreshMan писал(а):это что такое ?
Фьюз такой, почитайте ДШ.
FreshMan писал(а):почему?
Потому что это не есть гут и не по феншую, чтобы кварц ещё чем-то нагружать.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение COKPOWEHEU »

Как вариант - собрать на быстродействующей логике кварцевый генератор и уже от него тактировать как контроллер, так и внешнюю схему. Еще можно попробовать ту же догику повесить на XTAL2, но тут хз, может не хватить мощности. Либо попробовать на m88, у них вроде есть фуз для вывода тактовой частоты ядра на PB0.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15547
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение BOB51 »

А что мешает иметь более высокочастотный тактовый для МК, а драйвер кормить выходом с какого-нить из таймеров? :roll:
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение COKPOWEHEU »

Возможно, хочется работать на пределе возможностей контроллера и драйвера.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение FreshMan »

BOB51 писал(а):А что мешает иметь более высокочастотный тактовый для МК, а драйвер кормить выходом с какого-нить из таймеров? :roll:

не получается
даже если запитать мк от кварца в 16мГц и заюзать 8 разрядный таймер то получится следующее
16МГц /256=62500Гц
это ничтожно мало т.к. у драйвера на борту находится 16 разрядный счетчик и мне надо минимум 8МГц
поскольку 8МГц/65536=122Гц (с такой частотой будут мигать диоды)

может кто-то еще светлую мыслю подкинет ? :)
Tell Me The Truth
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение COKPOWEHEU »

Если делителя 1:2 достаточно, можно использовать таймер, но для m8 подойдет Т1 или Т2, так как Т0 не оборудован блоком сравнения.
Настраиваете таймер на режим СТС, в регистр OCRx записываете 0x01 и оно генерирует на частоте F_CPU/2.
Либо сделать отдельный генератор для драйвера, на 30 МГц, например, а контроллеру подавать его же, но с делителя 1:2.
Кстати, что мешает взять и попробовать подать сигнал с XTAL2 на вход драйвера? Худшее, что может случиться - срыв генерации.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение FreshMan »

COKPOWEHEU, теоретик я смотрю из вас хоть куды :))
Tell Me The Truth
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение COKPOWEHEU »

Ну так! Задача у вас достаточно экзотическая, вот и теоретизирую.
Но насчет СТС-режима Тimer2 попробуйте. Только не 1 туда писать а 0.
Ответить

Вернуться в «Разные вопросы по МК»