Свежие обсуждения
Измерения

DDS-генератор на AVR - нужна помощь

1 133 189

1) Ради вас я готов на всё . Видите, даже написал мастера под стандартный дисплей (похожий дисплей используется в известном RLC-2 из соседней ветки). Так что можете разобрать ваши старые мобайлы и выдрать оттуда лсд. Схему цифровой части нарисую, как только она немного устаканится, prusony разведёт её одной левой, уж я его знаю.

2) Вопрос терминологии, но аттенюатор это всё-ж-таки затухание, так что вполне законно писать 20 дБ (ослабления, а не усиления).

3) Клавиатура есть, аж три кнопки "стрелка влево", "стрелка вправо" и "стрелка вниз-влево" - пресловутый ВК (он же "возврат каретки", он же "энтер"). Ну и валкодер, как же без него. ПМСМ цифровая клава не нужна, нет для неё задачи, выглядит громоздко, одним словом выпендрёж и эклектика. Хотелось бы от вас услышать ваше видение интерфейса пользователя, что и как ему (пользователю) удобно нажимать, свои мысли я изложил выше.

4) Фильтр хотелось бы на стандартных покупных элементах, пошёл и купил. Ну и АЧХ должна соответствовать без тончайшей настройки.

5) Про частотомер хочу добавить. ПМСМ не нужен он здесь, с отображением частоты отлично справляется дисплей вкупе с математикой.

 

GM: 1) Ради вас я готов на всё . Видите, даже написал мастера под стандартный дисплей...

Я польщён, конечно, только не понятно, за что мне такая честь?..
Вы аналоговую часть сможете сделать и без меня, а вот я без Вас или madgrey цифровую - нет.
К тому же, некоторое "обилие" возможных к подключению дисплеев - явный плюс конструкции.

GM: Так что можете разобрать ваши старые мобайлы и вырвать оттуда лсд.

Хм, так в них же стоят не строчные, а графические дисплеи...

GM: 2) Вопрос терминологии, но аттенюатор это всё-ж-таки затухание, так что вполне законно писать 20 дБ (ослабления, а не усиления).

Однако ни где (кроме ТТД прибора) не указывается, что это аттенюатор, а при взгляде на дисплей сразу понятно: если -20дБ, значит аттенюатор, а если 20дБ - усилитель.
К тому же, в Ваших и madgrey вариантах вывода информации на дисплей место для минуса перед цифрой затухания есть...

GM: 3) Клавиатура есть, "стрелка влево", "стрелка вправо" и "стрелка вниз-влево" - пресловутый ВК (он же "возврат каретки", он же "нтер"). Ну и валкодер,как же без него.

Нет, это "клавиши управления курсором", а я имел в виду полноценную клавиатуру, как у madgrey. Что бы значение частоты можно было вводить с неё. Думаю, не мне одному такой вариант ввода нравится.

GM: Хотелось бы от вас услышать ваше видение интерфейса пользователя, что и как ему удобно нажимать...

Для этого нужно полностью представять работу прибора, вплоть до выводимого на дисплей количества цифр частоты, а кроме Вас и madgrey этого пока ни кто не знает, по этому вы оба, вроде бы, и сами нормально в этом разберётесь...

Мне лично пока нравится что то типа:
1 TRIANGLE -40dB
123456,78 Hz Off

Хотя, вместо "1" информативнее было бы "ch1" или "DDS1". Но тогда название формы придётся выводить сокращённым.
С другой стороны, сокращения до 3-х символов на подобие:
SINE - SIN,
TRIANGLE - TRI,
USER - USE,
PWM - PWM,
NOISE - NOI
COSINE - COS
достаточно информативны.

В результате, в первой строке уже имеем 2 пробела, плюс 3 знакоместа формы, плюс 5 знакомест затухания, итого: 2+3+5=10 символов, и 6 знакомест для номера генератора, куда даже "DDS1" влезет.

Правда, ШИМ, вроде бы, не прямым синтезом формируется, по этому индикация в виде "DDS1 PWM -40dB" не совсем корректна.
По этому, наверно, канал лучше выводить, как говорил madgrey, в виде "ch1".
Так как остаются свободные знакоместа, то можно расширить название формы до 6 букв, где это требуется:
SINE - SINE,
TRIANGLE - TRIANG,
USER - USER,
PWM - PWM,
NOISE - NOISE
COSINE - COSINE

В результате имеем что-то типа:
ch1:TRIANG -40dB
123456,78 Hz Off

ch2:SINE -20dB
999999,99 Hz Off

ch3:PWM -00dB
123456,78 Hz Off

И ещё, при 6 цифрах до запятой и 2-х после имеем пределы частоты от, практически, 1МГц до 0,01Гц. Это "устатканившееся" значение или нет?
Будут ли выводится незначащие нули?
Ведь значение "50,00 Hz" куда нагляднее, чем "000050,00 Hz".

 

1) Профи издалека видно...

2) Следуя вашей логике, маленькая коробочка с 60дБ (Кусиления=1000 по напряжению) должна дать не менее 10000 вольт на 50-ти омной нагрузке. Следуя здравому смыслу, откуда бы взять мощу в один мегаватт на частоте 1 МГц на минуточку, такого не должно быть. Для сильно непонятливых обычно пишут над выходным разъёмом: 1мВ-10В, 50 Ом, 1мГц-1МГц или что-то в этом роде.

3) Неискушённому пользователю будет также непонятно, что такое ch1 или ch2, который из них ла-манш...Цифра 1 в начале первой строки означает выход 1, а цифра 2 означает выход 2. По-моему более-менее понятно.

4) С дБ ещё надо разбираться и разбираться, представим себе, что мы внедрили умножающий цап на 12 разрядов, что замечательно само по себе, и можем крутить аттенюатор почти как потенциометр: 23.7dB, 23.8dB, 23.9dB...

5) Вместо OFF (3 знака) нашёл замену - квадратик 4х4 пиксела (спецсимвол пользователя), модуль не включен - квадратик светлый, включен - тёмный внутри. Так нагляднее и компактнее. Переключается ВК.

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

7) Как по-вашему лучше выводить? Так


SINE-1
COSINE-2
TRIANGLE-3
или так

1-USER
2-PWM
3-NOISE

Во втором случае глаз пользователя ищет номер выхода на одной и той же позиции, а в первом надо напрягаться.

 

По клавиатуре. В уже упоминавшемся DL7100 цифровой клавиатуры нет вообще, хотя вводить надо много чего. Всё вводится с помощью валкодера и двух стрелок, нету проблем, хотя прибор заметно сложнее нашего многострадального генератора.

Ещё пример: прибор Anritsu MT8801, есть и цифровая клава, и валкодер. Но клава практически не используется, поверьте...

То есть мысль такая - давайте отойдём от штампов и крепко подумаем...

Отвлекусь. Меня всякие всплывающие менюшки в виндах, впихиваемые куда надо, и куда не надо, мягко говоря, раздражают. Иной раз проще найти пару клавиш и щёлкнуть по ним, чем целиться мышкой несколько раз, щёлкать и выбирать что-то, и в итоге ввести то же самое. Яркий пример, когда ищешь, отель или билеты на самолёт, приходится вводить города, даты, месяц, год рождения, вот они навтыкали всплывающих менюшек и радуются, а ты бегаешь по ним, как ошпаренный, а всего-то надо ввести сегодняшнее число 22 февраля: 22.02. Кретинизм чистейшей воды.

 

GM: 2) Следуя вашей логике, маленькая коробочка с 60дБ (Кусиления=1000 по напряжению) должна дать не менее 10000 вольт на 50-ти омной нагрузке.

Обычный ОУ имеет КУ 60дБ. Есть и 70 и 80, и даже 90 бывают...
Не нами было принято положение, что число со знаком "плюс" перед ним или без знака означает увеличение параметра (или положительное его значение), а уменьшение - обязательно предваряется знаком "минус" (естественно - при наличии нуля).

GM, очень тяжело поставить "минус" перед числом?..
Ну, если для этого придётся переписывать весь код или встраивать в него два-три десятка строк, тогда конечно не нужно так сильно напрягаться.

GM: 3) Неискушённому пользователю будет также непонятно, что такое ch1 или ch2... Цифра 1 в начале первой строки означает выход 1...

Но просто цифра в начале строки может быть воспринята и как номер экранного меню, например... По крайней мере такая привязка цифры к индикации режима допустима и не противоречит логике. Я уже молчу о том, что может подумать неискушённый пользователь.

Предваряя же цифру словом или его абревиатурой, даём ясно понять, что это за параметр, или, как минимум, что это - параметр. На равне с абревиатурами типа "SIN" или "-60dB".
Даже мои никчемные познания английского сразу привязывают символы "ch1" к выражению "канал первый".

К тому же, будет написан хелп...

GM: 4) ...представим себе, что мы внедрили умножающий цап на 12 разрядов... и можем крутить аттенюатор почти как потенциометр: 23.7dB, 23.8dB, 23.9dB...

И что?.. Знак минуса перед цифрой собьёт какие-то логические связи в мозгу?

Выход генератора сам по себе довольно слаб - даже с внешним цапом вряд ли напряжение будет больше 10В, но до него пока "далеко". По этому сейчас ставится усилитель мощности, который может увеличить исходный уровень сигнала. Скажем, хорош усилитель с фирменного генератора FG-501 с КУ 16 (но может и больше). Но базовая версия генератора может обойтись вообще без усилителя.

Теперь берём уровень 1В и "привязываем" его к "нулю" децибел и выводим наружу.
Получим нормированное значение уровня от 0дБ до -60дБ, а задействовав усилитель с КУ=20 получим не калиброванный уровень выходного сигнала до +26дБ.

В результате, генератор будет иметь нормированные уровни от 0дБ до -60дБ для настройки аппаратуры, и от 0дБ до +26дБ для не нормированных, тестовых измерений.
Как тут обойтись без конкретного указания знака перед числом?

И вообще, Вы сами просили обсудить интерфейс...

 

GM: 7) Как по-вашему лучше выводить? Так

SINE-1
COSINE-2
TRIANGLE-3

или так
1-USER
2-PWM
3-NOISE

Во втором случае глаз пользователя ищет номер выхода на одной и той же позиции, а в первом надо напрягаться.

Передёргиваете...
Ведь, на сколько я понял, уже определились, что номер канала выводится первым параметром и перед названием формы сигнала.
По этому индикация типа "TRIANGLE-3" уже не к месту.

По клавиатуре.
GM, по моему, Вы сами себе противоречите.
Сначала говорите, что клавиатура не нужна:
GM: ...В уже упоминавшемся DL7100 цифровой клавиатуры нет вообще...
...прибор Anritsu MT8801, есть и цифровая клава, и валкодер. Но клава практически не используется...
То есть мысль такая - давайте отойдём от штампов и крепко подумаем...

Но тут же утверждаете, что с клавитатурой проще ввод:
GM: ...Меня всякие всплывающие менюшки в виндах, впихиваемые куда надо, и куда не надо, мягко говоря, раздражают. Иной раз проще найти пару клавиш и щёлкнуть по ним, чем целиться мышкой несколько раз, щёлкать и выбирать что-то...

Или это Вы настраиваете себя на пристройку клавиатуры?..

 

Прежде всего, я за разумный и прагматичный подход. В две строки по 16 символов каждая никак не вставить инструкцию по эксплуатации. Где разумно и практично применить клавиатуру, там надо применять. Где неразумно - там не надо применять, чего уж проще.

Что мы прицепились номеру выхода в цифре? Может обозначить как А и В?


A=-20dBmV SINE
F=100500.04Hz

 

Господа, не спорьте. GM прав в смысле аскетичности интерфейса для портативной версии прибора. 3, макс. 4 кнопки достаточно для данного случая. Особенно учитывая, что размер такого генератора будет с мобилку. Пока хоть один такой прибор не сделан, можно до хрипоты, или боли в пальцах спорить про то, как назвать канал (мне например подошли бы X, Y, а вот на счет третьего пока не определился . Уж лучше бы напрограмили да фотку прислали. Разговор предметнее станет. Тем более, что ранее был описан вполне разумный вариант внешнего вида главной страницы.

А в стационарном варианте DDS-1 клавиатура есть, причем с 20-ю кнопками на все случаи жизни. Есть и три варианта ввода частоты. Но на то он и стационарный. Более того, в конструкцию передней панели заложено место для шести (!) байонетов на будущее...

Короче говоря, не важно, есть плюсик или нет его, важно чтобы прибор был хороший.

 

GM: A=-20dBmV SINE

A имеет много значений, такое обозначение точно добавит путаницы. Тем более не стоит ставить знак равенства.

Лучше так:
A: SINE -20dBmV

Кстати может предусмотреть возможность переключения отображения уровня выходного напряжения в V, mV, dBV и dBmV?

 

Ряд изменившихся обстоятельств не позволяет уделять много времени проекту, но за веткой пытаюсь следить.
1. Я вижу определился миимальный набор органов управления - валкодер и 3 кнопки. Можно применить валкодер с встроенной кнопкой и пару обычных кнопок. Вполне достаточный минимум.

2. Судя по всему началася этап прикручивания стандартных символьных дисплеев 16х2. Они чуть дороже, но зато их можно достать везде.

3. По поводу вкл/выкл генератора - можно сэкономить место на индикаторе и при отключении выхода прописывать значение xx в поле вых. уровня, либо вместо -20dB писать -off-. Но будет неудобно делать коммутацию выхода с определенным уровнем.

4. Номер DDS предлагаю обозначить как G1, G2, ... Большет 2-х вряд ли кто-то будет делать, но до 9 место застолблено.

5. GM: Фильтр хотелось бы на стандартных покупных элементах, пошёл и купил. Ну и АЧХ должна соответствовать без тончайшей настройки.
ПМСМ не получится. Разброс в индуктивностей в 5% даст о себе знать и в первую очередь для свипа (а для него АЧХ в полосе прозрачности должна быть идеальной) . Поэтому склоняюсь к мнению DWD, конденсаторы покупные, дросселя на кольцах с малой проницаемостью. Вот только технология настройки будет утомительной.
Тут вопрос по материалу сердечника к DWD. Вы имели ввиду что-нибудь из этого?