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

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

1 45 189

GM: Отлично! Вот кого мы теперь будем мучить по поводу доработок
Нет уж, сначала мы Вас Я тама вверху 6 пунктиков накидал для начала...

 

madgrey: 22.54. Игорь, я теперь знаю еще один ваш ящик
Ну, ящиков у меня много, всех не вызнаете . Но один есть - закачаешься - домен второго уровня: Фамилия@ГородТчкСтрана.

Минимальное время реакции тиньки на команду - порядка 5+4 = 9 мс. Ищите замедлятель на своей стороне.

Убыстрить можно, скажем, сделать скорость уарта 960 кбод. На плате пойдёт, а с ПК может и нет - не все кабели потянут.

Одноразовое эхо я добавлял для отладки, наверное, можно убрать. Генерацию 10 кГц тоже уберу. Просто когда отлаживаешь, то спросить не у кого, тиня такая молчаливая , вот я и ставил вешки.

Предложения обдумаю, с первого взгляда технически не сложно сделать.

 

Если вы в тиньке по команде остановите генератор синуса, то прямиком попадёте на свип. Я правда им давно не занимался, но, чувствую, его время пришло.

 

madgrey, GM: Ну вот, дело и пошло!
Неважно, много информации в репозитарии или нет, главное, что она общая и доступная.
А если еще и подробная... Сдается мне, что GM есть чего рассказать про работу его кода

 

GM: сделать скорость уарта 960 кбод. На плате пойдёт, а с ПК может и нет ...

на днях игрался с UART на МЕГЕ 16- и оказалось, что 128000 это максимальная штатная (ХР SP3) для железного честного COM со стороны компа (кабель - дело второе).
А ежели с USB через FTDI- то и 921600(не пробовал, пока), но в этом случае нужно предусмотреть настройку номера порта до 32 COM или и дальше в упр. софте. бо цепляется FTDI в конец. и не всегда можно его насильно перенести на 2й или рядом.

 

ATLab: Сдается мне, что GM есть чего рассказать про работу его кода
Но он не любит метать бисер. Это мне знакомо, в принципе его поддерживаю. Если убрать финансовую сторону вопроса - удаленка в чистом виде. Знания всего проекта для каждого учасника не требуется, проект есть совокупность черных ящиков (главное шоб из них гроб не собрался ). Самое интересное - эта схэма работает в реале.

Хоть Tadas как-то и назвал протеус игрушкой, эта игрушка позволила отладить двухпроцессорную схему, определить времянки и баги и, в дальнейшем, позволит довести проект. Я люблю свои игрушки и тщательно их выбираю .

GM: Минимальное время реакции тиньки на команду - порядка 5+4 = 9 мс.
А вот и новая серия вопросов. Т.к. на предыдущую ответа пока не прозвучало, продолжу нумерацию:

7. 9мс это время за которое она гарантированно перейдет на генерацию новой частоты?
8. Между символами пачки нужны задержки или нет?
9. Пачки кроме первой могут быть одиночными?

Я конечно могу это все дело установить опытным путем, но если есть контакт с автором, проще и быстрее спросить его

 

GM: Убыстрить можно, скажем, сделать скорость уарта 960 кбод. На плате пойдёт, а с ПК может и нет - не все кабели потянут.
Нафиг нафиг нафиг, т.е. зачем так быстро. Кстати, каким образом Вы собрались сделать такую скорость, если макс. УАРТа шо в тиньке шо в меге 115,2к x 2? Этой скорости должно хватить для любого свипа - скорость перестройки за полторы тысячи частот/сек. А Любому АЧХ-метру (это самое крутое применение этого генератора, которое мне пока видится) достаточно 100-200 на период. Про ЧМ и ФМ речи не было, поэтому 115,2к - самое то будет. Может и в 57,6к достаточно окажется .

Cheeeper: А ежели с USB через FTDI- то и 921600(не пробовал, пока), но в этом случае нужно предусмотреть настройку номера порта до 32 COM или и дальше в упр. софте. бо цепляется FTDI в конец. и не всегда можно его насильно перенести на 2й или рядом.
Вношу ясность: Вы конечно правы, однако поймите, по ряду причин первая версия этого генератора НЕ БУДЕТ иметь связи с компом. В настоящее время GM и ATLab в тестовом режиме сделали управление одной генераторной секции. (Это я к тому, что сильно раскатывать губу не стоит, по крайней мере пока ) А таких секций в самом генераторе будет КАК МИНИМУМ одна и управляться они внутри прибора будут по УАРТу. А у меги 16 УАРТ один. Намек понятен? Однако, поскольку заложенный потенциал в проекте мне видится достаточно большим, я попутно фиксирую те фичи, которые войдут во вторую реакцию генератора. Набьем шишек (т.е. накопим опыт) с этим проектом, будет желание и возможность - модернизируем (не будет - не модернизируем, все бывает...). Трудно сказать, когда выйдет вторая версия, поскольку первая у меня на макетке даже еще не собрана до конца и работает только в протеусе. Главная мысль - до нового года постараться запустить DDS1 в режиме "Запорожца". "Lamborgini" он станет после тщательной доработки напильником

 

На все значимые вопросы (1,2,6) вроде уже ответил.

3-й вопрос непонятен. Какой строб выводить?

4-й вопрос. Сделаю к следующей версии, пока он ничего не держит и не решает.

7-й вопрос - это видоизменённый первый. Вы когда спрашивали про минимальное время перестройки, что имели в виду? А что такое гарантированное? В железе измерять достаточно трудоёмко, по расчёту вроде около 9 мс выходит, но явно не 50.

8-й вопрос. Байты в пачке должны идти непрерывно, но может быть и зазор менее таймаута, определите его (зазор)экспериментально. Если зазор больше таймаута, то пачка считается непринятой.

9-й вопрос. Непонятно, что значит одиночные пачки?

 

madgrey: А у меги 16 УАРТ один. Намек понятен?
То, что уарт один, это понятно, непонятно другое. Что мешает развести Тх от ведущего до двух ведомых? Нагрузочная способность? Нет. Протокол? Нет. По протоколу, например, можно одновременно управлять двумя генераторами, скажем, выключить их, заслать туда разные частоты и одновременно включить. Или поставить один прибор в режим свипа, а второй в режим генерации метки для этого свипа, вариантов масса.

 

GM: То что уарт один это понятно, непонятно другое. Что мешает развести Тх от ведущего до двух ведомых?
Ничего не мешает. Я против совмещения УАРТА для связи с ПК и передачи команд ведомым. Вот это - источник настоящего геморроя!
А безответных ведомых может быть и больше... Я вообще УАРТ мультиплексирую, чтобы с каждым можно было общаться приватно .
Кстати, с помощью двух бит можно адресовать 4(!) устройства. А у Вас только два... Непорядок...
И еще. GM, может облегчим программу ведомого и свипом будет заниматься ведущий, по крайней мере рассчитывать следующую частоты при любом законе ее формирования я вполне успеваю. Я буду знать точную частоту, которая генерируется каждой тинькой, что позволит потом скрестить валкодер со свипом и тягать границы как у проф. приборов, метки ставить, стробы всяческие... Тинька то не сможет успеть такое делать... Сейчас у меня события могут формироваться с частотой до 1 кГц, будет нужно быстрее - сделаю.
GM: Или поставить один прибор в режим свипа, а второй в режим генерации метки для этого свипа, Это что микроскопом гвозди забивать. Можно конечно, но молотком как-то удобнее. Метки синтезировать с помощью канала DDS - нерациональная трата ресурсов. А если у юзера только один канал? Что ему - без меток жить?