Цифровые микроконтроллеры

Полезные ссылки

Модуль управления временем CAN-контроллер содержит встроенный 16-битный внутренний таймер свободного доступа. Этот счётчик управляется битом синхронизации линии шины CAN. Счётчик разрешается, когда разрешается CAN-контроллер (установкой поля CANEN в регистре CAN_MR). Счётчик автоматически сбрасывается в следующих случаях:

• после сброса;
• когда для CAN-контроллера разрешён режим с низким энергопотреблением (установлен бит LPM в регистре CAN_MR и бит SLEEP в регистре CAN_SR);
• после того, как CAN-контроллер сброшен (битом CANEN в регистре CAN_MR);
• в режиме временного запуска, когда сообщение принято последним почтовым ящиком (положительный перепад сигнала MRDY в регистре CAN_MSRy, где у - номер последнего почтового ящика).

Приложение может также сбросить внутренний таймер установкой поля TIMRST в регистре CAN_TCR. Текущее значение внутреннего таймера всегда доступно программе путём чтения регистра CAN_TIM. Когда таймер сбрасывается из значения FFFFh в значение OOOOh, об этом сигнализирует автоматическая установка бита TOVF (переполнение таймера) в регистре CAN_SR. Бит TOVF в регистре CAN_SR сбрасывается путём чтения регистра CAN_SR.

При установке TOVF может быть сгенерировано прерывание в зависимости от его маски в регистре CAN_IMR. В сети CAN в некоторых случаях приложение может зафиксировать состояние своего внутреннего счётчика, когда таймер достигает значения FFFFh, и ожидать условия перезапуска от другого прибора. Этот топологический элемент разрешается установкой поля TIMFRZ в регистре CAN_MR.

Регистр CAN_TIM фиксируется со значением FFFFh. Описанное выше условие перезапускает таймер. Запускается прерывание от переполнения таймера (TOVF). Производить мониторинг шинной деятельности CAN можно путём копирования регистра CAN_TIM в регистр CAN_TIMESTP после того, как запускается каждое прерывание TSTP от начала или конца фрейма.
2009 © Copyright