да, у меня дело всё-таки было не в ОУ, а в конденсаторе на выходе цапа. И ещё, я использую для защиты цепочку встречно-параллельных диодов, но это нормально работает только на старой прошивке без балансировки. В чем идея и как реализована эта самая балансировка? Почему оно не работает с диодами?
День добрый, подскажите плиз, где можно найти описание по теории вопроса алгоритма измерения примененного в данном девайсе. Или может кто уже описывал да я не нашел? Смотрю исходники 6.03, но некоторые вопросы остались неразгаданными... 1. Частности непонятно зачем у DAC включен режим генерации треугольника, но затем данные грузятся из буфера dac_buf через DMA?
const uint32_t k = (SINE_OFFSET |(SINE_OFFSET<<16)); // Это смещение синуса для DAC? Типа OFFSET*2^16+OFFSET ???
Код:
while(j-- > 0) { uint32_t sig = ((sine[sptr])>>7)&0xffff; //Делаем из 20 bit sin(theta) 13 bit sin(theta), а может и 12 bit, зависит от макс значения *dptr++ = k + sig - (sig<<16);// Похоже на операцию смещения по DC, но что это не понял sptr++; }
3. В прерывании DMA1_channel1 при вычислении mreal[k] точки берутся для всех частот с смещением +N/4 это и будет + pi/2 для всех частот? там вроде разное количество периодов в буфере для разных частот.
Код:
{ int dat = adc_dma[j] - SINE_OFFSET; //Смещение постоянной составляющей ADC Opa ? mreal[k] += ((int)sine[j+N/4]*dat); //cos(theta) = sin(theta + pi/2), но это вроде справедливо только для 1kHz или для остальных частот это тоже так? mimag[k] -= ((int)sine[j]*dat); //sin(theta) j++; }
4. Ядро я так понял работает в разгоне до 32MHz, а таймер TIM2 тикает с частотой 500kHz. Но вот зачем у него режим в котором используются три CCR регистра. Вроде достаточно TIM2->CCR1 = 46;
но это нормально работает только на старой прошивке без балансировки. В чем идея и как реализована эта самая балансировка? Почему оно не работает с диодами?
Балансировка убирает различие между каналами, чтобы не надо было подбирать емкости и резисторы рц цепочек. Не работает может быть потому что диоды ограничивают выходное напряжение на уровне полувольта, а оно в момент балансировки вольта два насколько я помню.
_________________ Информация по RLC mini находится >тут<
1. Частности непонятно зачем у DAC включен режим генерации треугольника, но затем данные грузятся из буфера dac_buf через DMA?
Позволяет увеличить разрешение и линейность ацп, цап одновременно выводит и треугольники и синус.
ub3taf писал(а):
2. Не понял код в прерывании DMA1_Channel4
Там два канала цапа же, 16 битов один канал и еще примерно 16 второй.
ub3taf писал(а):
3. В прерывании DMA1_channel1 при вычислении mreal[k] точки берутся для всех частот с смещением +N/4 это и будет + pi/2 для всех частот? там вроде разное количество периодов в буфере для разных частот.
Для всех частот которые используются Н/4 дает сдвиг фазы в четверть периода, а количество периодов меняется. Это для упрощения сделано.
ub3taf писал(а):
4. Ядро я так понял работает в разгоне до 32MHz, а таймер TIM2 тикает с частотой 500kHz. Но вот зачем у него режим в котором используются три CCR регистра. Вроде достаточно TIM2->CCR1 = 46;
Видимо остальные каналы таймера тоже используются
ub3taf писал(а):
Я понимаю... у всего есть тайный смысл, но может кто-то ответит.
Мне тоже интересен данный вопрос, вдруг кто продвинулся в изучении.
anry025 писал(а):
можно ли применить в данную схему дисплей от Nokia 6100?
Нельзя, прошивка не поддерживает.
_________________ Информация по RLC mini находится >тут<
Эту нескончаемую тему я видел, но изучить сообщения с 2008 года видимо жизни не хватит . Какое то в нашей стране странное отношение к коллективной разработке, все в форум, ни каких итого. Понятно что владельцам сайтов выгодно, посещаемость растет, все форума перечитывают, но есть ведь Wiki технологии и много еще чего.
Код:
Позволяет увеличить разрешение и линейность ацп, цап одновременно выводит и треугольники и синус.
Спасибо, буду изучать тему.
Код:
Там два канала цапа же, 16 битов один канал и еще примерно 16 второй.
понятнее не стало.
Код:
Видимо остальные каналы таймера тоже используются
А можно тогда узнать название режима или основную идею.
Спасибо за ответы. P.S. Почему-то не работает кнопка поднять рейтинг сообщения. Попробовал в двух броузерах....
Не сталкивался с таким экраном, а так если четырех ножек хватит для его управления то наверно железо потянет.
ub3taf писал(а):
Какое то в нашей стране странное отношение к коллективной разработке, все в форум, ни каких итого.
Ну кто то делает, а кто то обсуждает, это нормально. У меня планов по шагам описывать что делаю обычно нету, поэтому так, только в виде результата. Считаю что кому надо вполне может самостоятельно раскрыть мануал по мк и языку си, разобраться с исходниками, собсно многие так и сделали.
ub3taf писал(а):
понятнее не стало.
Глянул еще раз цитату из кода. Там строчка в которой константа помещается два раза в 32битное слово. В этом сложность? Понять что происходит дублирование?
ub3taf писал(а):
А можно тогда узнать название режима или основную идею.
Основная идея такая что разные каналы используются для синхронизации разных устройств типа ацп, цап и прочего барахла, это в общем очевидно из исходника.
_________________ Информация по RLC mini находится >тут<
Не работает может быть потому что диоды ограничивают выходное напряжение на уровне полувольта, а оно в момент балансировки вольта два насколько я помню.
на самом деле там амплитуда сигнала 0.8 вольта и я использую 6 диодов
Я не против вопросов по существу, но разжевывать каждую строчку мне бы не хотелось. Для человека знакомого с си что делает код понятно и без комментариев, а для незнакомого - просто не надо лезть в код .
_________________ Информация по RLC mini находится >тут<
Это чтобы убрать синхронные наводки от работы мк, данные собираются через раз со сдвигом 0 и 180 градусов, акумулятор соотв всегда накапливает сигнал но обнуляет помеху.
_________________ Информация по RLC mini находится >тут<
Я извинюсь.... , а у меня не находит функцию atan2f() вот в этом rlcmeter_620b11_src.zip архиве при компиляции.... Или есть еще опубликованная версия исходников?
Name: atan2f Prototype: float atan2f (float y, float x) Description: This function computes the arc tangent of y/x, but the signs of both arguments are used to determine the quadrant of the result, and x is permitted to be zero. The return value is given in radians and is in the range -pi to pi, inclusive.
If x and y are coordinates of a point in the plane, atan2 returns the signed angle between the line from the origin to that point and the x-axis. Thus, atan2 is useful for converting Cartesian coordinates to polar coordinates. (To compute the radial coordinate, use hypot; see Exponents and Logarithms.)
If both x and y are zero, atan2 returns zero. Header files: math.h
Спасибо, все нашлось. Т.к. пересобираю проект под QtCreator and Qbs, то в toolchain случайно поставил компилятор gcc вместо g++ , а там почему-то не оказалось atan2f в math.h
Сейчас этот форум просматривают: Google [Bot], SpiritKing и гости: 36
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения