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

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

1 23 189

GM: Нельзя ли посмотреть временные диаграммы обоих каналов валкодера?
Сделаю. Я там письмецо кинул...
Кстати, GM,
1. как я понял, mega48 JTAG`a не имеет, только 1W для отладки и spi для программинга (про параллельный не напоминать!)?
2. что хотели сказать буржуины в даташите на мегу 48 указанием рабочего диапазона частот при внешнем тактировании? Давно интересовало, т.к. нигде в дш больше такой диапазон не упоминается. Она что реально такая "гонимая"?

Изобразил схему под мегу48, впритирку все помещается, валкодер выделил на отдельные пины, правда для этого пришлось задействовать SPI-ные, однако это не страшно.

Прошить можно с отключенном валкодером, а при работе под управление от внешнего МК валкодер также не нужен. Завтра потестирую, если все в норме выложу саму схему. GM, дело за Вами

 

GM: Вы хотите получить квадратуры?
При наличии 2-х генераторов с одной частотой можно будет получить любое значение фаз между ними.

По валкодеру. Гугль говорит, что контактные бывают с разным к-вом импульсов на оборот. Обычно 12 и 24.
Может полезной будет эта статья? http://www.stas633.narod.ru/ProVse/Valcoder/Encoder_soft.html

madgrey: Изобразил схему под мегу48
Придется помучиться с разводом платы под порт D.

 

smg123: GM: Вы хотите получить квадратуры?
При наличии 2-х генераторов с одной частотой можно будет получить любое значение фаз между ними.

Не совсем любое, дискретность установки будет ограничена синхронностью пуска генераторов и тактовой частотой ведущего контроллера. Для решения первого возможно придется тактировать оба от одного внешнего генератора.
smg123: ридется помучиться с разводом платы под порт D.
А какие там проблемы? ЦАП R2R разводится на одном слое без перемычек что на smd, что на выводных деталях

 

2madgrey: мега48, что реально такая "гонимая"?

1) Да, у меги есть debugWire для отладки, ну и spi для программирования.

2) Что обнаружилось по поводу частоты внешнего тактирования. Самое старое описание меги48 (документ 2545) у меня в архивах оказалось версии В. Диапазон тактовой там указан 0-24 МГц, работа генератора с полным размахом - 0.4-25 МГц и приведено точно такое же примечание. В версии Е уже указано 0.4-20. Могу сделать предположение, что атмельцами была предпринята попытка получить генератор, работающий на частотах до 100 МГц, они оговариваются (см.прим.1), что параметр будет определен позже (TBD - to be defined). В любом случае, внешняя частота должна была быть поделена на 8, чтобы отвечать спецификации на аппарат (0-24 или 0-20). Как видим, попытка не удалась. В этой ветке было упоминание о статье в электоре, где атмега 48 была разогнана до 25 МГц, видимо, одна из первых. Сейчас частота должна быть не больше 20 МГц, если не хотите, чтобы вам было обидно и больно...

 

smg123: madgrey: Изобразил схему под мегу48
Придется помучиться с разводом платы под порт D.

Блин, понял скрытый смысл сего послания. Интересно, что курили атмеловцы, когда придумывали цоколевку 48й меге

 

madgrey: Изобразил схему под мегу48, впритирку все помещается, валкодер выделил на отдельные пины, правда для этого пришлось задействовать SPI-ные, однако это не страшно. Прошить можно с отключенном валкодером, а при работе под управление от внешнего МК валкодер также не нужен. Завтра потестирую, если все в норме выложу саму схему. GM, дело за Вами

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

Схему тестировать рано, есть замечания.

1) Если связь с хостом по spi, то наше устройство должно быть slave, и ножки pb5 (SCK), pb4 (MISO), pb3 (MOSI), pb2 (/SS) должны быть подключены к хосту. Кроме того, первые три ножки, ресет, земля и питание должны быть выведены на 6-ногий разъём для внутрисхемного программирования. Здесь же надо обдумать, как программировать сам хост в схеме, т.к. в ISP будут участвовать те же самые ноги со стороны хоста.

2) Валкодер или кнопки +/-, что по сути одно и то же, подсоединяются к рс5, рс4. Разведено должно быть под оба варианта, а поставлено будет что-то одно, поскольку программа в части обработки кнопок и валкодера существенно различается.

3) Кнопка FUNC подключается к выводу рв1.

4) Светодиоды подключаются к рс3-рс0, не надо их раскидывать по разным портам - это существенно, поскольку вывод состояний диодов осуществляется в цикле.

5) К ногам рв7-рв6 подключается кварц 20,000 МГц, вместе с конденсаторами 12-22 пФ на землю.

6) Вывод рв0 настраивается на вывод CLKO, который можно использовать, как внешний сигнал для хоста. Если хоста нет, то вывод висит в воздухе.

7) Последнее. Чтобы разводить, надо нарисовать полную схему, включая хост (та же атмега48), кнопки, дисплей, валкодер (подключение к хосту), связь с генератором, фильтр, ОУ на выходе, какой-нибудь регулятор уровня, источник 5 В,...что-то ещё, что я забыл. А, вот, частотомер на хосте..

 

GM: Я смотрю, вы похерили связь по уарту и решили осуществлять обмен по спи.
Это не я похерил, это жизнь такая. У этого чудо-кристалла уарт лежит на порте D. Если сумеете быстро выводить сигнал на ЦАП с 2х портов ( )- будем общаться по уарту. Заодно у ведущего уарт мультиплексируем...
GM: есть усечённый USI,
А это кто? И почему усеченный?
GM: Схему тестировать рано, есть замечания.
Тестировать буду в протеусе. Я ему програмулину напишу, залью, погляжу, шо выйдет...
GM: Если связь с хостом по spi, то наше устройство slave, и ножки pb5 (SCK), pb4 (MISO), pb3 (MOSI), pb2 (/SS) должны быть подключены к хосту.
Будут на разъеме. Даже более того, разъем будет с стандартной разводкой для программирования. Кроме того, т.к. Вы драконовладелец, возможно придется отлаживать таржеты по dW.
GM: 2) Валкодер или кнопки +/-, что по сути одно и то же, подсоединяются к рс5, рс4. Разведено должно быть под оба варианта, а поставлено будет что-то одно, поскольку программа в части обработки кнопок и валкодера существенно различается.
Пойдет так как нарисовал выше?
GM: 3) Кнопка FUNC подключается к выводу рв1.
GM: 4) Светодиоды подключаются к рс3-рс0, не надо их раскидывать по разным портам - это существенно, поскольку вывод состояний диодов осуществляется в цикле.
Как хотите, позже пришлю схэму в протеусе, делайте с ней что хотите . Как дадите отмашку буду тестерить в металле, ок?
GM: 5) К ногам рв7-рв6 подключается кварц 20,000 МГц, вместе с конденсаторами 12-22 пФ на землю.
А Вы думаете случайно именно эти пины на схеме в воздухе повисли? Протеус кладет на кварц, его режим работы указывается в настройках модели. Достаточно указать источник и значение тактовой частоты. Естественно, в реале будут и конденсаторы, и кварц и даже питание на контроллер подастся .
GM: 6) Вывод рв0 настраивается на вывод CLKO, который можно использовать, как внешний сигнал для хоста. Если хоста нет, то вывод висит в воздухе.
Я джампер на землю думал ввести, а порт подтянуть изнутри.
GM: 7) Последнее. Чтобы разводить, надо нарисовать полную схему, включая хост (та же атмега48), кнопки, дисплей, валкодер (подключение к хосту), связь с генератором, фильтр, ОУ на выходе, какой-нибудь регулятор уровня, источник 5 В,...что-то ещё, что я забыл. А, вот, частотомер на хосте..
Давайте сначала победим автономный режим, я могу нарисовать всю схему, но от нее живого места не останется в процессе отладки. Предлагаю в качестве полигона использовать протеус, я в железе буду проверять на макетке, когда будет схема хотя-бы на 50% готова - сделаю первую версию платы. Все возможности для этого есть, только пока непонятно, что рисовать. Народ на фильтрах так и затих, а в аналоговой части еще остался аттенюатор, схема сдвига уровня и много чего еще. Хоть бы решений кто нить подбросил что-ли Хотя я оконечник на неделе проверю такой как у Л.И. Ридико в проекте, если подойдет будет норм, если нет... Посмотрим.
Частотомер хоста - вещь хорошая, но это фича. Можно и проверенное решение встроить в плане схемотехники, а в плане ПО особых проблем нет - в диапазоне рабочих частот разрабатываемого прибора хватит встроенного таймера меги даже без предделителя.
А вот графический дисплей для такого прибора - необходимость. Я тут продумываю мысль с нокиевским дисплейчиком, результаты измышлений представлю на рассмотрение.

Да, т.к. пока ничего не ясно с конструкцией (ну разве что кроме типа чипа в генераторе, но у меня на этот счет особое мнение ) конструкция будет модульной - плата(ы) генераторов, фильтры+усилитель, аттенюатор, плата управления. Так будет быстрее и проще в отладке и модернизации

 

madgrey: что курили атмеловцы...
Не знаю, что курили они, а я курил целый день вопрос: как регулировать частоту без перерыва в генерации?
Наткнулся на небольшой кусок кода от уважаемого GM http://kazus.ru/forums/showpost.php?p=184262&postcount=63
Что-то вроде начал понимать, но голова уже не соображает. Пойду спать.

madgrey: Я тут продумываю мысль с нокиевским дисплейчиком
От 3310 ?

PS Не понимаю применения mega48. У tiny2313 как-то более рационально все разведено.

 

smg123: От 3310 ?
На нее уже есть адекватный драйвер и нашелся компонент для протеуса. Это в плюс. Минус - маловата. Надо будет нарисовать панель, все станет видно. А времени ёк...

smg123: PS Не понимаю применения mega48. У tiny2313 как-то более рационально все разведено.
А у меги еще рациональнее. Дело не в трассировке, а в более высокой частоте и ресурсах. Сравните память и все станет ясно

 

Частота одинаковая - 20МГц.
А зачем нам память? Если можно таблицу формы загружать при смене сигнала.
А вот выход Clock для синхронизации нескольких чипов и свободная нога USI мне больше нравятся.