Генератор из arduino
В pdf указан с рекомендуемыми clock. Соответственно и цифры с ним. Если используете другой, то будут другие варианты.
Последний раз редактировалось veso74 Ср окт 30, 2024 06:23:16, всего редактировалось 4 раза.
- Реклама
- Сообщения: 473
- Зарегистрирован: Ср янв 11, 2012 18:20:26
veso74 писал(а):1 Hz будет: d = 10, freq -> 0,931322574615478515625 Hz.
0,1 Hz будет: d = 1, freq -> 0,0931322574615478515625 Hz.
Шоб вас в магазине так обвешивали
Не только на Ардуино
. И на PIC, и на STM8, и на STM32, и на Teensy 3.6...
- Сообщения: 473
- Зарегистрирован: Ср янв 11, 2012 18:20:26
/ 2^28 = 0,119210727512836456298828125veso74 писал(а):Моя AD с FXTAL = 32000386 Hz.
Хрен редьки не слаще
И на машинке вышивать...veso74 писал(а):Не только на Ардуино . И на PICе, и на STM8, и на STM32, и на Teensy 3.6...
Да причём тут ваши платформы) Вы на AD9833 не получите целого с таким тактированием
Последний раз редактировалось shonty Вт окт 29, 2024 13:22:55, всего редактировалось 1 раз.
Ошибка DDS от целочисленного деления для случайных выходных частот, и не будем ее здесь анализировать.
Последний раз редактировалось veso74 Вт окт 29, 2024 13:27:06, всего редактировалось 1 раз.
- Реклама
- Сообщения: 473
- Зарегистрирован: Ср янв 11, 2012 18:20:26
Смеётесь? Нет ошибки, и нет случайных выходных частот. Есть формула расчёта выходной от частоты тактирования.
Для анализа частоты посмотрите используемый тактовый генератор, какая у него температурная стабильность и dF. Ставлю на 100 или 50 ppm. Поэтому любая подобная полемика бессмысленная.
- Сообщения: 473
- Зарегистрирован: Ср янв 11, 2012 18:20:26
[uquote="veso74",url="/forum/viewtopic.php?p=4642252#p4642252"]Для анализа частоты посмотрите используемый тактовый генератор, какая у него температурная стабильность и dF. Ставлю на 100 или 50 ppm. Поэтому любая подобная полемика бессмысленная.[/uquote]
dF/F х10-6 = 50
Полемика конечно бессмысленна, если вы пытаетесь выдать 0,931322574615478515625 Hz за 1 Hz
dF/F х10-6 = 50
Полемика конечно бессмысленна, если вы пытаетесь выдать 0,931322574615478515625 Hz за 1 Hz
Наверное, догадались: нажал: "копировать" на Windows калькуляторе. Принять какие цифры после десятичной точки хотите.
- Сообщения: 473
- Зарегистрирован: Ср янв 11, 2012 18:20:26
Я любые цифры могу на вывести дисплей и сфотографировать.
Допустим у вас генератор на AD9850. Вопрос: чем вы его тактируете?
Добавлено after 53 seconds:
аа... вы уже удалили фото
Добавлено after 2 minutes 32 seconds:
и тем не менее, вопрос, чем вы тактируете генератор AD9850, что у вас на выходе ровно 3 500 000 Hz
Допустим у вас генератор на AD9850. Вопрос: чем вы его тактируете?
Добавлено after 53 seconds:
Добавлено after 2 minutes 32 seconds:
и тем не менее, вопрос, чем вы тактируете генератор AD9850, что у вас на выходе ровно 3 500 000 Hz
С генератор на напр. 124998975 Hz, ориг. монт. на китайской модуль AD9850. Из-за своей цены - дешевый, температурные параметры не оч. хорошие, но работает без нареканий.
Последний раз редактировалось veso74 Вт окт 29, 2024 15:34:13, всего редактировалось 1 раз.
[uquote="prizrack*",url="/forum/viewtopic.php?p=4642197#p4642197"]Таймеры обычно очень медленные и МГц не вытянут(на сколько я почитал) или я ошибаюсь? ну и хотелось бы готовое решение, чтобы не заморачиваться навеской на контролер а все решить одной платой или микросхемой.[/uquote]Готовое решение вряд ли найдете. Для начала, вариант генерации меандра 1МГц на лапе PD5.
Код: Выделить всё
.INCLUDE "m328Pdef.inc"
.equ Fo=16000000
.def ZERO =R15
.def _FF =R19
;*************************************************
.CSEG
.org 0x0000
RESET:
RJMP START ; On Reset
;*************************************************
;*************************************************
;*************************************************
START:
; Reset Watchdog Timer
WDR
CLR ZERO
OUT MCUSR,ZERO
; Start timed sequence
LDI R16,1<<WDCE|1<<WDE
STS WDTCSR, R16
CBR R16,1<<WDE
STS WDTCSR,R16
SER _FF
OUT DDRD,_FF
OUT DDRC,_FF
OUT DDRB,_FF
LDI R16,1<<ACD
OUT ACSR,R16 ; выключить аналоговый компаратор
LDI R16,1<<SE ; разрешить SLEEP IDLE
OUT SMCR,R16
LDI R16,Fo/1000000-1 ;1MHz
OUT OCR0A,R16
LDI R16,Fo/2/1000000-1 ;8-1
OUT OCR0B,R16
; LDI R16,Fo/100000-1 ;100kHz
; OUT OCR0A,R16
; LDI R16,Fo/2/100000-1 ;80-1
; OUT OCR0B,R16
LDI R16,1<<COM0B1|1<<WGM01|1<<WGM00
OUT TCCR0A,R16
LDI R16,1<<CS00|1<<WGM02
OUT TCCR0B,R16
;************************************************
SLEEP
RJMP PC
.EXIT- Вложения
-
- GEN_M328.hex
- (194 байт) 66 скачиваний
Starichok51, Вторая ардуинка нужна для решения остальных задач по этому не хочется ее задействовать в гене, у нее свои задачи которые она должна решать при работающем генераторе. Попробую раскачать китайскую Uno , давно не занимался контролерами по этому и вопросы возникают, в любом случае спасибо за советы.
К стати ни у кого нет желания написать прошивку за отдельную плату? Там еще дисплейчик будет, кнопочки, управление шаговиком, измерения. В общем ТЗ предоставлю. Если кому-то интересно - пишите в личку.
К стати ни у кого нет желания написать прошивку за отдельную плату? Там еще дисплейчик будет, кнопочки, управление шаговиком, измерения. В общем ТЗ предоставлю. Если кому-то интересно - пишите в личку.
а если ты хочешь этот генератор применить для импульсного преобразователя - то это очень плохая затея.
примени любой ШИМ-контроллер. и проблемы включить/выключить его не будет.
примени любой ШИМ-контроллер. и проблемы включить/выключить его не будет.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Starichok51, Генератор с последующим усилением Мосфетами для Эрозии и гальваники, паузы нужны для восстановления диэлектрической жидкости в зазоре. А есть ШИМ-генераторы на частоту до 1МГц? Мне попадались только до 150КГц.
На 150К установка уже работает, но эфективность так-себе, мощный одиночный импульс и большая пауза между ними, нужна пачка коротких импульсов 1-1000 мксек и пауза в 10-200мкс. Больше 1Мгц мощные мосфеты не вытянут, а до других типов генераторов пока еще не дорос)
На 150К установка уже работает, но эфективность так-себе, мощный одиночный импульс и большая пауза между ними, нужна пачка коротких импульсов 1-1000 мксек и пауза в 10-200мкс. Больше 1Мгц мощные мосфеты не вытянут, а до других типов генераторов пока еще не дорос)
ШИМ с частотой 1 MHz - может и подойдёт. Но по-другому.
Последний раз редактировалось veso74 Ср окт 30, 2024 07:11:39, всего редактировалось 3 раза.
prizrack* Как вариант, 2 противофазных канала. Генерация пачки из 5 периодов с паузой
Код: Выделить всё
.INCLUDE "m328Pdef.inc"
.equ Fo=16000000
.def ZERO =R15
.def _FF =R19
;*************************************************
.CSEG
.org 0x0000
;RESET:
; RJMP START ; On Reset
;*************************************************
;*************************************************
;*************************************************
START:
; Reset Watchdog Timer
WDR
CLR ZERO
OUT MCUSR,ZERO
; Start timed sequence
LDI R16,1<<WDCE|1<<WDE
STS WDTCSR, R16
CBR R16,1<<WDE
STS WDTCSR,R16
SER _FF
OUT DDRD,_FF
OUT DDRC,_FF
OUT DDRB,_FF
LDI R16,1<<ACD
OUT ACSR,R16 ; выключить аналоговый компаратор
STS PRR,_FF
LDI ZH,HIGH(TB_FORM*2)
LDI ZL,LOW(TB_FORM*2)
FORM:
NOP
ANDI ZL,$5F ;$4F ;
LPM R22,Z+
OUT PORTB,R22
RJMP FORM
.ORG $20
TB_FORM:
.DB $0F,$F0,$0F,$F0,$0F,$F0,$0F,$F0,$0F,$F0,$00,$00,$00,$00,$00,$00
.DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
;.DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
;.DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
.EXIT- Вложения
-
- TEST_M328.hex
- (255 байт) 49 скачиваний
- Сообщения: 473
- Зарегистрирован: Ср янв 11, 2012 18:20:26
akl, вопрос не по теме.akl писал(а):LDI R16,1<<ACD
OUT ACSR,R16 ; выключить аналоговый компаратор
Зачем ACSR в процедуре старт? В ACSR 0x00 после ресета судя по даташиту.
Или я что то не знаю
- Сообщения: 473
- Зарегистрирован: Ср янв 11, 2012 18:20:26


