|
at91sam9g20 - не запускается встроенный bootloader |
|
|
|
May 14 2012, 14:13
|

Местный
  
Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091

|
Пытаюсь запустить плату с at91sam9g20 ревизии B. Питания на него подаются в следующем порядке: VDDBU есть всегда (подается от батарейки). При включении VDDIO (он же VDDANA, VDDOSC, VDDUSB, ) растет от 0 до 3.3 В (несколько миллисекунд). Когда VDDIO достигает 2.5В, появляется VDDCORE (он же VDDPLL). После его появления я вижу импульс сброса на NRST. Вижу генерацию 32.768 кГц на часовом кварце и 18.432 МГц на основном. BMS притянут через 100 кОм к VDDIO (пробовал соединить напрямую, разницы нет). Вместо ожидаемого выполнения программы из встроенного ПЗУ я вижу следующее: через 100 мс после сброса процессор начинает читать NAND FLASH: на NANDOE идут отрицаиельные импульсы длительностью 70 нс с периодом 650 нс. В это время периодически вижу импульсы на CLE. На ALE импульсов не замечено. Продолжается это примерно 4 секунды, после чего все стихает. Попыток обращения по SPI не вижу. На SPI0CS0 и на SCK0 высокий уровень, никаких импульсов нет. В DBGU ничего не выдается (как я понял, загрузчик должен выдать что-то типа RomBoot?). Более того, на выводе DTXD низкий уровень (DBGU не инициализируется?). Три платы ведут себя одинаково.
Подскажите, пожалуйста, в чем может быть проблема. У меня мысли кончились...
--------------------
Всего наилучшего, Alex Mogilnikov
|
|
|
|
|
 |
Ответов
(1 - 14)
|
May 15 2012, 03:17
|

Местный
  
Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091

|
Цитата(aaarrr @ May 14 2012, 19:20)  Не пробовали отключить NAND? Пробовал. Отключал CE флешки от процессора и подавал туда высокий уровень. Никаких изменений.
--------------------
Всего наилучшего, Alex Mogilnikov
|
|
|
|
|
May 15 2012, 08:09
|

Участник

Группа: Участник
Сообщений: 20
Регистрация: 5-01-08
Из: г. Казань
Пользователь №: 33 830

|
Не сильно вникал в суть вопроса, так что может и не совсем в тему, но здесь было подмечено, что в SAM7 bootloader может не корректно работать с компами на чипсете AMD. С чипсетом Intel проблем не возникало. Может это поможет?...
|
|
|
|
|
May 15 2012, 09:14
|

Местный
  
Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091

|
Цитата(aaarrr @ May 15 2012, 13:15)  Кстати, alx2, вы пробовали USB подключать, или смотрите только DBGU? Пробовал. Никакой реакции со стороны компьютера. Насчет основного генератора - тут ситуация непонятная. У меня генерация (18 МГц с размахом 200 мВ) на кварце (вывод XOUT) появляется сразу в момент подачи питания, и я не вижу признаков того, что кто-то генератор "включает". В документации, действительно, написано, что после сброса генератор выключен, и его надо включать, но нигде не уточняется, что значит "выключен", и что при этом не должно быть никакой генерации... Насчет NANDOE - как я понял, это просто сумма сигналов NCS3 и NRD, поэтому импульсы на этом выходе еще не свидетельствуют об обращении именно к NAND FLASH. Видимо, процессор обращается к области NCS3 как к статической памяти. А импульсы на CLE - на самом деле A22... Так что пока у меня пока полное впечатление, что процессор пытается стартовать из несуществующей внешней памяти (NCS0 у меня не используется и не выведен из-под процессора)... Кто-нибудь вообще использует sam9g20 с таким порядком подачи питаний (сначала VDDIO, потом VDDCORE)? У меня осталась единственная мысль - попробовать поменять порядок подачи питаний, что не так-то просто сделать...
--------------------
Всего наилучшего, Alex Mogilnikov
|
|
|
|
|
May 15 2012, 09:28
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(alx2 @ May 15 2012, 13:14)  Насчет основного генератора - тут ситуация непонятная. У меня генерация (18 МГц с размахом 200 мВ) на кварце (вывод XOUT) появляется сразу в момент подачи питания, и я не вижу признаков того, что кто-то генератор "включает". В документации, действительно, написано, что после сброса генератор выключен, и его надо включать, но нигде не уточняется, что значит "выключен", и что при этом не должно быть никакой генерации... Ну, если выключен, то по логике и генерации быть не должно. Проверять в голову не приходило. Попробуйте переключить BMS на загрузку с NCS0 - тогда его точно никто включать не будет. Цитата(alx2 @ May 15 2012, 13:14)  Кто-нибудь вообще использует sam9g20 с таким порядком подачи питаний (сначала VDDIO, потом VDDCORE)? У меня осталась единственная мысль - попробовать поменять порядок подачи питаний, что не так-то просто сделать...  Используем. Для ревизии B это нормально.
|
|
|
|
|
May 15 2012, 09:47
|

Местный
  
Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091

|
Оп-па! Сейчас проделал простой эксперимент - посадил BMS на землю. И поведение изменилось!!! Во-первых, на основном кварце нет никакой генерации, а во-вторых, на NANDOE нет никаких импульсов, постоянный высокий уровень.
Следовательно, процессор на BMS реагирует, и высокий уровень на нем видит. Включение основного генератора, видимо, производится осмысленно, под управлением встроенного загрузчика. Остается непонятным, какого же хрена он дальше не хочет работать как положено...
--------------------
Всего наилучшего, Alex Mogilnikov
|
|
|
|
|
May 15 2012, 10:12
|

Местный
  
Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091

|
Цитата(aaarrr @ May 15 2012, 14:54)  У вас ведь предусмотрено "альтернативное" питание VDDBU от VDDIO? Нет,  но припаять проводок недолго. Только мне непонятен смысл этого эксперимента. У меня VDDCORE и VDDBU делается двумя одинаковыми микросхемами (TPS71710). Если я вместо батарейки подам VDDIO, то VDDCORE и VDDBU будут появляться одновременно - плюс-минус разброс параметров микросхемы. И что? Кстати, я могу вынуть батарейку, подать питание и вставить батарейку.
Сообщение отредактировал alx2 - May 15 2012, 10:14
--------------------
Всего наилучшего, Alex Mogilnikov
|
|
|
|
|
May 15 2012, 10:17
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(alx2 @ May 15 2012, 14:12)  У меня VDDCORE и VDDBU делается двумя одинаковыми микросхемами (TPS71710). Хм. Крутая батарейка должна быть. Цитата(alx2 @ May 15 2012, 14:12)  Если я вместо батарейки подам VDDIO, то VDDCORE и VDDBU будут появляться одновременно - плюс-минус разброс параметров микросхемы. И что? POR у VDDBU части сработает.
|
|
|
|
|
May 15 2012, 11:01
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(alx2 @ May 15 2012, 14:28)  После подачи основного питания контроллер отрабатывает все ту же процедуру. Только импульсы на NANDOE появляются не через 100 мс после включения, а почти через секунду (задержка на стабилизацию часового кварца?)... Да, это медленная раскачка кварца (до 1200мс по даташиту). Меня тут смущает пара моментов: - вы говорите, что DBGU не инициализирован, но внутренний загрузчик должен выплюнуть строку "ROMBoot" еще до всех попыток загрузки. - "0" на выводе DTXD. Даже если он не инициализирован, должна быть единица за счет включенного pull-up'а. Проверьте подключение DBGU. А на SPI какая-нибудь память не подключена?
|
|
|
|
|
May 15 2012, 11:13
|

Местный
  
Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091

|
УРА!!! Заработала! (с) Матроскин. Рассказываю. Оказалось, что проблема была в сигнале JTAGSEL. Он у меня был притянут к 1В чтобы включить режим JTAG. Отпаял внешний резистор, теперь этот сигнал стал притянут к нулю внутренним pull-down резистором. И получил в терминале долгожданную "RomBOOT". Я и не предполагал, что сам факт переключения порта JTAG/ICE может влиять на работу ядра... К самому интерфейсу у меня ничего не было подключено, все JTAG сигналы имеют подтяжки куда следует... Столько нервов потратил...  Всем большое спасибо за участие и поддержку! ЗЫ. На SPI никаких памятей нет, и, как я уже писал, я не видел никаких признаков обращения к SPI - ни на SCK, ни на CS0 не было никаких импульсов.
Сообщение отредактировал alx2 - May 15 2012, 11:15
--------------------
Всего наилучшего, Alex Mogilnikov
|
|
|
|
|
May 15 2012, 13:04
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(alx2 @ May 15 2012, 15:13)  Рассказываю. Оказалось, что проблема была в сигнале JTAGSEL. Он у меня был притянут к 1В чтобы включить режим JTAG. Отпаял внешний резистор, теперь этот сигнал стал притянут к нулю внутренним pull-down резистором. И получил в терминале долгожданную "RomBOOT".
Я и не предполагал, что сам факт переключения порта JTAG/ICE может влиять на работу ядра... К самому интерфейсу у меня ничего не было подключено, все JTAG сигналы имеют подтяжки куда следует... Хых, кто бы мог подумать, ведь в datasheet сказано: "The JTAGSEL pin is used to select the JTAG boundary scan when asserted at a high level. It integrates a permanent pull-down resistor of about 15 kΩ to GND, so that it can be left unconnected for normal operations." Естественно, в boundary scan лапы себя по другому ведут. А JTAG отладчик работает с JTAGSEL=0.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|