Arduino Uno Rev3 Внутренний кварц
Я использую плату Arduino Uno Rev3, и мне нужно отправить триггерный сигнал с определенной частотой (20–50 Гц). Этот триггерный сигнал должен быть максимально точным (+/- 0,01 мс). На сайте Arduino указано, что arduino uno имеет кварцевый кристалл с частотой 16 МГц, но я измеряю точность частоты около 0,35% (что было бы типично для керамического резонатора) вместо того, что я мог ожидать от кварца (0,001%). Я использую функцию micros() для измерения времени. Я делаю что-то неправильно? Почему моя частота настолько неточна?
Спасибо за помощь! :)
Изменить: действительно, когда я смотрю на схемы, я вижу керамический резонатор (синий кружок). Однако, кажется, есть еще часть 16 МГц (красный кружок). может это кварцевый генератор?
@MarayJay, 👍2
Обсуждение1 ответ
Лучший ответ:
Чип ATMega328P действительно тактируется керамическим резонатором. Веб-сайт вводит в заблуждение, заявляя, что у него есть кристалл (я отправил электронное письмо веб-мастеру, чтобы попытаться исправить это, хотя я не питаю особой надежды).
Кварцевый резонатор 16 МГц на схеме является частью схемы интерфейса USB и не имеет ничего общего с синхронизацией вашего кода. Он используется исключительно для тактирования чипа ATMega16U2, который обеспечивает подключение USB (USB требует более высокой точности для стабильной связи).
Есть и другие платы с лучшими кристаллами — чаще всего это платы со встроенным USB-подключением, такие как Arduino Due или Leonardo, или любая из множества плат других производителей, таких как Teensy или chipKIT.
Большое спасибо за разъяснение! Я изо всех сил пытаюсь найти альтернативу, которая обеспечивает следующие характеристики: - Выход 5В (мне нужен сигнал 5В) - Кварцевый - Возможна связь через RS-232 - USB-соединение для подключения к компьютеру У вас есть предложение?, @MarayJay
@MarayJay Arduino Leonardo может быть вашим лучшим выбором., @Majenko
Я правильно понимаю: у Леонардо есть только один кварцевый генератор, потому что нет второго процессора для связи через USB? А вы на 100% уверены, что это кварцевый генератор, да? Я больше не доверяю странице Arduino, поэтому я доверяю вам. (кстати, ты спасаешь мой день), @MarayJay
@MarayJay Леонардо имеет прямое («родное») USB-соединение. Он объединяет функциональные возможности обоих чипов Uno в одном. USB требует точности кристалла кварца. Вы также можете использовать Arduino Micro, если вам нужна меньшая занимаемая площадь. Тот же чип, только плата меньшего размера., @Majenko
Большое спасибо :), @MarayJay
- Что такое контакты XTAL1 и XTAL2 в Arduino Uno/Nano?
- Заменить предохранители Arduino Uno (может ли Arduino Uno заменить свои собственные предохранители?)
- Atmega328p — переход на низкое энергопотребление 1,8 В с использованием генератора 4 МГц — прошивка загрузчика
- Arduino Uno считывние предохранителей
- Синхронизация нескольких MPU9250
- Влияние тактовой частоты Arduino на скорость шагового двигателя
- Можно ли вывести переменные часы с помощью Fast PWM?
- Программирование низкобайтового предохранителя для atmega328 в Arduino Uno
Не могли бы вы предоставить код измерения, отредактировав свой вопрос?, @chrisl
Я не знаю, почему они говорят, что у него кварцевый кристалл — это не так — у него керамический резонатор. Этот: https://uk.farnell.com/murata/cstce16m0v53-r0/resonator-ceramic-16mhz-smd/dp/2443265, @Majenko
@Маженко, боже мой, ты уверен? Весь мой проект опирается на эту точность. Зачем им делать ложное заявление на официальном сайте? Есть ли вообще плата ардуино (альтернатива) с кварцевым кристаллом?, @MarayJay
Да, я уверен. Это часть схемы. Я отправил электронное письмо веб-мастеру, чтобы попытаться исправить ошибку на странице продукта. Есть много других плат с кристаллами получше - в основном более мощные платы, такие как Teensy, chipKIT и т.д., @Majenko
хорошо. Спасибо :), @MarayJay
Все платы, которые я делаю с 328P, 1284P, 2560, используют кристаллы кварца. 0,01 мс = 10 мкс, да? Вы можете сократить время до 4 мкс с помощью micros(), но вам нужно написать код, который работает в цикле() и не имеет джиттера, вызванного фоновым кодом цикла(). Например, мне нужно было загрузить 45 сдвиговых регистров с 8 МГц SPI; для этого мне пришлось отключить прерывания и записать 45 дискретных строк SPI.transfer (spdr = array[0]; 15 no-ops, затем spdr = array[1]); 15 операций без операций и т. д.) Если бы прерывания были включены, я мог бы видеть (на логическом анализаторе), что прерывание micros() нарушило бы временной поток. loop() сделал хуже., @CrossRoads
Arduino Uno Rev3 имеет ATmega328P. @Majenko, насколько я могу интерпретировать схему, есть два компонента: тот, который вы прислали (керамический резонатор), и еще один, возможно, кварц? пытаюсь прикрепить картинку, @MarayJay
@MarayJay Uno R3 имеет кварцевый кристалл для работы с ATMega16U2, а не с ATMega328P. Это то, что вам нужно для ATMega328P. Кварц требуется для USB для точности, но не для UART, так как он более щадящий., @Majenko
Итак, на этой плате нет возможности получить точность кварца для управления выходным контактом?, @MarayJay
@MarayJay Нет, боюсь, что нет., @Majenko
@MarayJay Если вы хорошо разбираетесь в пайке, нет причин, по которым вы не можете заменить резонатор на плате кристаллом 16 МГц и двумя керамическими конденсаторами (22 мкФ). Примерно так: https://images.app.goo.gl/x5KSXfUf9y1Q9K6e6, @Kavka