генератор произвольных сигналов или ЦАП на МК класса тини

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Аватара пользователя
c2n
Сверлит текстолит когтями
Сообщения: 1193
Зарегистрирован: Ср июл 25, 2012 21:40:09
Откуда: Самара
Контактная информация:

генератор произвольных сигналов или ЦАП на МК класса тини

Сообщение c2n »

Доброго дня.

Понадобился мне внезапно задающий генератор произвольной формы сигналов... в частности SIN - формы. Прочитал про "генератор сисек" толи у товарисча DI, толи еще у кого...
вроде все устраивает, но! Похоже я восьмибитным ЦАП R2R в 256 отсчетов на 1 выходной такт, более 70кГц не разгонюсь на тини или даже меге 16й... на кристале в 20МГц. Можно конечно отсчеты уменьшить - но не хочется...


Есть ли какие нибудь интегральные микросхемы работающие:
например: Загнал последовательность уровней, щелкнул защелку и оно начало крутить по сигналам с генератора тактовых импульсов, пока защелку не отжали.
По принципу сдвигового регистра 74HC595 (Кажысь). Можно и на них собрать... но это мне прийдется 256 регистров в одну сеть городить... а потом к ней пристраивать R2R а это и деньги и место.... и трудоемкость монтажа...

или вобще генератор такого типа: Дается верхнее максимальное напряжение, дается "0", дается значение частоты, например в виде эквивалентного напряжения (резистором/цифровым потонциометром - задается), или в виде цифры, или в виде ШИМ... и оно начинает генерировать гармонику....

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

Частота мне нужна от нуля до пары сотен килогерц. 200 кГц в принципе достаточно.
по задумке - на нагрузку сигнал будет подаваться через ОУ управляющий транзисторным каскадом... поэтому выходной ток с ИМС - меня волнует не очень сильно.
точность... ну чем выше тем лучше.. отклонение до 5% при 100кГц - устроит более чем полностью.

Подскажите, может есть чтото на подобие....
Реклама
akl
Друг Кота
Сообщения: 4445
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: генератор произвольных сигналов или ЦАП на МК класса тин

Сообщение akl »

Параллельное ОЗУ(или FRAM)+счетчик адресов+регистр-защёлка на выходе. Загружается необходимая последовательность, потом счетчик адресов быстро считывает по кругу.
Реклама
Аватара пользователя
c2n
Сверлит текстолит когтями
Сообщения: 1193
Зарегистрирован: Ср июл 25, 2012 21:40:09
Откуда: Самара
Контактная информация:

Re: генератор произвольных сигналов или ЦАП на МК класса тин

Сообщение c2n »

Круто :)

а если взять:
LC7218 синтезатор частоты для AM/FM тюнеров dip24s
M52313SP PLL синтезатор для тюнера
SAA1057 синтезатор радиоприемника dip18
LM7001(J) синтезатор (direct PLL) obs!
TSA5511 PLL синтезатор 1,7ГГц i2c dip18
TSA5512AT синтезатор 1.6 ГГц с i2c управлением
AD9835BRUZ DDS синтезатор 50МГц serial tssop16


что нибудь из этого????? или это не совсем то, что мне надо?
akl
Друг Кота
Сообщения: 4445
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: генератор произвольных сигналов или ЦАП на МК класса тин

Сообщение akl »

c2n писал(а):AD9835BRUZ DDS синтезатор 50МГц serial tssop16
Ну, разве попытаться её приспособить с учетом этого.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
c2n
Сверлит текстолит когтями
Сообщения: 1193
Зарегистрирован: Ср июл 25, 2012 21:40:09
Откуда: Самара
Контактная информация:

Re: генератор произвольных сигналов или ЦАП на МК класса тин

Сообщение c2n »

Дорогая игрушка... у меня вся остальная схема - дешевле...

А если заставить МК Тини/Мега на максимальной частоте от внешнего кварца(20МГц) воспроизводить данные загнаные в него через SPI или иными методами.

например пересчитанную таблицу синуса относительно 8бит. (показаны первые несколько тактов. Всю таблицу в экселе составить за 5 минут)
СпойлерШАГ Доля градуса Радианное значение Sin Уровень +0,5 8-битное значение
0 0 0 0 0,5 128
1 1,411764706 0,024639942 0,024637449 0,512318725 131
2 2,823529412 0,049279885 0,049259941 0,524629971 134
3 4,235294118 0,073919827 0,073852527 0,536926264 137
4 5,647058824 0,09855977 0,098400278 0,549200139 141
5 7,058823529 0,123199712 0,122888291 0,561444145 144
6 8,470588235 0,147839654 0,147301698 0,573650849 147
7 9,882352941 0,172479597 0,171625679 0,58581284 150
8 11,29411765 0,197119539 0,195845467 0,597922734 153
9 12,70588235 0,221759481 0,219946358 0,609973179 156
10 14,11764706 0,246399424 0,24391372 0,62195686 159
11 15,52941176 0,271039366 0,267733003 0,633866502 162
12 16,94117647 0,295679309 0,291389747 0,645694873 165
13 18,35294118 0,320319251 0,314869589 0,657434794 168
14 19,76470588 0,344959193 0,338158275 0,669079137 171
15 21,17647059 0,369599136 0,361241666 0,680620833 174
16 22,58823529 0,394239078 0,384105749 0,692052875 177
17 24 0,41887902 0,406736643 0,703368322 180
18 25,41176471 0,443518963 0,429120609 0,714560304 183
Возьму максимально дискретезация - 8 бит.
Максимальное чисто отсчетов 256. (8 бит)

и выводить в основном цикле программы элемент массива в порт.

На какую максимальную частоту воспроизведения я могу расчитывать?

И второй вопрос.
ЦАП DAC08CP мне подойдет? что-бы не городить R2R цепь?

И самый главный вопрос: в этом случае я смогу разогнаться до 100кГц (выходной сигнал) или чуть больше на синусе в 256 отсчетов? после обработки этим ЦАПом. ?
Реклама
Аватара пользователя
c2n
Сверлит текстолит когтями
Сообщения: 1193
Зарегистрирован: Ср июл 25, 2012 21:40:09
Откуда: Самара
Контактная информация:

Re: генератор произвольных сигналов или ЦАП на МК класса тин

Сообщение c2n »

кварц 20мгц, 4бита - 100кГц синус на выходе.
и спаленый Драгон :(
Реклама
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: генератор произвольных сигналов или ЦАП на МК класса тин

Сообщение Gudd-Head »

c2n писал(а):Похоже я восьмибитным ЦАП R2R в 256 отсчетов на 1 выходной такт, более 70кГц не разгонюсь на тини или даже меге 16й... на кристале в 20МГц.
Вот это можно попобробней? R2R ЦАП параллельный, для формирования отсчёта необходимо просто выкинуть данные в 8-битный порт.
Команда IN/OUT — 2 такта, загрузка из памяти — 2 такта, ещё пара тактов модификация счётчика адреса памяти.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
balmer
Это не хвост, это антенна
Сообщения: 1433
Зарегистрирован: Вс дек 02, 2012 03:13:48
Откуда: Калининград

Re: генератор произвольных сигналов или ЦАП на МК класса тин

Сообщение balmer »

Можно взять самую дешевую STM32 c DAC - она без проблем выдаст 1 мегасэмпл на выходе DAC. Это значит что синус 100 кгц будет довольно чистым.
Аватара пользователя
c2n
Сверлит текстолит когтями
Сообщения: 1193
Зарегистрирован: Ср июл 25, 2012 21:40:09
Откуда: Самара
Контактная информация:

Re: генератор произвольных сигналов или ЦАП на МК класса тин

Сообщение c2n »

да... именно r2r ЦАП. тиньи 2313 с кварцем

и такой быдлокод:

Код: Выделить всё

#include <avr/io.h>
////////1 - выход
#define discretiz 0b1111

int Sinusoida[discretiz];

int ololo3(void)
{
	{
		double X,Y;
		
		for (unsigned char iter;iter<= discretiz; iter++)
		{
			PORTB=iter;
			X=((2*3.14)/discretiz)*iter;
			Y=((sin(X))+1)*127;
			Sinusoida[iter] = round(Y);
		}
		
	}
	
}


int main(void)
{
	DDRB = 0b111111111; // порт в режиме вывода
	PORTB = 0b00000000; // обнулить порт
	DDRA = 0b111;
	PORTA = 0;
	
	ololo3();
	
	while (1) 
	{
		//PORTB=1;
		for (unsigned char posMas = 0;posMas<=discretiz;posMas++)
		{
		PORTB = Sinusoida[posMas];	
		}
		PORTA=~PORTA;
		//ololo3();
		

	} 
}
соответственно можно модернизировать... выкинув расчет синуса, но практически я достиг 100кГц

форма сигнала косоватый такой, но больше синус. чем пила :)
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: генератор произвольных сигналов или ЦАП на МК класса тин

Сообщение zero648 »

Так эта, можно взять тиньку 85 или типа нее 45, 25, у них на борту есть PLL генератор на 64МГц, 8-ми битный ШИМ 250КГц выдает, во как.
Аватара пользователя
c2n
Сверлит текстолит когтями
Сообщения: 1193
Зарегистрирован: Ср июл 25, 2012 21:40:09
Откуда: Самара
Контактная информация:

Re: генератор произвольных сигналов или ЦАП на МК класса тин

Сообщение c2n »

Хорошая мысль! надо попробовать :) Спасибо за идею :)
Аватара пользователя
c2n
Сверлит текстолит когтями
Сообщения: 1193
Зарегистрирован: Ср июл 25, 2012 21:40:09
Откуда: Самара
Контактная информация:

Re: генератор произвольных сигналов или ЦАП на МК класса тин

Сообщение c2n »

Курю про PLL. Получается, что с этой фишкой я без внешнего кварца смогу разогнать МК до 16МГЦ? и все?

Но этого маловато, т.к. мне сигнал не ШИМ нужен а "произвольный", 4х битный. ШИМ сигнал частный случай
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: генератор произвольных сигналов или ЦАП на МК класса тин

Сообщение zero648 »

c2n писал(а):Курю про PLL. Получается, что с этой фишкой я без внешнего кварца смогу разогнать МК до 16МГЦ? и все?

Но этого маловато, т.к. мне сигнал не ШИМ нужен а "произвольный", 4х битный. ШИМ сигнал частный случай
Почему 16МГц, плохо значит разобрался, еще раз повторю 64 МГц, а не 16. Что есть "произвольный не ШИМ", не совсем дошло. Так то можно сделать и 4х и 5ти и 6ти битный ШИМ.
Аватара пользователя
c2n
Сверлит текстолит когтями
Сообщения: 1193
Зарегистрирован: Ср июл 25, 2012 21:40:09
Откуда: Самара
Контактная информация:

Re: генератор произвольных сигналов или ЦАП на МК класса тин

Сообщение c2n »

не не не.. в ДШ вроде как написано, что Fcpu = 1/4Fpll
а Fio=Fcpu

так что хрена там...
Ну или если можно киньтесь сишным кодом.. я хоть разберусь какие регистры куда

ЦАП - пускай будет R2R
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: генератор произвольных сигналов или ЦАП на МК класса тин

Сообщение zero648 »

Поглядел ДШ, 64МГц можно сделать только для timer1, системная частота тогда будет 16МГц, а в протеусе у меня системная была 64МГц. :o
Изображение
Аватара пользователя
c2n
Сверлит текстолит когтями
Сообщения: 1193
Зарегистрирован: Ср июл 25, 2012 21:40:09
Откуда: Самара
Контактная информация:

Re: генератор произвольных сигналов или ЦАП на МК класса тин

Сообщение c2n »

не.. не катит :)

Значит будем использовать кварц в 20 МГц....
Аватара пользователя
ua1arn
Встал на лапы
Сообщения: 81
Зарегистрирован: Вт май 08, 2012 23:15:45
Откуда: Санкт - Петербург

Re: генератор произвольных сигналов или ЦАП на МК класса тин

Сообщение ua1arn »

Пять копеек от меня:
http://www.cqham.ru/forum/showthread.php?t=26353 (проект с исходниками там тоже выложен).
9 тактов на цикл с внутренней таблицей трансляции или 7 тактов на цикл без. На 20 МГц контроллерах вроде ATMEGA88 или ATMEGA324 тактовая DDS как-бы 2.2 МГц. И без разрывов фазы при изменении частоты.
c2n писал(а):точность... ну чем выше тем лучше.. отклонение до 5% при 100кГц - устроит более чем полностью.
Если укоротите аккумулятор с 32-х бит до 24 или даже до 16, можете существенно ускорить работу (и повысить качество формирования выходного сигнала).
Ответить

Вернуться в «Разные вопросы по МК»