Микроконтроллер для БТГ
50 НАНОСЕК плюс минус погрешность! Читайте их датащиты. Это одно и тоже ядро. Даже 84 Мгц, это дваджды помноженная частота, типа как в PC сначала частота шины 200 Мгц потом проц помножил её на 15 на все увидели 3,2 гегагерца. А основа осталась таже 200 мгц, со всеми остальными узлами системы общение идёт на 200 мегагерцах.tesla-nsk пишет: uralev, боюсь что не осветили главный момент : " но работают в портами почти с одинаковой скоростью." На сколько почти? на Atmega32 обеспечит 1Hz , а SAM3X8E 0,01Hz или как?
С уважением.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Мне трудно понять смысл в русских аналогиях при вопросах и ответах.
Но уверен, что Mining хочет получить ответ в его запрашиваемых величинах, т.е. в Герцах.
Вы же видите , что человек практик и у него есть железо. Он видимо готов строить на его базе.
/Сократ/
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
генерируем частоту равную 50 Гц. для контроллера SAM3X8E рассчитаем точность регулировки по простой формуле. Частоту контроллера 84 000 000 делим на 50 получаем 1680000. Цифра 1680000 говорит о том сколько раз в секунду контроллер может отследить или изменить текущую частоту в 50 герц. Далее 50 герц делим на полученное значение, получается 0,000029. 0,000029 -это точность для 50 герц.
Тоже самое сделаем для обычного Atmega, любого при частоте 16 мгц. 16 000 000 /50=320 000, 50/320 000=0,00015625. Тут точность настройки похуже.
Теперь повторим для генерируемой частоты в 1 мегагерц на контроллере SAM3X8E. 84 000 000/1 000 000=84, 1 000 000/84=11904. И на Atmega для генерируемой частоты в 1 мегагерц. 16 000 000/1 000 000=16, 1 000 000/16=62500.
Это лишь идеальный случай, но вспоминаем о том что на выполнение команд контроллер использует такты своей тактовой частоты. Для того чтобы просто вывести логич.1 или логич.0 на свои порты требуется 1 такт(цикл). Так даже если мы пошлём в первый порт 1, а затем без всякой программы 0, то в реальности получается между 1 и 0 «теряем» 1 такт, а между 0 и 1 «теряем» ещё 4 такта для возврата в начало программы и 1 такт для того чтобы опять послать 1, получиться что контроллером SAM3X8E сможем генерировать максимум 16.8 мгц. Правильно будет пересчитать все точности исходя из частоты в 16.8 мгц.
Вывод надо сделать такой, что помимо тактовой частоты нужно учитывать время выполнения программы, хорошенько её оптимизировать, а потом уже высчитать какая получиться точность.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
uralev пишет: Если контролер будет управлять DDS генератором, то частота контроллера вообще никак не будет влиять на точность регулировки, потому что формируется частота в DDS генераторе, а контроллер лишь отправляет в него команды. Если же формировать частоту непосредственно самим контроллером, то здесь точность будет зависеть от величины частоты и алгоритма программы. Т.е. пример с расчётом:
генерируем частоту равную 50 Гц. для контроллера SAM3X8E рассчитаем точность регулировки по простой формуле. Частоту контроллера 84 000 000 делим на 50 получаем 1680000. Цифра 1680000 говорит о том сколько раз в секунду контроллер может отследить или изменить текущую частоту в 50 герц. Далее 50 герц делим на полученное значение, получается 0,000029. 0,000029 -это точность для 50 герц.
Тоже самое сделаем для обычного Atmega, любого при частоте 16 мгц. 16 000 000 /50=320 000, 50/320 000=0,00015625. Тут точность настройки похуже.
Теперь повторим для генерируемой частоты в 1 мегагерц на контроллере SAM3X8E. 84 000 000/1 000 000=84, 1 000 000/84=11904. И на Atmega для генерируемой частоты в 1 мегагерц. 16 000 000/1 000 000=16, 1 000 000/84=62500.
Это лишь идеальный случай, но вспоминаем о том что на выполнение команд контроллер использует такты своей тактовой частоты. Для того чтобы просто вывести логич.1 или логич.0 на свои порты требуется 1 такт(цикл). Так даже если мы пошлём в первый порт 1, а затем без всякой программы 0, то в реальности получается между 1 и 0 «теряем» 1 такт, а между 0 и 1 «теряем» ещё 4 такта для возврата в начало программы и 1 такт для того чтобы опять послать 1, получиться что контроллером SAM3X8E сможем генерировать максимум 16.8 мгц. Правильно будет пересчитать все точности исходя из частоты в 16.8 мгц.
Вывод надо сделать такой, что помимо тактовой частоты нужно учитывать время выполнения программы, хорошенько её оптимизировать, а потом уже высчитать какая получиться точность.
С уважением.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
А я пока это отложил, сейчас работаю с так называемой программируемой логикой ("ПЛС", "ПЛИС"). Скорость куда лучше, примерно 10-15 н.сек.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Mining пишет:
uralev Спасибо! Тогда может с контроллером применить AD9850 DDS или AD9851 DDS в диапазоне до 2МГц?ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ] [ Нажмите, чтобы скрыть ]uralev пишет: Если контролер будет управлять DDS генератором, то частота контроллера вообще никак не будет влиять на точность регулировки, потому что формируется частота в DDS генераторе, а контроллер лишь отправляет в него команды. Если же формировать частоту непосредственно самим контроллером, то здесь точность будет зависеть от величины частоты и алгоритма программы. Т.е. пример с расчётом:
генерируем частоту равную 50 Гц. для контроллера SAM3X8E рассчитаем точность регулировки по простой формуле. Частоту контроллера 84 000 000 делим на 50 получаем 1680000. Цифра 1680000 говорит о том сколько раз в секунду контроллер может отследить или изменить текущую частоту в 50 герц. Далее 50 герц делим на полученное значение, получается 0,000029. 0,000029 -это точность для 50 герц.
Тоже самое сделаем для обычного Atmega, любого при частоте 16 мгц. 16 000 000 /50=320 000, 50/320 000=0,00015625. Тут точность настройки похуже.
Теперь повторим для генерируемой частоты в 1 мегагерц на контроллере SAM3X8E. 84 000 000/1 000 000=84, 1 000 000/84=11904. И на Atmega для генерируемой частоты в 1 мегагерц. 16 000 000/1 000 000=16, 1 000 000/84=62500.
Это лишь идеальный случай, но вспоминаем о том что на выполнение команд контроллер использует такты своей тактовой частоты. Для того чтобы просто вывести логич.1 или логич.0 на свои порты требуется 1 такт(цикл). Так даже если мы пошлём в первый порт 1, а затем без всякой программы 0, то в реальности получается между 1 и 0 «теряем» 1 такт, а между 0 и 1 «теряем» ещё 4 такта для возврата в начало программы и 1 такт для того чтобы опять послать 1, получиться что контроллером SAM3X8E сможем генерировать максимум 16.8 мгц. Правильно будет пересчитать все точности исходя из частоты в 16.8 мгц.
Вывод надо сделать такой, что помимо тактовой частоты нужно учитывать время выполнения программы, хорошенько её оптимизировать, а потом уже высчитать какая получиться точность.
С уважением.
Я об это не писал, но у меня частоту генерит именно AD9850 с тактовой частотой 125 мГц.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
О. PLD отлично! Накидали в свою схему -триггеров ,логики , осциллятор и т.д. и имеет море входов аналог-цифра и выходов ШИМ...uralev пишет: Может быть вы правы по использованию двух контроллеров, но надо их синхронизировать как то. Наверное ещё придётся логику добавлять.
А я пока это отложил, сейчас работаю с так называемой программируемой логикой ("ПЛС", "ПЛИС"). Скорость куда лучше, примерно 10-15 н.сек.
Мой брат делает гидравлические машины на таких контроллерах. Бывало ему помогаю
/Сократ/
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
/Сократ/
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.