Перейти к содержанию

Atmega64a максимальная частота программного шим


artos5

Рекомендуемые сообщения

16 часов назад, Yurkin2015 сказал:

Вы забыли ещё на 256 разделить

то есть не то чтобы забыл - не ту частоту имел ввиду! - я же написал разрешение - частота бита,

частота меандра действительно будет = делить на 256.

Изменено пользователем ruhi

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

9 минут назад, artos5 сказал:

Из за большого количества выходов и из за трудности разводки , не все порты целиком используются

Значит не очень повезло :) Но, всё равно, терпимо. Всё вполне реально сделать.
Буфер в РАМе, который заполняется при изменении значений скважностей. Каждый такт таймера выдёргиваем из буфера значения и отправляем в порт. Вот и весь алгоритм :)

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

13 минуты назад, Alex сказал:

Значит не очень повезло :) Но, всё равно, терпимо. Всё вполне реально сделать.

Этот проект предназначался не для шима изначально. А тут попался ещё один заказ от товарища а железо идеально подходит для этого :) только с софтом нужно заморочиться :)

Есть более производительный алгоритм , но имеет некие недостатки. Интересно как будет для мощного освещения работать... Если хорошо , то применю тот алгоритм . Там требуется гораздо меньшая частота прерывания таймера.

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

26 минут назад, Alex сказал:

Буфер в РАМе, который заполняется при изменении значений скважностей.

А так действительно будет получена максимальная скорость!

Я делал когда то не ШИМ, а отсчет разовых относительных интервалов времени для N каналов (стартовать набор устройств с заданными относительными задержками), примерно этим способом, получилось сделать с разрешением равным тактовой частоте процессора (то есть 16МГц как здесь). Только пришлось ограничения на N ввести чтобы использовать исходный клок - кажется 12 каналов на процессор и вместо таймера ЦПУ процессора - хорошо что на АВР-ах время инструкций постоянное.

Интересная была задачка :)!

 

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

5 часов назад, Starichok сказал:

сильно сомневаюсь, что за 8 команд

Да легко ! Ну, например, в прерывании от таймера можно написать что-нибудь типа такого, в pwm[] лежат значения для ШИМа каждого канала:

timer_interrupt()
{
    byte tmp;
    cnt++;

    tmp = 0xff;
    if(cnt>pwm[0]) tmp &= 0xfe;
    if(cnt>pwm[1]) tmp &= 0xfd;
    if(cnt>pwm[2]) tmp &= 0xfb;
    if(cnt>pwm[3]) tmp &= 0xf7;
    if(cnt>pwm[4]) tmp &= 0xef;
    if(cnt>pwm[5]) tmp &= 0xdf;
    if(cnt>pwm[6]) tmp &= 0xbf;
    if(cnt>pwm[7]) tmp &= 0x7f;
    PORTA = tmp;

    tmp = 0xff;
    и так далее для остальных портов
}

Здесь нет никаких циклов, вычислений адреса или значений переменных.

В строке условия для какого-либо канала имеем 4 команды:

чтение из памяти в регистр - 2 клока,

сравнение регистров - 1 клок,

переход по условию - 2 клока,

или не переход и операция AND регистра с константой - 2 клока

То есть на проверку канала ушло всего 5 клоков. На 40 каналов - 200 клоков. Плюс пять раз вывести регистр в порт (1 клок), пять раз записать в tmp=0xff (1 клок), ну, и счётчик cnt++ ШИМа: чтение-инкремент-запись в память ещё 5 тиков.

То есть всего  215 клоков плюс вход-выход из прерывания.

Таким образом, при 200Гц ШИМа в таком примере 2/3 процессорного времени будет уходить обработку ШИМа.

Ссылка на комментарий
Поделиться на другие сайты

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

8 часов назад, Alex сказал:

А какие там расчёты ?
Инкремент 8-мибитной переменной, сравнение её с другой и установка/сброс бита порта по условию сравнения.

да?

а условие сравнение с неба свалится? и его считать не надо? сам же пишешь:

5 часов назад, Alex сказал:

Буфер в РАМе, который заполняется при изменении значений скважностей.

или на расчет нового значения скважности не надо тратить время и это новое значение будет падать с неба в буфер?

3 часа назад, Yurkin2015 сказал:

чтение из памяти в регистр - 2 клока,

сравнение регистров - 1 клок,

переход по условию - 2 клока,

тебе тот же самый вопрос: а в память значения когда и как попадут? свалятся с неба, и не будет на это потрачено ни одного клока?

Мудрость приходит вместе с импотенцией...

Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

9 часов назад, Alex сказал:

А какие там расчёты ?
Инкремент 8-мибитной переменной, сравнение её с другой и установка/сброс бита порта по условию сравнения.
Не знаю как на AVR, но например на PIC18 вполне реально вместить это в 8 команд. Ещё и останется.

Инкремент - 1, чтение параметра ШИМ для текущей линии - 2, сравнение с другой - 1, установка/сброс - 2 (тут кроется парочка переходов - 1/2 + 2). В лучшем случае удастся впихнуть в 9-10 тактов (еще вопрос!!!) и все это на 40 каналов и 256 тактов ШИМ. При условии длиннющей портянки линейного алгоритма (без лишнего циклирования и переходов), получается около 170 Гц. И это при условии, что МК больше ничем заниматься не будет.

Ссылка на комментарий
Поделиться на другие сайты

13 часа назад, Геннадий сказал:

И это при условии, что МК больше ничем заниматься не будет.

и автор темы упорно молчит про наличие или отсутствие какой-либо периферии...

каким образом будут задаваться новые значения для каждого канала, будет ли при этом какая-то индикация соответствующего канала...

Мудрость приходит вместе с импотенцией...

Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Starichok сказал:
14 часа назад, Геннадий сказал:

 

и автор темы упорно молчит про наличие или отсутствие какой-либо периферии...

Автор пару постов выше показывал схему и фото платы. 

Потом автор в первом посте написал что это дмх контроллер. Думаю тут должно быть понятно что ещё будет использоваться юарт на 250000бод

22 часа назад, artos5 сказал:

Из за большого количества выходов и из за трудности разводки , не все порты целиком используются :)

PCB_NEW-PCB_20190129095228.pdf

Schematic__20190129095255.pdf

Вот схема:

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

В 29.01.2019 в 10:54, artos5 сказал:

Из за большого количества выходов и из за трудности разводки , не все порты целиком используются...

Это еще хуже. UART-ы будут использоваться оба?

Ссылка на комментарий
Поделиться на другие сайты

Вообще одного мне хватит. Два не будет использоваться. 

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

я пдф-ки не качаю. поэтому прозевал, когда была выложена схема.

ну, ладно...

тогда нужно добавить максимальное время, требуемое для приема полного пакета по UART на все 40 каналов.

итого, как минимум, получится время обработки 40 каналов ШИМ плюс время приема пакета на 40 каналов.

потом это суммарное время умножить на 256, и получится период ШИМ. а обратная величина этого периода будет максимальной теоретической частотой ШИМ.

а еще могут оказаться накладные расходы времени, и реальная частота будет еще ниже.

Мудрость приходит вместе с импотенцией...

Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, Starichok сказал:

плюс время приема пакета на 40 каналов.

потом это суммарное время умножить на 256

Это что ж, Вы собираетесь слать пакеты на каждый бит ШИМа? Тогда понятно, почему Вы так упираетесь ...

Нет, дело в том, что у МК есть внутренняя память, вот в неё и записывается принятый пакет с установками ШИМа по каждому из каналов. После этого процедура обработки ШИМа периодически извлекает эти данные уже из памяти МК, ей не нужно ждать нового пакета по UART, программа использует уже принятые ранее данные.

Ссылка на комментарий
Поделиться на другие сайты

Вы Америку не открыли. Мы считали с учетом извлечения данных из RAM MK. Но они (данные) там не вырастают сами собой. Их нужно передать в МК.

Ссылка на комментарий
Поделиться на другие сайты

14 часа назад, Yurkin2015 сказал:

Это что ж, Вы собираетесь слать пакеты на каждый бит ШИМа?

а ты в состоянии предсказать, во время какого бита придет пакет?

интервалы между пакетами могут быть произвольными, и пакет может придти во время ЛЮБОГО бита.

но если мы"затормозили"работу одного произвольного бита, то на такое же время нужно "затормозить" работу всех битов.

и по другому быть не может, не получится...

 

Мудрость приходит вместе с импотенцией...

Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.

Ссылка на комментарий
Поделиться на другие сайты

Как вариант, можно заставить МК не генерировать ШИМ самостоятельно, а воспроизводить его. Тогда можно раскрутить вывод сигналов до 970 Гц (у меня в симуляторе показало такую частоту). Но для этого потребуется 1,5 kB RAM и нагрузить ПК расчетом значений ШИМ, а МК запустить в режиме "магнитофон". Конечно же потребуется решение для пересылки такого кол-ва байт и уменьшения аппетита до (хотя бы) 400Гц. 

Хотя... размер области RAM вполне позволяет применить чередующийся буфер, который можно заполнять без ущерба работы текущих значений ШИМ, с последующим переключением на полученные данные.

Изменено пользователем Геннадий
Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Всем привет! Отчитываюсь! ATmega64A на 16MHz тактовой и при тактировании таймера 2MHz , без проблем выводит 40 каналов ШИМ и обрабатывает данные по двум UART на скорости 250000 бод . Если тактирование выставить без предделителя , то по юарту уже данные не принимает . Как то так!

И это кстати без ассемблера вовсе!

IMG_20190223_172806.jpg

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

В 23.02.2019 в 21:33, artos5 сказал:

без проблем выводит 40 каналов ШИМ и

так с каким периодом ШИМ -то? и с каким разрешением?

лучше бы осциллограмму показал, кто светодиодов то не видел :) !

Изменено пользователем ruhi

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

40 каналов ШИМ , разрешение 8 бит . Частоту не замерял , но думаю в районе 200 Гц . По расчетам таймера частота около 400Гц но она меньше по факту , так как при 200Гц было мерцание видно. Могу завтра измерить точно частоту . Юарт работает на частоте 250000 бод. Программа фристайлер четко состыковались с железом и четко работает :) я ещё программно добавил настройку адреса устройства . Через тот же юарт задаётся (АТ командами).

И работает ещё второй юарт на скорости 9600 бод. Он будет принимать команды по радиоканалу .

33 минуты назад, ruhi сказал:

лучше бы осциллограмму показал, кто светодиодов то не видел :) !

Так  период где-то 200Гц . Осциллограмму сделаю раз интересно . И щас кусок кода покажу в прерывании таймера :)

Не покажу щас . Нет бекапа в облаке . Завтра покажу все :)

Проект на компе дома .

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

Измерил частоту , получается 72Гц ...

Я не пробовал конечно ещё сильнее поднимать частоту . Нужно будет попробовать .

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...