Topotun 0 5 января, 2021 Опубликовано 5 января, 2021 · Жалоба Получил задание запрограммировать МК для управления AD9834. Я понимаю как он работает, за счёт чего и как, почитал документацию всю. Также примерно имею представление об основных этапах программирования, но с реализацией кода есть проблемы. Может кто этим делом занимался и может подкинуть что-либо для того, чтобы, так сказать, покопаться. До этого вообще дел с кодами не имел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 5 5 января, 2021 Опубликовано 5 января, 2021 · Жалоба Надеюсь вы гуглили что-то вроде AD9834 + example code ? Лично я начинаю кодить похожие микросхемы с описания структуры регистров управления и функций доступа к ним. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 5 января, 2021 Опубликовано 5 января, 2021 · Жалоба На нашем форуме уже есть тема "ad9834" здесь: Я сама, когда код для AD9834 писала, использовала оттуда ссылку ad9834_drv.zip Там код написан под ATMega8515 и мне прошлось его переделывать только по части интерфейса SPI, т.к. у меня был контроллер ATxmega128A1, который хоть и AVR, но очень сильно отличается от ATMega8515 по части управления периферией. А микросхему AD9834 покупала сразу в виде готового модуля у китайцев вот такого типа: https://aliexpress.ru/item/32790171360.html на нем уже генератор тактовой частоты на 75 МГц установлен и прочая обвязка, включая ВЧ-коннекторы. Точно так же можно купить отдельно плату с контроллером, хотя бы Arduino (таких очень много продается), а потом "сломать" :) ее, переписав ей прошивку на свою. Если проект учебный, то лучше выбрать плату с USB-портом, чтобы напрямую с компьютером можно было бы стыковать. Иначе управление превратится в отдельный проект. Правда у китайцев можно приобрести плату с AD9834, где уж стоит контроллер (STM32F103) c USB-коннектором: https://aliexpress.ru/item/4000687606434.html только тогда вам никто не поверит, что код сами писали :). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Topotun 0 5 января, 2021 Опубликовано 5 января, 2021 · Жалоба 1 час назад, Xenia сказал: На нашем форуме уже есть тема "ad9834" здесь: Да, я её уже читал, только ссылка у меня не работала особо(похоже из-за того, что не был зарегестрирован). Я уже много где по форумам прошерстил, довольно часто натыкался на полезную инфу от вас. Спасибо за помощь. 1 час назад, Lmx2315 сказал: Надеюсь вы гуглили что-то вроде AD9834 + example code ? Как я только не искал, у меня уже все ссылки в гугле вплоть до 10 страницы и дальше просмотрены. Спасибо за помощь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 5 5 января, 2021 Опубликовано 5 января, 2021 · Жалоба 6 минут назад, Topotun сказал: Как я только не искал, у меня уже все ссылки в гугле вплоть до 10 страницы и дальше просмотрены. Спасибо за помощь. А вы на каком уровне ищете - чтобы всё было готово ввиде связки AD9834 и атмега? Так вы можете всю жизнь искать. https://www.electronics-lab.com/project/tiny-dds-open-source-dds-generator/ - с первой страницы поиска , внизу страницы по ссылке лежит проект: tiny-DDS-master.zip В проекте есть папка drv где можно найти файлы AD9834.с и AD9834.h и применить их у себя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Topotun 0 5 января, 2021 Опубликовано 5 января, 2021 · Жалоба 3 минуты назад, Lmx2315 сказал: А вы на каком уровне ищете - чтобы всё было готово ввиде связки AD9834 и атмега? Ну не совсем так, но где-то рядом. Прежде всего, конечно, пытаюсь во всём разобраться, сравниваю что нашёл и пытаюсь понять почему тут так, а тут эдак, но всё упирается во время, а у меня его не так уж и много. 13 минут назад, Lmx2315 сказал: В проекте есть папка drv где можно найти файлы AD9834.с и AD9834.h и применить их у себя. Всё нашёл, пойду копаться. Ещё раз спасибо за помощь. П.С. Меня звук уведомлений на этом форуме чуть до икоты не довёл... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 5 января, 2021 Опубликовано 5 января, 2021 · Жалоба 7 часов назад, Lmx2315 сказал: А вы на каком уровне ищете - чтобы всё было готово ввиде связки AD9834 и атмега? Так вы можете всю жизнь искать. https://www.electronics-lab.com/project/tiny-dds-open-source-dds-generator/ - с первой страницы поиска , внизу страницы по ссылке лежит проект: tiny-DDS-master.zip В проекте есть папка drv где можно найти файлы AD9834.с и AD9834.h и применить их у себя. Зря вы этот проект новичку советуете - он сложный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 5 6 января, 2021 Опубликовано 6 января, 2021 · Жалоба 12 часов назад, Xenia сказал: Зря вы этот проект новичку советуете - он сложный. Может и так. Вот ещё совет - этот DDS надо поискать на радиолюбительских сайтах CQHAM.ru например . Там точно есть открытые проекты на нём. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 6 января, 2021 Опубликовано 6 января, 2021 · Жалоба 1 час назад, Lmx2315 сказал: Вот ещё совет - этот DDS надо поискать на радиолюбительских сайтах CQHAM.ru например . Там точно есть открытые проекты на нём. Для того, чтобы что-то искать, нужно понимать предмет поиска. Тогда как в данной теме вопрос стоит не о том, чтобы собрать как можно больше проектов, в названии которых есть слово "AD9834", а найти среди них тот, что по-проще, который не только можно было бы бездумно скомпилировать, но и хотя бы в общих чертах понять новичку, который до этого вообще никаких микроконтроллеров еще не программировал. Поэтому мой совет (использовать проект ad9834_drv.zip с этого форума) был обдуманным советом: я сама его когда-то выбрала из нескольких десятков именно благодаря его простоте (всего два файла = ad9834.c + ad9834.h), а потому и советую. Тогда как вы, по-видимому, вовнутрь проекта, который рекомендовали, даже не заглядывали. А между тем в нем 218 файлов, среди которых есть и поддержка графического дисплея с тачскрином, и файловая система на SD-карте, и ЦАП AD5310, и счетчик реального времени, и много чего еще (оттого и в проекте так много файлов). Изолировать из этого проекта часть, относящуюся к AD9834, не так-то просто, а без вникания в логику этого проекта, так и совсем невозможно, а тем более новичку. Если я вас спрошу "для какого микроконтроллера написан рекомендуемый вами проект?", так вы и не ответите, т.к. даже этим вы, скорее всего, не поинтересовались, а лишь продемонстрировали свою способность прочесть 1-ую страницу, которую вам выдал Google. На сайте CQHAM.ru искать коды без толку - радиолюбители обычно используют DDS для синтеза несущей частоты в своих радиоконструкциях, но схематику и программный код, как правило, заимствуют в других местах, мало что в том коде понимая. Я уже имела опыт переговоров с ними и была крайне разочарована их результатами. Хотя признаю, что там есть и выдающиеся проекты вроде того, что сейчас разрабатывается на основе STM32H7 (проект "Малахит-DSP"), где уровень автора проекта очень высок. А на AD9834 когда-то был основан проект "Маламут" (я с его автором даже в переписку вступала), но потом он заменил в своем проекте AD9834 на AD9852. P.S. Тем не менее, топикстартер этой темы скрывает тип своего контроллера и даже умалчивает о том, выбрал ли он его окончательно или находится в раздумьях. Честно говоря, не хочется помогать таким людям, которые просят помочь им "запрограммировать МК", при этом не понимая, что прежде должны называть тип этого МК. Т.е. сложилось впечатление, что это просто студент, которому надо лишь побыстрее спихнуть лабораторную работу, как можно меньше утруждая свои мозги. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 43 6 января, 2021 Опубликовано 6 января, 2021 · Жалоба Перед поиском исходников для заимствования надо решить какая архитектура контроллера используется- с аппаратаным SPI интерфейсом или "дрыгоножество" а-ля AVR. От этого философия кода весьма меняется. Чтобы не было оффтопика- 9834 имеет одну интересную фичу- аппаратное переключение FTW по внешнему сигналу. Использовал ли кто 9834 в качестве дробного ДПКД в петле синтеза, управляя входом fselect от дельта-сигма модулятора? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 6 января, 2021 Опубликовано 6 января, 2021 · Жалоба 27 минут назад, khach сказал: Перед поиском исходников для заимствования надо решить какая архитектура контроллера используется- с аппаратным SPI интерфейсом или "дрыгоножество" а-ля AVR. От этого философия кода весьма меняется. В том и прелесть :) проекта ad9834_drv.zip, что для обращения к AD9834 по SPI используется всего одна функцию - SPI_WriteDDS(), перед употреблением которой требуется один разок вызвать функцию инициализации SPI-периферии - SPI_Init(). Реализация этих обеих функций вынесена в другой модуль spi.c. При этом оказывается, что только код spi.c является архитектурно зависимым, а код ad9834.c всегда один и тот же. Это позволяет написать "самодельную" функцию SPI_Init() которая бы устанавливала частоту SPI-клока в 1 МГц и передачу по переднему фронту. А вторая функция SPI_WriteDDS() - просто ожидание готовности (окончание предыдущей передачи) и запуск на передачу содержимого буфера. Очевидно, что эти две функции можно написать для любой архитектуры - не только для AVR (нативный код там именно такой), но и для дешевого STM32, где функции такого рода давным-давно написаны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 5 6 января, 2021 Опубликовано 6 января, 2021 · Жалоба 3 часа назад, Xenia сказал: На сайте CQHAM.ru искать коды без толку - радиолюбители обычно используют DDS для синтеза несущей частоты в своих радиоконструкциях, но схематику и программный код, как правило, заимствуют в других местах, мало что в том коде понимая. Я уже имела опыт переговоров с ними и была крайне разочарована их результатами. Хотя признаю, что там есть и выдающиеся проекты вроде того, что сейчас разрабатывается на основе STM32H7 (проект "Малахит-DSP"), где уровень автора проекта очень высок. А на AD9834 когда-то был основан проект "Маламут" (я с его автором даже в переписку вступала), но потом он заменил в своем проекте AD9834 на AD9852. Вы противоречите сами себе и фактам. p/s/ Тот проект что посоветовал , я конечно не изучал - но нашел файлы описания функций DDS и счел их достаточными, указал их ТС. Когда то я начинал как ТС и мне также надо было программировать с авеэрки DDS. Мне хватило пары целебных пинков с профильных форумов и поиск в гугле. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Topotun 0 8 января, 2021 Опубликовано 8 января, 2021 · Жалоба 06.01.2021 в 15:37, Xenia сказал: топикстартер этой темы скрывает тип своего контроллера и даже умалчивает о том, выбрал ли он его окончательно или находится в раздумьях Таки да, моя ошибка. На момент написания первого сообщения я ещё не выбрал конкретный МК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 5 8 января, 2021 Опубликовано 8 января, 2021 · Жалоба 2 минуты назад, Topotun сказал: Таки да, моя ошибка. На момент написания первого сообщения я ещё не выбрал конкретный МК. Для программирования AD9834 это абсолютно не важно. В идеале ваш код должен быть никак не привязан к реализации интерфейсов между мк и dds. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться