25 сообщений в этой теме

Всем привет, кто нибудь работал с MCP4921, я в анг.языке не силён и поэтому раскурить даташит на данную микру не особо получается, может ли кто нибудь подсказать, как настроить выходную частоту. Привожу осциллограмму и код. http://pastebin.com/5iGNRgtZ <- код тут. Всем спасибо. 

MCP.jpg

Atmega8.png

Изменено пользователем Шамиль Прилов
Добавил схему.
0

Поделиться сообщением


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

Что за "выходная частота"? Это же ЦАП. У него аналоговый выход.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, Vascom сказал:

Что за "выходная частота"? Это же ЦАП. У него аналоговый выход.

Ну вот я генерю какой нибудь сигнал с помощью ЦАПа, как мне выходную частоту менять? Та же пила. 

0

Поделиться сообщением


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

На выходе ЦАПа должен быть твой сигнал. Что запишешь в ЦАП, то и будет.

Всё же, о какой частоте речь?

0

Поделиться сообщением


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

Ну вот пила, частота близка к 300Hz, как мне сделать допустим 600Hz, 700Hz, 800Hz, в ДШ сказано что макс.вых.частота 20 MHz. 

0

Поделиться сообщением


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

цап не при чём

копайте программу генерации сигнала

0

Поделиться сообщением


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

20МГц - это максимальная частота интерфейса SPI. То есть на выходе DAC сигнал может меняться с максимальной частотой около 1МГц.

Записывай в DAC другую пилу - будет и она на выходе.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
11 минуту назад, Vascom сказал:

20МГц - это максимальная частота интерфейса SPI. То есть на выходе DAC сигнал может меняться с максимальной частотой около 1МГц.

Записывай в DAC другую пилу - будет и она на выходе.

Т.е для генерации допустим синуса в 20kHz мне нужен более быстродейственный ЦАП? 

0

Поделиться сообщением


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

Нет, этот подойдёт. Он может синус до 1МГц выдавать.

Но только отчёты этого синуса надо постоянно подавать в цап. Вообще представляешь как цап работает?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, Vascom сказал:

Нет, этот подойдёт. Он может синус до 1МГц выдавать.

Не могли бы код с пилой показать как будет выглядить? Я что то совсем не пойму, задержек в коде нет, на прерывания не ухожу, т.е я с максимально возможной частотой запихиваю в DAC и даже в этом случае у меня максимальная частота 12-битной пилы близка к 300Hz. 

0

Поделиться сообщением


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

В строке

unsigned int Level = (unsigned int)(Voltage * 4096) / 5;

Попробуй увеличить число 4096 в несколько раз.

0

Поделиться сообщением


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

Тогда по другому генерируй эту пилу. Например не умножением, а прибавлением постоянного числа.

0

Поделиться сообщением


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

Ну тк она у меня прибавлением и генерируется 
 

	for ( float i = 0; i < 5; i = i+0.1){	
    convert_DAC(i);
    }
	convert_DAC(0); 
	}

 

Данная строка лишь переводит нормальное напряжение вида 4.33 вольт, в понятное значение понятное контроллеру.
 

unsigned int Level = (unsigned int)(Voltage * 4096) / 5;

 

0

Поделиться сообщением


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

Ага, тогда сделай i = i+0.5 например

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, Vascom сказал:

Ага, тогда сделай i = i+0.5 например

Блиин.. капец я тугодум. Ну да, от этой строки скорость и зависит) Спасибо вам, добрый человек. 
 

0

Поделиться сообщением


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

Тогда генерируй её по другому, а не этим странным кодом.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
15 минут назад, Vascom сказал:

Тогда генерируй её по другому, а не этим странным кодом.

Думаю единственный вариант это тактировать мк от внешнего кварца 16MHz, бит ускоренной передачи данных по SPI итак включён уже. 

0

Поделиться сообщением


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

- Не используй дробные числа.

- Можно использовать внутрений счетчик процессора (будет более равномерно и на максимальной скорости).

- Дескретизация 12 бит это много 16MHz/4096 = 3906,25Hz - максимально возможная частота.

0

Поделиться сообщением


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

Не-не-не, одно число передаётся за 16 тактов, плюс ещё несколько между передачами. Так что 16МГц/20 = 0.8МГц - максимальная возможная частота.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 16.02.2017 в 10:45, Сергей Степанов сказал:

- Не используй дробные числа.

- Можно использовать внутрений счетчик процессора (будет более равномерно и на максимальной скорости).

- Дескретизация 12 бит это много 16MHz/4096 = 3906,25Hz - максимально возможная частота.

В конечном итоге убрал это конвертирование float в понятный ЦАП код, но скорость передачи осталась та же. Будем искать другой ЦАП =) 
Всем спасибо за ответы. 

0

Поделиться сообщением


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

Зачем другой ЦАП? Нужна скорость более 1МГц?

0

Поделиться сообщением


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

Чтоб ступеньки по выходу глаза не мозолили, фильтр ставят. Та же АД9850 с частотой 125 МГц, по выходу гарантировано 40 МГц , 1/3. Т.е. для МСР4921 примерно 0.6 МГц, хотя без ДМА АтМега больше 150 кГц в прерывание нырять не сможет, так что ЦАП по быстродействию х4 с запасом 

0

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

  • Сообщения

    • С чего вы взяли!? До 100000000 легко получаем любое напряжение.
    • Ну так обратного никто не говорил. Я говорил что достаточно сравнить питание и выход - этого будет достаточно и просто.
    • @KRAB, по-моему, грех - не понимать принцип действия щупа с выносным делителем и его назначение (что мы и наблюдаем в случае@dimanaviator), т.е. не понимать базовые принципы работы с осциллографом и более-менее высокочастотными цепями. Если же ты всё это знаешь и понимаешь, то спаять электронную часть щупа самому, действительно, не проблема. Однако, проблема возникает с изготовлением корпусов, с поиском подходящих деталей и т.д. и т.п. И все эти проблемы по стоимости могут оказаться существенно больше, чем 300 рублей, за которые готовый щуп с делителем можно купить на Али или Ебэе. Входная ёмкость осциллографа с таким щупом составляет пару сотен пикофарад. Проще говоря, прикасаясь к измеряемой цепи, вы всякий раз шунтировали её указанной ёмкостью на землю.
    • Плюс тембр блок на  CXA1352SA  Колонки буду потом собирать , надо что то одно сначала собрать , потом остальное , и в колонках особых приколюх нет, выбрал по мощности и купил вот и готово, ну или купил ещё фанеру сделал закрытый ящик набил  его стекловатой и провода хорошие все, больше там замарочек нет, тут же с блоком питания ппц, кстати 500 это запас так как потери и т.д. микруха жрет 110 ватт максимум но её КПД около 60% т.е. на выходе я буду иметь порядка 60-70 ватт это не чертовски много но очень хорошо по сравнению с тем что я имею ... А именно простую авто магнитолу подключенную  к блоку питания от компа , и на ней 4 колонки которые она вообще не раскачивает или если делать звук громче то кооэфициент нелинейных искажений ппц какой и часть звука срезается так как основная микросхема не может дать больше 4x40 хоть и написанной 4x45 , поэтому хочу собрать хорошую музыку и чтоб усилитель не выкручивать на 100% а на 70% так как звук будет но будет просто орать дудуть и ...все остальное, возможно я возьму 2 транса по 250, у меня нет опыта в номотке,транса возможно я буду искать в своём городе может конечно буду пробовать сам, но у меня есть желание от которого я не могу сидеть на месте ,  Чтобы пробить стену лбом надо ,много лбов , или разбег по больше ,  Я по первой конечно думал что размеры будут куда скромнее , и хотел сделать как бы переносную акустику и тоскать за собой, но это уже не критично , будет стоять в зале (зал на 27 квадратов )  и длинные провода к динамикам  чтоб по ближе к окну можно протащить  Спасибо за понимание и помощь всем, просто мне нужен блок пининия , я не понимаю , ну или мало что понимаю, по этому прошу вас помочь , 
    • Сами возим и растомаживаем. Мы хотим сделать доступный магазин компонентов, где любой сможет купить от 1 штуки в забугорье, или если нужно у наших партнёров в России.
    • Резистор не менее чем 0,5Вт.