Например TDA7294

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





Текущее время: Вт май 07, 2024 17:33:33

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


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



Начать новую тему Ответить на тему  [ Сообщений: 82 ]    , 2, , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Пт янв 26, 2024 22:22:42 
Опытный кот

Карма: -2
Рейтинг сообщений: 35
Зарегистрирован: Пн сен 10, 2018 19:16:28
Сообщений: 821
Рейтинг сообщения: 0
Jack_A, никакой ШИМ не сравнится по качеству и частоте синуса с ЦАПом 16 бит на резисторах. Есть специальные синусные микросхемы, но дорого. Можно на операх собрать, но гемор. На GD407 DAC только 12бит, но тактовая 400Мгц!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Сб янв 27, 2024 10:51:31 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 837
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 5607
Откуда: Minsk
Рейтинг сообщения: 0
Так я и не агитирую за ШИМ, я - за ЦАП царап :)

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Сб янв 27, 2024 10:58:28 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4222
Откуда: Ижевск
Рейтинг сообщения: 1
Как вариант. Составить таблицу синуса из 129/период, тогда синус получается 775,19Гц. Таблица составляется по выражению
OCR1B=40+40*sin(i*360/129)-1
При этом из опыта
-нежелательно генерировать точки с вырожденным pwm, для чего, немного жертвуя амплитудой, множитель перед sin немного уменьшить. Допустим до 32
-применить контроллер с более продвинутым 8-разрядным таймером, что нибудь типа tiny. Тогда можно таблицу уменьшить в 2 раза за счет занесения в регистр сравнения байта вместо слова
-поднять частоту тактирования до максимально возможной. Тогда можно и амплитуду поднять.


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Пн янв 29, 2024 13:26:48 
Нашел транзистор. Понюхал.

Зарегистрирован: Ср сен 04, 2019 17:59:23
Сообщений: 165
Откуда: Гомель
Рейтинг сообщения: 0
Но насколько подсказывает логика, в вопросах безопасности на транспорте, как и в медоборудовании, несертифицированная самодеятельность не допускается. Или не?
Лично у нас всё должно пройти по бумагам, даже замены конденсаторов, не говоря про стенды и покуда не проверят и подпишут разрешение ничего менять и использовать не имеешь право. Для настройки, только заводские стенды и поверенное оборудование. А для выявлении причин отказа, это не критично и по бумагам пройдёт без проблем.

Добавлено after 9 hours 38 seconds:
Таблица составляется по выражению
OCR1B=40+40*sin(i*360/129)-1
Зарядил расчёт на ардуино, какая то странная таблица получается, очень часто фигурирует ноль.
void setup(){
Serial.begin(9600);
}

void loop(){
for (int i=0;i<130;i++) {
Serial.print(byte (40+40*sin(i*360/129)-1));
Serial.print(", ");
}
delay(100000); // Задержка, чтобы успеть скопировать
}


Вернуться наверх
 
Особенности хранения литиевых аккумуляторов и батареек

Потеря емкости аккумулятора напрямую зависит от условий хранения и эксплуатации. При неправильном хранении даже самый лучший литиевый источник тока с превосходными характеристиками может не оправдать ожиданий. Технология, основанная на рекомендациях таких известных производителей литиевых источников тока, как компании FANSO и EVE Energy, поможет организовать правильный процесс хранения батареек и аккумуляторов.

Подробнее>>
В сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Пн янв 29, 2024 13:46:41 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2809
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18114
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
ну и что ты там успел скопировать?

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


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Пн янв 29, 2024 16:06:31 
Нашел транзистор. Понюхал.

Зарегистрирован: Ср сен 04, 2019 17:59:23
Сообщений: 165
Откуда: Гомель
Рейтинг сообщения: 0
Типа вот такой последовательности цифр 39,75,0,78,0,55,27,44,38,33,77,0,78,0,77,32,39,43,28,54,0,78,0,75,37,34,49,23,59,0,77,2,73,7,29,54,18,
63,9,76,4,70,11,62,58,14,67 и т.п.


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Пн янв 29, 2024 17:39:52 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2809
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18114
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
ну да, чушь нереальная.
вообще-то, аргумент синуса должен быть в радианах, а не в градусах. видимо, поэтому и получил ты такие результаты.
лучше нп компе посчитай - там калькулятор считает в градусах.
и даже на компе быстрее будет - не надо ждать по 100 секунд твою задержку.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Вт янв 30, 2024 10:50:31 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4222
Откуда: Ижевск
Рейтинг сообщения: 0
Нифига не понимаю в этих кыржиках. Поэтому, в качестве ликбеза. Почему i<130, а не 129? Почему открывающих скобок меньше чем закрывающих? :facepalm:


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Вт янв 30, 2024 10:57:20 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2809
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18114
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
пересчитай скобки.
я вижу одинаковое количество.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Вт янв 30, 2024 13:03:26 
Нашел транзистор. Понюхал.

Зарегистрирован: Ср сен 04, 2019 17:59:23
Сообщений: 165
Откуда: Гомель
Рейтинг сообщения: 0
аргумент синуса должен быть в радианах, а не в градусах..
Если значение i переводить в радианы, то данные в таблице более похожи, а если выражение в скобках, то тоже как бы не то получается.
39,42,44,46,48,50,52,54,55,57,59,61,62,64,65,67,68,69,70,72,73,74,75,75,76,77,77,78,78,78,78,78,78,78, 78,78,77,77,76,76,75,74,73,72,71,70,69,67,66,64,63,61,60,58,56,55,53,51,49,47,45,43,41,39,38,36,34,32, 30,28,26,24,22,21,19,17,16,14,13,11,10,8,7,6,5,4,3,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,3,4,5,7,8,9,10,12, 13,15,16,18,20,22,23,25,27,29,31,33,35,37,38.

Добавлено after 7 minutes 24 seconds:
Почему i<130, а не 129?
i=130, чтобы в таблице получить 129 значений.


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Вт янв 30, 2024 14:18:03 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2809
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18114
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 1
Медали: 1
Лучший человек Форума 2017 (1)
Alex_ka писал(а):
Если значение i переводить в радианы
i - это переменная цикла, целое число. а радианах должен быть аргумент синуса.
и градусы в формуле вообще не нужны.
360 градусов - это 2*PI.
и формула должны выглядеть так:
sin(2 * PI * i / steps)
где steps - число шагов, у тебя их 129.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Вт янв 30, 2024 14:18:34 
Грызет канифоль

Карма: 9
Рейтинг сообщений: 80
Зарегистрирован: Чт ноя 06, 2014 13:09:06
Сообщений: 251
Рейтинг сообщения: 1
А чего такой маленький диапазон (амплитуда всего 40)? Так надо?

Несколько нулей: это (скорей всего):
* из-за маленького динамического диапазона (вблизи к максимуму/минимуму cинус мало меняется - производная то нулевая или близкая к нулю)
* и скорей всего, ты не округляешь (не правильно округляешь) у меня нулей меньше :-)

То, что не так округление работает говорит то, что первое значение в таблице 39, а вообще-то должно быть 40 (как я понял из ранее выложенного исходника).

Alex_ka писал(а):
i=130, чтобы в таблице получить 129 значений.


А у тебя 130 значений: i = 0, 1, 2, .... 129

Вот такоая таблица на 129 элементов у меня получилась (если амплитуда 40 и смещение 40)
Спойлер
Код:
uint8_t sin_table [129] = {
    40,  42,  44,  46,  48,  50,  52,  53,
    55,  57,  59,  60,  62,  64,  65,  67,
    68,  69,  71,  72,  73,  74,  75,  76,
    77,  78,  78,  79,  79,  79,  80,  80,
    80,  80,  80,  80,  79,  79,  78,  78,
    77,  76,  76,  75,  74,  73,  71,  70,
    69,  67,  66,  64,  63,  61,  60,  58,
    56,  54,  52,  51,  49,  47,  45,  43,
    41,  39,  37,  35,  33,  31,  29,  28,
    26,  24,  22,  20,  19,  17,  16,  14,
    13,  11,  10,   9,   7,   6,   5,   4,
     4,   3,   2,   2,   1,   1,   0,   0,
     0,   0,   0,   0,   1,   1,   1,   2,
     2,   3,   4,   5,   6,   7,   8,   9,
    11,  12,  13,  15,  16,  18,  20,  21,
    23,  25,  27,  28,  30,  32,  34,  36,
    38
};


Исходник (если это так можно назвать) надо?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Вт янв 30, 2024 15:04:03 
Нашел транзистор. Понюхал.

Зарегистрирован: Ср сен 04, 2019 17:59:23
Сообщений: 165
Откуда: Гомель
Рейтинг сообщения: 0
Исходник (если это так можно назвать) надо?
Не плохо было бы. При i=130, значений в таблице у меня сформировало почему-то 129. Спасибо всем за помощь.


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Вт янв 30, 2024 15:21:13 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2809
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18114
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
у тебя не может быть i=130, так как в твоей формуле
for (int i=0;i<130;i++)
i всегда меньше 130.
а сформироваться у тебя должно 130 значений, так как от 0 до 129 количество значений переменой цикла равно 130.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Вт янв 30, 2024 17:07:51 
Грызет канифоль

Карма: 9
Рейтинг сообщений: 80
Зарегистрирован: Чт ноя 06, 2014 13:09:06
Сообщений: 251
Рейтинг сообщения: 1
Не плохо было бы


В личку кинул исходник (в stdout выводит си-шный массив). Но тебе же еще модулировать, как мне кажется, желательно использовать весь диапазон значений (0.255), а не его треть (0..80). В исходнике константами настраивается число точек в периоде, амплитуда и смещение.

Ну и частота у тебя константа (как я понял), непонятно почему не хочешь в таблицу положить кратное число периодов, чтобы была точная частота на выходе без "фазового дрожания" и без необходимости что-то пересчитывать "на лету" - во флеше то места навалом (или нет?).


Таблица синуса для амплитуды 120 (смещение 128)
Спойлер
Код:
uint8_t sin_table [129] = {
   128, 134, 140, 145, 151, 157, 163, 168,
   174, 179, 184, 189, 194, 199, 204, 208,
   212, 216, 220, 224, 227, 230, 233, 236,
   238, 241, 242, 244, 245, 246, 247, 248,
   248, 248, 248, 247, 246, 245, 243, 242,
   240, 237, 235, 232, 229, 226, 222, 218,
   214, 210, 206, 201, 197, 192, 187, 182,
   176, 171, 165, 160, 154, 148, 143, 137,
   131, 125, 119, 113, 108, 102,  96,  91,
    85,  80,  74,  69,  64,  59,  55,  50,
    46,  42,  38,  34,  30,  27,  24,  21,
    19,  16,  14,  13,  11,  10,   9,   8,
     8,   8,   8,   9,  10,  11,  12,  14,
    15,  18,  20,  23,  26,  29,  32,  36,
    40,  44,  48,  52,  57,  62,  67,  72,
    77,  82,  88,  93,  99, 105, 111, 116,
   122
};


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Вт янв 30, 2024 21:27:26 
Опытный кот

Карма: -2
Рейтинг сообщений: 35
Зарегистрирован: Пн сен 10, 2018 19:16:28
Сообщений: 821
Рейтинг сообщения: 0
Чтобы управлять амплитудой, таблицу нужно пересчитывать. Имеет смысл сократить таблицу до четверти и памяти меньше занимает. Вторая четверть зеркальна и т.д.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Ср янв 31, 2024 06:29:51 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4222
Откуда: Ижевск
Рейтинг сообщения: 0
viiv писал(а):
Таблица синуса для амплитуды 120 (смещение 128)
Думаю, при тактовой 8МГц частота при такой таблице будет 8'000'000/256/129~242Гц вместо 775 требуемых. Придется уменьшать число точек/период или задирать тактирование до 25,6МГц. Не каждая mega8 справится.
linkov1959 писал(а):
Чтобы управлять амплитудой, таблицу нужно пересчитывать.
Можно таблицу синуса нормировать типа
SIN(I*360/129). Тогда для управления амплитудой можно будет модулировать множитель по той же таблице синуса.
OUT_PWM=40+K*SIN(I*360/129), где K=40 без модуляции и K 0...40 с модуляцией.


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Ср янв 31, 2024 09:25:48 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2809
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18114
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
akl писал(а):
SIN(I*360/129)
то есть, мои слова, что аргумент должен быть в радианах, для тебя пустой звук?
повторю специально для тебя:
Starichok51 писал(а):
градусы в формуле вообще не нужны.
360 градусов - это 2*PI.
и формула должна выглядеть так:
sin(2 * PI * i / steps)
где steps - число шагов, у тебя их 129.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Ср янв 31, 2024 10:05:08 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4222
Откуда: Ижевск
Рейтинг сообщения: 0
Starichok51 писал(а):
мои слова, что аргумент должен быть в радианах, для тебя пустой звук
:cry: да.
Специально для тебя значение синуса для i=1
Изображение


Вложения:
SIN_GRAD_RADIAN.PNG [21.84 KiB]
Скачиваний: 172
Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Синус из ШИМ
СообщениеДобавлено: Ср янв 31, 2024 11:37:35 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2809
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18114
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
ты лучше покажи, что посчитает МК по твоей формуле
SIN(I*360/129)
для i=1,
а не в компьютерном калькуляторе.

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


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18


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

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


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