Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT91SAM9M10 USART
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Drozd2
Получил готовую плату с процессором, памятями и т.д. Подключил USB, DBGU, запустил самбу. Процессор по USB видится, а на usart, куда самба отправляет логи, вместо читабельных сообщений приходят нечитабельные hex. Написал свой аналог самбы и старым добрым bruteforce определил, что корректная частота тактирования любого usart выставляется после умножения желаемого baudrate на 3/4. Если передергивать/перезапускать, то частота периодически, но гораздо реже, чем 3/4, уходит еще в какую-то одну точку, судя по одинаковым hex. Но тоже не в корректную. А с usb при этом никаких проблем. Тут частота всегда корректная. Процессор всегда на связи.
Для решения задачи мне 3/4 хватило. Эту плату отбракуют. Но осадок остался. Errata молчит. Кто еще такое видел? Решаемо?
Jury093
Цитата(Drozd2 @ Jan 7 2016, 01:19) *
Для решения задачи мне 3/4 хватило. Эту плату отбракуют. Но осадок остался. Errata молчит. Кто еще такое видел? Решаемо?

выпаяйте и проверьте кварц подозрительной платы, ну и его обвязку..
если плата одна, то похоже на применение кварца с частотой отличной от атмеловской и самбой от атмела..
Drozd2
Логично. С одной стороны. А USB? Там то проблем нет. Контроллер по USB всегда на связи. Отклонение кварца в первую очередь ударило бы сюда?
Да и вот еще какая незадачка. Для устройства спортирован linux. И u-boot, и linux дружно мониторят cpu_clock 96 MHz, master_clock 48 MHz. Это которые устанавливаются самбой контроллера. linux работает. В конечном устройстве используются 2 usart. И оба они нормально работают после умножения baudrate на 3/4. MASTER_CLOCK делится на baudrate. Получается USART получает MASTER_CLOCK не 48, а 64 MHz. И это только usart. Про остальную периферию пока ничего не говорю, она синхронная. Работает.
Jury093
Цитата(Drozd2 @ Jan 7 2016, 16:55) *
Логично. С одной стороны. А USB? Там то проблем нет. Контроллер по USB всегда на связи. Отклонение кварца в первую очередь ударило бы сюда?

тогда надо гуглить о возможных проблемах конкретной версии Самба и M10..
покопайтесь в каталоге с Самбой, там есть скрипты с настройками, вполне может быть ситуация, что вы запускаете "чужой" вариант, который может отличаться от вашего
в даташите на М10 в разделе 24.6 разрисована диаграмма клоковых сигналов, и там ветки для usb, cpu и peripherals разбегаются, т.е. допустима ситуация. когда usb отлично работает, а вот тактовая для уарта может быть выбрана с ошибкой..

Цитата
Да и вот еще какая незадачка. Для устройства спортирован linux. И u-boot, и linux дружно мониторят cpu_clock 96 MHz, master_clock 48 MHz. Это которые устанавливаются самбой контроллера. linux работает. В конечном устройстве используются 2 usart. И оба они нормально работают после умножения baudrate на 3/4. MASTER_CLOCK делится на baudrate. Получается USART получает MASTER_CLOCK не 48, а 64 MHz. И это только usart. Про остальную периферию пока ничего не говорю, она синхронная. Работает.

ну у вас чудеса.. у меня есть пара плат от starterkit.ru на 9g45/9m10 - все прекрасно работает и ведет себя ожидаемо..
в вашем случае есть зацепка - нештатное поведение uart - открываете исходники и смотрите что там куда прописывается при начальных настройках, данные сверяете с даташитом
либо пишите несложную софтинку, которая прямо на плате под линуксом покажет содержимое интересующих регистров АРМа с текущими настройками, далее в даташит
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.