#microcontroller #clock #can-bus
#микроконтроллер #часы #can-bus
Вопрос:
В настоящее время я использую 32-битный микроконтроллер со встроенным контроллером CAN. Я не могу выбрать источник синхронизации для контроллера CAN (на основе версии 2.0, части A и B), поскольку у меня есть 3 варианта источника синхронизации, каскадные часы FMPLL, внешний кварцевый генератор и встроенный RC-генератор. Поскольку я должен минимизировать ошибку из-за дрожания тактовой частоты при вычислении синхронизации битов CAN. Поэтому я должен выбрать лучший источник синхронизации для этого требования. Я пытаюсь найти метод, которому следует следовать для этого выбора, но не смог найти подробной информации. Кто-нибудь может мне это объяснить или порекомендовать какой-нибудь хороший источник информации? Спасибо
Комментарии:
1. CAN очень чувствителен к перекосу тактовой частоты. Избегайте любых некристаллических часов. Конечно, я бы избегал любых встроенных RC-генераторов, поскольку они обычно далеки от целевой частоты и недостаточно стабильны во время работы. Если тактовая частота FMPLL основана на внутреннем RC-генераторе, избегайте и этого. Если, с другой стороны, он основан на внешнем кристалле, никаких проблем. И, очевидно, внешний кварцевый генератор в порядке.
Ответ №1:
Это зависит от битрейта, но если у вас есть кристалл, используйте его.
CAN создает границу каждые 5 разрядов. Если вы сложите величину «дрейфа» часов, вы получите за это время промежуток между потенциально наихудшими-самыми медленными часами в сети и потенциально наихудшими-самыми быстрыми часами в сети, и сравните это с точкой выборки в используемом вами бите, вы сможете увидеть, будет ли величина дрейфа у вас слишком большой.