Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Таймеры, ШИМ и все про них » Нужна программа для ATmega 8 для формирования синуса 50 Гц через ШИМ


Нужна программа для ATmega 8 для формирования синуса 50 Гц через ШИМ

Сообщений 1 страница 9 из 9

1

Нужна программа для ATmega 8 для формирования синуса 50 Гц через ШИМ. ШИМ работает на частоте от 10-15 КГц.
Форма сигнала с 2х портов: на 1 порту половинка синуса - пауза
                                          на 2 порту пауза - половинка синуса
Между переключением одной половинки на вторую нужно мертвое время ~2.5 милисекунды (чтоб транзисторы 1 плеча успели закрыться, а второго плеча открыться).
Как лучше организовать это?

0

2

1 насчет 2.5 миллисекунд ты ошибся - наверное, микросекунд
2 МК М8 не очень годится. Чтобы получить ШИМ на двух выходах нужно использовать разные каналы. на это может быть использован только timer1 в режиме fact PWM. будут потрачены все ресурсы: icr1 - на период ШИМ, ocr1a - 1-й канал длительности ШИМ, ocr1b - 2-й канал   
3 в M88 эти возможности есть во всех трех таймерах. а период 256 тактов можно получить автоматически в timer0 и 2.
4 еще лучше tiny85, где имеется ВЧ-ШИМ с тактовой частотой до 64 МГц. Т.е. можно получить Fibv=250 кГц. А это важно! Если необходимо получить широкий диапазон воспроизводимых частот. С t85 удается сформировать синус до 10 кГц!
5 Чтобы сформировать сигнал с помощью ШИМ необходимо с  достаточно высокой частотой (например, 22 кГц) перезагружать значение ШИМ (в OCRXX). Для 50 Гц минимальное значение частоты перезагрузки ЦАП (ШИМ это тот же ЦАП) должно быть порядка 2-5 кГц (хотя бы 32 - 64 точки на период). при этом Кгармоник для синуса будет порядка 2-5 %.
Значения ШИМ берутся последовательно из таблицы в памяти. Поэтому форма может быть ЛЮБАЯ!
6 возможен принцип DDS
7 имеются некоторые проблемы с аналоговой частью (например, с ключами)

0

3

Можете попробовать это Простые програмки для начинающих до ваших требований довести.

0

4

Это я видел, но модель в Протеусе 7, не дала 50 Гц в лучшем случае 6 Гц

0

5

IPS написал(а):

Это я видел, но модель в Протеусе 7, не дала 50 Гц в лучшем случае 6 Гц

Пожалуйста, один из вариантов, того, что Вы видели:

Синус 50 Гц
Для получения чистоты (именно "чи") синуса, поиграйтесь с RC - цепочкой.

http://s4.uploads.ru/t/L6MA7.jpg

Исходник. Написан модератором этого форума под ником - "Ведущий специалист"

$regfile = "m8def.dat"
$crystal = 8000000

Config Portb.0 = Output

Dim Shag As Byte , Dann As Byte
Dim X As Byte , Tik As Byte
Dim Temp As Byte

Config Timer2 = Timer , Prescale = 1
Enable Timer2
On Timer2 Pwms
Start Timer2
Enable Interrupts

Do

Restore Sin_table
For Shag = 1 To 10
Read Dann
X = Dann
Waitus 435
Next

For Shag = 1 To 10
Read Dann
X = Dann
Waitus 435
Next

Loop
End

Pwms:
Incr Tik

If Tik = 16 Then
Tik = 0
Portb = 0
End If
If Tik > X Then Portb.0 = 1
Return
Sin_table:
Data 5 , 4 , 3 , 2 , 1 , 1 , 2 , 3 , 4 , 5
Data 6 , 8 , 12 , 13 , 14 , 14 , 13 , 12 , 8 , 6

Эмуляция в "Протеус" - скачать

Отредактировано sasha_1973 (2013-07-17 15:30:05)

0

6

загрузка CPU "40%" - зависит напрямую от мощности ПК
впрочем это информация второстепенная)

0

7

Как то делал ГКЧ из журнала "Радио" конец 80-х. Так там синус получался благодаря 6 диодам, включённых последовательно  по 2 встречно параллельно. Диоды были только КД503А. (запомнил, потому-что долго искал). Синус был, на удивление чистым и ровным на всём диапазоне 10-50000 Гц

0

8

Mrshilov написал(а):

В протеусе, естественно, не пойдет

Зря наговариваете на замечательную программу!

http://s4.uploads.ru/t/ot8Re.jpg

0

9

Mrshilov написал(а):

Фотошоп

По ссылке ниже, эмуляцию могут скачать все желающие!

скачать

Может у кого нет эмулятора "Протеус", пожалуйста видео - скачать

Отредактировано sasha_1973 (2013-07-22 20:51:20)

0


Вы здесь » Программирование ATMEL в BASCOM. » Таймеры, ШИМ и все про них » Нужна программа для ATmega 8 для формирования синуса 50 Гц через ШИМ