|
Прошу помощи! |
|
|
|
Oct 23 2009, 19:54
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 21-10-09
Пользователь №: 53 117

|
Появилась задача сделать задающий гениратор с частотой 50 гц чистый синус. (Генератор будет служить источником синуса для системы питания синхронного двигателя) Требование: Иметь два канала с одинаковой частотой. У одного из каналов повернуть фазу на 90 градусов. Имеь возможность регулировки частоты с шагом 0,01гц синхронно на обоих каналах. У канала с повернутой фазой иметь возможность подстойки фазы с шагом 0,01. Выводить информацию на четырехсегментнй цифровой индикатор. Иметь возможность сохранять различные комбинации настроек и потом выбирать из них нужную.
Пока что остановился на следующем схемотическом решении: Делать все на контроллере AT89C2051, потому что есть книги в которых расписано как его программировать на асме. В качестве синтезатора использовать DDS AD9833 в колличестве двух штук. Они будут давать одинаковую частоту, но у одного из них будет задан поворот фазы. Для хранения данных будет использована 24С02-04. У гениратора будет четыре кнопки. Две уменьшение увеличение. Одна выбор режима. И вкл/выкл. В качестве индикатора хочу использовать четырехсегментный светодиодный индикатор.
В итоге возникли вопросы: 1. В описании к 9833 сказано, что на частоте 1мгц он дает шаг изменения частоты 0,0001 ГЦ а выше 0,1 гц. В тумбочке валяется кварц на 24 мгц, что как раз для проца. В староглиняные времена я бы сделал на какой нибудь 555ЛН1 гениратор и потом бы при помощи счетчиков поделил до мегагерца для синтезаторв. Подозреваю, что сейчас это можно сделать более изящно?? 2. Мне сказали, что вроде бы как существует DDS сразу с двумя независимыми выходами, к тому же еще с возможностью менять и амплитуду на выходе каждого. такое и правду существует? 3. Везде пишут, что выбранный мной контроллер очень древний и простой. На что же тогда обратить внимание человеку, который послдений раз писал на асме лет 15 назад. Может быть существуют более простые решения моей задачи?? Хочется решить задачу без особых углублений в пучины микропроцессорных технологий Буду очень признателен за помощь.
|
|
|
|
|
 |
Ответов
(30 - 44)
|
Feb 19 2010, 11:48
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 21-10-09
Пользователь №: 53 117

|
Цитата(SysRq @ Feb 18 2010, 03:30)  Спасибо! Столкнулся с другой проблемой. Схема включения проца, проще некуда. Но он то работает то нет. Зашиваю прошивку, включаю. тишина. Включаю через 10 мин он может начать работать.. Прошиваю другой проц. Его втыкаю. Он не хочет работать ни при каких условиях. Хотя все нормально читается и пишется. Вроде и с питанием все хорошо, и кварц я ставил поменьше (стоит 24 мгц, я поставил 20) Где капать?
|
|
|
|
|
Feb 20 2010, 06:32
|
Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 2-06-08
Из: Москва
Пользователь №: 38 003

|
Цитата(NickSmith @ Feb 19 2010, 14:48)  ...Где капать? Капать - в рюмку немного сонных капель  Копать - рядом с ресетом и резонатрором (либо со сбросом что-то не так, либо резонатор "не заводится").
|
|
|
|
|
Feb 21 2010, 16:59
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 21-10-09
Пользователь №: 53 117

|
Цитата(smac @ Feb 20 2010, 10:32)  Капать - в рюмку немного сонных капель  Копать - рядом с ресетом и резонатрором (либо со сбросом что-то не так, либо резонатор "не заводится"). Ну естественно я глянул кварц и сброс. Синус есть, сброс тоже проходит. В итоге я решил все переделать на AVR ATtiny2313. Информации на порядки больше и средства разработки и отладки человечней. В связи с этим вопрос: Если я хочу прикрутить DDS, который у меня по IPS работает, я его могу к любым выводам прицепить или это в проце жестко привязано?
|
|
|
|
|
Feb 21 2010, 17:36
|
Знающий
   
Группа: Свой
Сообщений: 756
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 765

|
Цитата(NickSmith @ Feb 21 2010, 19:59)  у меня по IPS работает, я его могу к любым выводам прицепить или это в проце жестко привязано? Есть догадка что IPS это SPI. Тогда - в tiny2313 нет модуля SPI, а есть USI, с помощью которого можно сделать подобие SPI, подробнее описано документе на контроллер. По поводу "жесткой привязки" - зависит от вашего желания. Если хотите используйте USI, тогда выводы определены строго. Если нет, пишите свою реализацию интерфейса с DDS и используте любые выводы.
|
|
|
|
|
Feb 21 2010, 18:35
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 21-10-09
Пользователь №: 53 117

|
Цитата(Ant_m @ Feb 21 2010, 21:36)  Есть догадка что IPS это SPI. Тогда - в tiny2313 нет модуля SPI, а есть USI, с помощью которого можно сделать подобие SPI, подробнее описано документе на контроллер. По поводу "жесткой привязки" - зависит от вашего желания. Если хотите используйте USI, тогда выводы определены строго. Если нет, пишите свою реализацию интерфейса с DDS и используте любые выводы. Конечно же SPI, опечатка. Т.е программно реализовывать интерфейс??
|
|
|
|
|
Feb 21 2010, 19:00
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 21-10-09
Пользователь №: 53 117

|
Цитата(Алекс1981 @ Feb 21 2010, 22:38)  Вроде как получается программно-аппаратная реализация... Если можно поподробней. Я еще только знакомлюсь с предметом.. У меня есть плата уже собранная но под 89С2051. Я хочу без переделок решить вопрос перехода на tiny. У меня сейчас SDATA сидит на 8ой (PD4) ноге проца, а SCLK на 7ой (PD3).
|
|
|
|
|
Feb 22 2010, 15:21
|
Знающий
   
Группа: Свой
Сообщений: 756
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 765

|
Это смотря что считать страшным. Уточните что за индикатор? Если что-то жк, с встроенным контроллером, то пожалуйста. Выборки DDS и ЖК только на отдельные выводы заведите. Если индикатор другой, вдруг вы на светодиодных семисегментниках сделать его хотите? Будут у вас зажигаться сегменты на совмещенных выводах(правда быстро очень, можете и не заметить). А вообще, лучше сделать котлеты отдельно, а мухи отдельно. Меньше проблем, потом, с отладкой будет.
Сообщение отредактировал Ant_m - Feb 22 2010, 15:44
|
|
|
|
|
Feb 22 2010, 21:38
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 21-10-09
Пользователь №: 53 117

|
Цитата(Ant_m @ Feb 22 2010, 19:21)  Если индикатор другой, вдруг вы на светодиодных семисегментниках сделать его хотите? Будут у вас зажигаться сегменты на совмещенных выводах(правда быстро очень, можете и не заметить). Как раз семи сегментный, светодиодный..Я думаю, что даже и не будет. Будет же ведь динамическое сканирование. За 20 мс я думаю можно будет обработать и передать значение в DDS. Я к тому же могу сканирование с паузой сделать, т.е когда у меня на анодах ноль. И в этот момент передавать значения..не городить же из за этого целый драйвер для этого индикатора??
Сообщение отредактировал rezident - Feb 22 2010, 22:35
Причина редактирования: Нарушение п.3.4. Правил форума.
|
|
|
|
|
Feb 24 2010, 09:55
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 21-10-09
Пользователь №: 53 117

|
Цитата(Microwatt @ Feb 23 2010, 02:02)  NickSmith, зачаем же мучиться? Вы программист? Так и беритесь за программерские задачи, а не за разработку. Моню не надо нюхать, Моню надо учить. Я не спрашиваю что мне делать. Я задаю конкретный вопрос. Если Вы не можете ответить на него, то зачем писать то, что к делу не относится? По моему эта ветка так и называется - В помощь начинающему. Вот и помогайте.
Сообщение отредактировал rezident - Feb 24 2010, 17:51
Причина редактирования: Нарушение п.3.4 Правил форума.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|