Полная версия этой страницы:
Не работает ARM AT91RM9200
OlegALL
Nov 30 2010, 12:56
Не работает процессор ARM AT91RM9200. Питание есть, частота с кварцевых резонаторов корректная, сигнал сброса подаётся корректно, замыканий на ножках нет. При загрузке рабочей прошивки процессор не дышит. В чём может быть дело?
Цитата(OlegALL @ Nov 30 2010, 14:56)

Не работает процессор ARM AT91RM9200. Питание есть, частота с кварцевых резонаторов корректная, сигнал сброса подаётся корректно, замыканий на ножках нет. При загрузке рабочей прошивки процессор не дышит. В чём может быть дело?
на компорт бросает символы "с"? - ссссссс...
если да, то что то с загрузчиком
OlegALL
Dec 1 2010, 05:47
Цитата(PrSt @ Nov 30 2010, 19:37)

на компорт бросает символы "с"? - ссссссс...
если да, то что то с загрузчиком
В тестовом режиме "C" нет! Вообще можете рассказать подробнее об этих передаваемых символах - в даташите об этом не нашёл
Цитата(OlegALL @ Dec 1 2010, 07:47)

В тестовом режиме "C" нет! Вообще можете рассказать подробнее об этих передаваемых символах - в даташите об этом не нашёл
там гдето это есть, суть такова что если 9200 не находит не один из способов загрузиться, то он непрерывно шлет на УАРТ символы CCCCC
sergeeff
Dec 2 2010, 09:01
Символы "CCCCC" поступают на выход uasrt dbg в случае старта внутреннего загрузчика. Стартует ли он - зависит от состояния пина BMS во время RESET. Если BMS=1, то стартует внутренний загрузчик.
freeman_
Dec 2 2010, 09:39
аналогичная проблема. может у кого имеется проект в Keil для AT91RM9200?
Arischenko Ivan
Dec 2 2010, 21:22
Недостаточно исходных данных, а именно -
С какого источника предполагается загрузка рабочей программы? Где исполняется код - в IRAM или SDRAM?
Проще всего, понять чем сейчас занят процессор - через JTAG перевести ядро в halt и посмотреть где сейчас выполняется программа и сравнить с ожидаемым результатом.
Там стартует при BMS подтянутом к 3V практически всегда. Нужно проверить землю все что начинается c GND питание всё что начинается c VDD, RC цепочки покрайней мере одну можно напаять, у меня последние просто практически всегда напаяны. Кварц часовой может быть плохой. Символ C должны выдавться раз в секунду в DBGU ножки DTXD, DRXD как приглашение начать загрузку прокраммы во внутреннюю рам
OlegALL
Dec 3 2010, 06:02
Я новичок именно в АРМ-х, поставлена такая задача: находить неисправности в платах (связанные с процессором), пришедших с производства. Можете ответить на ряд вопросов? (для модели AT91RM200):
- можно ли его программировать без программатора? Если да, то можно ли по RS?
- с помощью какой утилиты осуществляется программирование? Можно ссылку? Я скачал здесь:
http://atmel.com/dyn/products/tools_card.asp?tool_id=3883, но по-моему это для других моделей. Может ли эта утилита читать все типы памяти (хочу посмотреть, что происходит внутри процессора)
- может ли как-то заглючить бутлоадер? Можно ли скачать бутлоадер где-либо и записать его самому
Читаю доки и гуглю, но эти ответы пока не нашёл. Прошу прощения, если задал ветку не в том разделе.
Цитата(Arischenko Ivan @ Dec 3 2010, 00:22)

Недостаточно исходных данных, а именно -
С какого источника предполагается загрузка рабочей программы? Где исполняется код - в IRAM или SDRAM?
Проще всего, понять чем сейчас занят процессор - через JTAG перевести ядро в halt и посмотреть где сейчас выполняется программа и сравнить с ожидаемым результатом.
Пока на эти вопросы ответы не знаю, код находится во внешнем ПЗУ, исполняется видимо во внешнем ОЗУ, т.к. есть эти микросхемы на плате
Arischenko Ivan
Dec 3 2010, 07:03
Для того чтобы грамотно ответить на вопрос недостаточно исходных данных.
Подробно загрузка процессора описана в "ARM920T-based Microcontroller AT91RM9200" в разделе "13. Boot Program", страница 83.
Цитата(OlegALL @ Dec 3 2010, 09:02)

- можно ли его программировать без программатора? Если да, то можно ли по RS?
Да можно, нет нельзя. Если процессор не смог по какой-то причине загрузиться и не запустился встроенный bootloader, то нужен JTAG или внесение изменений в плату (например CS отрезать у dataflash). Если запустился встроенный bootloader, то в терминале должно появиться приглашение Xmodem - символы CCCCC. Тогда можно использовать bootstrap.
Цитата
- с помощью какой утилиты осуществляется программирование? Можно ссылку? Я скачал здесь:
http://atmel.com/dyn/products/tools_card.asp?tool_id=3883, но по-моему это для других моделей. Может ли эта утилита читать все типы памяти (хочу посмотреть, что происходит внутри процессора)
- может ли как-то заглючить бутлоадер? Можно ли скачать бутлоадер где-либо и записать его самому
Для начала нужно определиться, откуда процессор грузиться и в чем проблема.
OlegALL
Dec 3 2010, 08:54
Цитата(Arischenko Ivan @ Dec 3 2010, 10:03)

Для того чтобы грамотно ответить на вопрос недостаточно исходных данных.
Подробно загрузка процессора описана в "ARM920T-based Microcontroller AT91RM9200" в разделе "13. Boot Program", страница 83.
Да можно, нет нельзя. Если процессор не смог по какой-то причине загрузиться и не запустился встроенный bootloader, то нужен JTAG или внесение изменений в плату (например CS отрезать у dataflash). Если запустился встроенный bootloader, то в терминале должно появиться приглашение Xmodem - символы CCCCC. Тогда можно использовать bootstrap.
Для начала нужно определиться, откуда процессор грузиться и в чем проблема.
Я не знаю, как это определить. Для этого ведь нужен JTAG отладчик + утилита или утилита связи с КОМ портом, чтобы посмотреть, что происходит внутри процессора. Что мне делать?
Arischenko Ivan
Dec 3 2010, 09:21
Никто здесь не сможет вам помочь, если вы не дадите исходные данные, а именно : какая память подключена к процессору, какие интерфейсы выведены наружу. Хотя сделайте качественные фото платы, если сами не можете разобраться что есть на плате, а чего нет.
OlegALL
Dec 3 2010, 12:07
Используется микросхема ROM Intel TE28F128J3D-75, 2 микросхемы SDRAM Micron MT48LC8M16A2TG-75IT. Есть возможность программировать по UART и Ethernet (установлены соответствующие микросхемы Maxim MAX3223EAP и AM79C87). Если нужно, пришлю схему или фото платы.
Arischenko Ivan
Dec 3 2010, 13:37
TE28F128J3D-75 - 16 битная flash память, если при включении питания (во время reset процессора),
BMS=0 то программа начинает исполняться напрямую из flash памяти. Если прошивка там битая или ее нет то процессор зависнет.
BMS=1 то должен запуститься встроенный в процессор bootloader, который не найдет прошивки и будет ожидать программу через GDBU порт по протоколу xmodem.
Так что вариантов два : или отрезать CS от TE28F128J3D или выставить BMS=1; Это позволит оценить, работает процессор или нет. Если в терминале появится приглашение xmodem - "CCCCC " то процессору можно передать маленькую программу которую он запишет в IRAM и передаст ей управление. Теоретически такая программа может про инициализировать SDRAM, получить по интерфейсу прошивку и записать ее в TE28F128J3D. Тут есть одна тонкость : такие программы рассчитаны на работу с SPI dataflash или MCI, я не видел чтобы они работали с параллельной flash (не искал); предполагается что программа для параллельных 16-битных флешек записываются в них через JTAG.
sergeeff
Dec 4 2010, 00:03
Автору топика: вы ждете чтобы вам 20 человек написали про BMS пин и что надо посмотреть на выход usart dbg осциллографом для начала, что он что-то выплевывает наружу? Тогда вы нам что-нибудь напишете про то, что вы видете на своей плате? Если ничего не выдает - напортачили с подключением процессора или он дохлый (был или стал).
OlegALL
Dec 9 2010, 13:32
Есть платы, которые при указанных здесь условиях не выдают "C" на пин BMS. Вопросы:
1. Означает ли это, что процессор неисправен? (допустим правильно подключен). Может ли не работать/глючить бутлоадер (я думаю это врядли возможно, т.к. серия плат большая и в каждую зашивается одинаковое ПО)?
2. Могу ли я написать свою тестовую прошивку и загрузить её через гипертерминал, например? Можно обойтись без программатора?
DmitryM
Dec 9 2010, 14:40
Цитата(OlegALL @ Dec 9 2010, 16:32)

Есть платы, которые при указанных здесь условиях не выдают "C" на пин BMS. Вопросы:
1. Означает ли это, что процессор неисправен? (допустим правильно подключен). Может ли не работать/глючить бутлоадер (я думаю это врядли возможно, т.к. серия плат большая и в каждую зашивается одинаковое ПО)?
2. Могу ли я написать свою тестовую прошивку и загрузить её через гипертерминал, например? Можно обойтись без программатора?
Прочтите еще раз внимательно даташит про бутлоадер. Он зашит в сам микроконтролер, его нельзя стереть/перезаписать. Скорее всего у Вас микроконтроллер или пытается грузится не с того источника(например, с параллельной флеш, с которой загрузка в принципе невозможна из-за ошибки в вейт-стайтах бутлоадера, или начинает грузить битую программу и виснет. Само собой что кварцевый резонатор/генератор должен работать. Чтобы дойти до гипертерминала должен отработать бутлоадер.
Arischenko Ivan
Dec 13 2010, 08:00
Цитата(OlegALL @ Dec 9 2010, 16:32)

Есть платы, которые при указанных здесь условиях не выдают "C" на пин BMS. Вопросы:
Это означает, что вы не изучили документацию на контроллер, документ "ARM920T-based Microcontroller AT91RM9200" глава которая Вам нужна называется "13. Boot Program". BMS задает режим работы микроконтроллера, общение идет через порт DBGU.
OlegALL
Dec 15 2010, 06:03
Скажите, как можно прошить это ARM через УАРТ. Какая нужна программа для ПК? Нужно ли переходное аппаратное устройство? Есть технологическая программа под виндоуз, разработтанная сторонним предприятием, через которую мы можем зашивать прошивки. Прошивки имеют странное расширение - .bin Что это за расширение? Посмотрел - компиляторы такие файлы не генерируют. Прошивается через Ethernet
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.