Перейти к содержанию
    

Косяки таймеров Allwinner A13

Приветствую. Может кому интересно будет.

Разбирался с таймерами в проце А13, а там их 8 штук, если не ошибаюсь, причем 6 асинхронных 32бита и 2 синхроных 56 бит, заметил такую бяку, когда на асинхр таймере 0 работает простой счетчик с прерыванием(вызов прерывания перекл. контекста 10КГц) и ставлю на второй тактировку приемника программного уарта (19200 бит\сек) получал сбойные символы, примерно 1 на 10-15 правильных. Начал копать, где глюк, пробовал задавать разные приоритеты не работает, проверил уарт без прерываний таймера 0 - все как часы, включил прерывания от других источников (уарты) работали на макс частоте 11КГц, все тоже работает прекрасно, перекинул 10КГц с асинхр на синхр. таймер - тоже все ок. Но если опять же кинуть эти задачи на синхронные таймера, опять начинаются сбои. Чувствую, проблема в китайских ip-корках блоков таймеров или их тактировке.

Вообщем вот такая ложка дегтя, в МХ6 с таймерами все ок было...

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может кому интересно будет.

...

Вообщем вот такая ложка дегтя, в МХ6 с таймерами все ок было...

Мне конечно не очень интересно, так как не пользую и не планирую ;) , но всё описанное совсем никак не указывает на проблему в МК. А больше походит на проблему с переключением контекста по этому самому 0-у таймеру. Либо ещё какие-то проблемы с прерываниями. Либо глюки в Вашем ПО, уж извините, но это гораздо более вероятно :laughing:

Сделайте Ваш софт-UART на ПДП с тактированием от таймера и, возможно, глюки пропадут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне конечно не очень интересно, так как не пользую и не планирую ;) , но всё описанное совсем никак не указывает на проблему в МК. А больше походит на проблему с переключением контекста по этому самому 0-у таймеру. Либо ещё какие-то проблемы с прерываниями. Либо глюки в Вашем ПО, уж извините, но это гораздо более вероятно :laughing:

Сделайте Ваш софт-UART на ПДП с тактированием от таймера и, возможно, глюки пропадут.

Инициализация по даташиту, переключение контекста во время теста было отключено, глюки наблюдаются только, когда используется несколько таймеров из какого-либо одного блока, т.е. 2 асинхр или 2 синхр. таймера вместе, т.е. когда 1 асинхр и 1 синхр - все норм. обработчик прерываний стандартный, во всех режимах работает исправно. У каждого таймера свой вектор.

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...