Например TDA7294

Форум РадиоКот • Просмотр темы - Шим atmga328
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 12:08:16

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Шим atmga328
СообщениеДобавлено: Вс сен 17, 2017 12:39:03 
Держит паяльник хвостом
Аватар пользователя

Карма: 4
Рейтинг сообщений: 45
Зарегистрирован: Пн июн 13, 2016 19:37:24
Сообщений: 915
Откуда: Perm
Рейтинг сообщения: 0
Нужно настроить шим на 30кгц примерно, прочитал тут как можно сделать на arduino. Но фиг знает как конфигурируется порт внутри ардуино иде. Кто знает где найти исходник analogWrite или как сделать шим 30 кгц на atmega328?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Шим atmga328
СообщениеДобавлено: Вс сен 17, 2017 14:17:13 
Электрический кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 128
Зарегистрирован: Чт июн 20, 2013 00:00:58
Сообщений: 1031
Откуда: москва, м.Сходненская
Рейтинг сообщения: 1
А не проще по ДШ три регистра настроить?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Шим atmga328
СообщениеДобавлено: Вс сен 17, 2017 14:28:26 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6618
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
тебе прям ровно надо? если нет или ДШ читай и калькулируй или, если самому лень: КодеВижнАВР (например) при создании нового проекта настрой как надо таймер и он тебе выдаст что надо в регистры вписать (уже готовый код, который ардуина должна понять).
если надо точно — ещё придётся или тактовой частотой играть (подбором кварца (или внешнего RC осциллятора)) или настройкой регистра отвечающего за частоту внутреннего генератора — в зависимости от того, чем тактируется контроллер) можно частоту не трогать, а ограничить размер ШИМа (изменить число, при котором будет обнуляться счетчик), но такое изменение придется учитывать при расчетах т.к. 100% заполнения тоже будет при другом значении регистра.

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Шим atmga328
СообщениеДобавлено: Вс сен 17, 2017 15:05:51 
Держит паяльник хвостом
Аватар пользователя

Карма: 4
Рейтинг сообщений: 45
Зарегистрирован: Пн июн 13, 2016 19:37:24
Сообщений: 915
Откуда: Perm
Рейтинг сообщения: 0
datasheet вкурить пытаюсь, но что то туплю


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Шим atmga328
СообщениеДобавлено: Вс сен 17, 2017 15:40:00 
Прорезались зубы

Карма: 5
Рейтинг сообщений: 7
Зарегистрирован: Вс дек 10, 2006 19:26:13
Сообщений: 202
Рейтинг сообщения: 0
Вроде бы так.

Код:
#include <mega328p.h>

interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
OCR0A= 125; // Тут задается скважность,можно и не в прерывании

}

void main(void)
{
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 8000,000 kHz
// Mode: Fast PWM top=0xFF
// OC0A output: Non-Inverted PWM
// OC0B output: Disconnected
TCCR0A=0x83;
TCCR0B=0x01;
TIMSK0=0x01;
// Global enable interrupts
#asm("sei")
}


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Шим atmga328
СообщениеДобавлено: Вс сен 17, 2017 18:04:25 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Выходную частоту легко посчитать. Например для FAST PWM разделите тактовую частоту контроллера на коэффициент деления предделителя, затем получившиеся разделите на максимальное значение счетчика +1. Это и будет частота ШИМ.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Шим atmga328
СообщениеДобавлено: Пн сен 18, 2017 05:23:54 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4220
Откуда: Ижевск
Рейтинг сообщения: 0
Как вариант в мнемокодах
Код:
F_CPU=16000000
M=100; число градаций PWM
PB2/OC1B=OUT; выход сигнала
OCR1A=F_CPU/30000-1; период сигнала
OCR1B=N*F_CPU/30000/M-1;N=1...M-1; длительность сигнала
TCCR1A=COM1B1|WGM11|WGM10;
TCCR1B=WGM13|WGM12|CS10; режим FAST PWM 15; F_CPU/1
За счет буфера изменение значений будет в момент BOTTOM, поэтому можно обойтись без прерываний.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Шим atmga328
СообщениеДобавлено: Пн сен 18, 2017 06:47:42 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1384
Рейтинг сообщения: 0
1 - Нужно рассчитывать значения.
a) Рассчитываем время такта МК. 1/F_CPU = t. Пусть частота кварца 16 МГц. Значит один такт выполняется за 0.0000000625.
b) 1/30000 = 0,00003333333 до бесконечности. Берем 33,3 микросекунды.
с) 0,0000333/0.0000000625 = ~ 533 такта. Но, чтобы получить нужную частоту, смена уровней должна быть в два раза выше рассчетного значения. Значит, ~ 267 тактов.
2 - Есть такая программа AVR Calc. Вводишь частоту или времянку, получаешь готовые цифры.
Изображение


Последний раз редактировалось Demiurg Пн сен 18, 2017 07:08:03, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Шим atmga328
СообщениеДобавлено: Пн сен 18, 2017 06:59:33 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Demiurg писал(а):
F_CPU/делитель таймера/разрядность таймера/2
Для режима FPWM (а скорее всего он и нужен ТС, если еще нужен) делить на два не надо. Ну и конечно уж ни как не на разрядность.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Шим atmga328
СообщениеДобавлено: Пн сен 18, 2017 07:09:45 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1384
Рейтинг сообщения: 0
При расчете частоты обязательно учитывается разрядность ШИМ-а. Считайте сами.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Шим atmga328
СообщениеДобавлено: Пн сен 18, 2017 07:12:11 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Наверное Вы неверно понимаете что такое разрядность. По Вашей формуле для Т0и 2 надо делить на 8, для Т1 на 16.

Добавлено after 59 seconds:
А нужно делить на количество возможных состояний счетчика или на TOP+1.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Шим atmga328
СообщениеДобавлено: Пн сен 18, 2017 07:18:12 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1384
Рейтинг сообщения: 0
Да, внесем поправку, количество возможных состояний счетчика.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Шим atmga328
СообщениеДобавлено: Пн сен 18, 2017 08:30:44 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14054
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Нужно настроить шим на 30кгц примерно, прочитал тут как можно сделать на arduino. Но фиг знает как конфигурируется порт внутри ардуино иде. Кто знает где найти исходник analogWrite или как сделать шим 30 кгц на atmega328?


Такие вещи на ардуинках не приветствуются (ибо там таймеры сконфигурированы под системные функции - самостоятельным вмешательством в конфигурацию можно где-нибудь в ином месте прожку "запороть", даже не подозревая про то - попандос может случится в самом неожиданном месте, когда функции измерения времени или чего "штатно" использующее таймера встретятся ).
Надо брать "чистый" АВР (или иное) и писать на ассемблере или на Си.
Как альтернатива - внешний "малолапый" МК собственно с ШИМ (типа ATTiny25/45/85), последовательным интерфейсом и самодельной системой команд для того интерфейса и собственно ардуинка, управляющая тем "переферийным с мозгами" МК согласно того самопального протокола.
:beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Шим atmga328
СообщениеДобавлено: Пн сен 18, 2017 10:42:30 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4220
Откуда: Ижевск
Рейтинг сообщения: 0
daaar писал(а):
...как сделать шим 30 кгц на atmega328
На ассемблере это будет выглядеть примерно так.
Спойлер
Код:
; Генерация PWM частотой 30кГц на ATmega328
;18.09.2017
; PB2 -   выход сигнала.

   .INCLUDE "m328def.inc"

.equ   Fo=16000000
.equ   N=25
.equ   M=100
;*******************************
   .CSEG
GO:
   SBI   DDRB,2

   LDI   R22,1<<SE
   OUT   SMCR,R22   ; режим SLEEP IDLE

   LDI   XH,HIGH(Fo/30000-1)
   LDI   XL,LOW(Fo/30000-1)
   STS   OCR1AH,XH
   STS   OCR1AL,XL

   LDI   YH,HIGH(N*Fo/30000/M-1)
   LDI   YL,LOW(N*Fo/30000/M-1)
   STS   OCR1BH,YH
   STS   OCR1BL,YL

   LDI   R22,1<<COM1B1|1<<WGM11|1<<WGM10
   STS   TCCR1A,R22   ; режим FAST PWM 15

   LDI   R22,1<<WGM13|1<<WGM12|1<<CS10
   STS   TCCR1B,R22   ; режим FAST PWM 15

;   SEI
WAIT:
   SLEEP
   NOP
;опрос органов управления и занесение новых значений
;   RJMP   GO
.EXIT


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Starichok51 и гости: 29


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y