реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Непонятно читается внешняя память, Симулятор ОК, железка - нет
toweroff
сообщение Feb 19 2009, 09:22
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Плата - отладочная SK-MLPC2478 (стоит реальный 78, а не 68, как в первых версиях было)

На EMC висит static memory и dataflash. Я их сдул, чтобы не мешались - буду подключать свою память.

Пока просто гоняю по большому счету "чистый" проц, дабы оценить производительность и отладиться.
Итак. Пытаюсь читать внешнюю static memory. По идее, все входы D0-D31 притянуты pull-up к VCC и должно читаться оттуда 0xFFFFFFFF.
В симуляторе заполняю память с 0x80000000 FF-ами, все зер гуд, читается именно то, что надо.

Заливаю прошивку. Опа! Читаю 0xFFFF. И хоть что делай... Такое ощущение, что старшие D16-D31 посажены на 0, но на плате они просто идут от проца к разъемам (типа для подключения своей перефирии), то есть фактически просто "висят".

EMCStaticConfig[3..0] отконфигурены все как 32-разрядная шина

Отсюда вопрос - что я упустил? Возможно, какая-то есть тонкость, которую я просто не знаю ввиду очень недолговременного опыта работы с LPC2478?
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 19 2009, 11:05
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Свершилось чудо smile.gif

Дело было в непроиниченном PINSEL7. Когда указал нужную конфигурацию все заработало. Странно, но подключенный стартап LPC2400.s не содержал ни одного упоминания о PINSEL7, равно как и о PINSEL4, от которого мне нужно /CS2 и /CS3

Но теперь столкнулся с новой проблемой - читать-то старшие разряды теперь читает, но значение я получаю 0xEfffffff, то есть бит D[28] в нуле...
PINMODE все в 0, то есть Pull-up Enabled, функция нормальная (01 - D[28]), на плате коротышей нет... Похоже, опять засада smile.gif
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 19 2009, 15:12
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



А может быть физически битый порт P3.28 ?

Ничего не получается sad.gif Пробую через килоом подтянуть пин к VCC - ноль эффекта. Заставляю железку расписать PINSEL7 и PINMODE7 - все нормально, 0x55555555 (все пины порта - D[16..31]) и 0x00000000 (на всех пинах pull-up резисторы включены)

При этом на всех пинах есть VCC (ну чуть меньше) кроме этого D[28], на котором 0в

Обидно будет тащить железку по гарантии - еще ведь доказать надо, что это косяк Стартеркита (если это косяк, может действительно такой проц неудачный попался)
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 20 2009, 09:48
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Продолжение Марлезонского балета...

starterkit
Цитата
Загляните в схему, этот пин так же отведен для возможности аппаратного управления потоком (для определения готовности ответной стороны) RS232, отпаяйте пин 9 DA3, а лучше и 10 пин тоже, потому как ваши данные на полной скорости пойдут мусором на CTS ...


В схеме сигнал называется MP_5 (по номеру ноги), все подобные сигналы, которые никуда не подключены и функционала не несут, так называются. Отсюда я и сделал вывод, что нога "висит" в воздухе. Однако, MP_5 и MP_11, которые есть D[28] и D[29], реализуют в данной плате возможность hardware flow control и заведены на CTS и RTS. Поэтому-то мою как бы "висящую" ногу активно прижимали к нулю.

Так что проблема решена, не наступайте на грабли wink.gif
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 20 2009, 22:59
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Что уж темы плодить - напишу сюда.

Проблема записи в область памяти 0x80000000 - 0x83FFFFFF.
Чтение происходит корректно, все сигналы (CS[3..0], /OE) генерятся.
Запись не производится - то есть команда просто проскакивает, осциллограф ничего не ловит (в режиме однократного срабатывания триггера). Не отменяя триггера пробую читать - все корректно отображается.
В свете предыдущих моих постов - с разводкой все в порядке, никто ничего никуда не притягивает и коротышей на плате нет smile.gif

В чем может быть дело? Может где-то задаются регионы "read only"? Но тогда бы в какое-нибудь исключение вылетел бы...

Отлаживаюсь через MT-Link
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Feb 20 2009, 23:18
Сообщение #6


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Возможно в EMCStaticConfig0/1/2/3 бит 20.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 20 2009, 23:32
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(GetSmart @ Feb 21 2009, 02:18) *
Возможно в EMCStaticConfig0/1/2/3 бит 20.


WriteProtect? Сброшен!
Go to the top of the page
 
+Quote Post
argentum
сообщение Aug 25 2009, 05:26
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 79
Регистрация: 26-04-09
Из: Москва
Пользователь №: 48 283



Прошу прощения, но про какие PINMODE и pull-up вы говорите?
Разве контролер внешней памяти (EMC) не самостоятельно организует инициализацию ног?
Go to the top of the page
 
+Quote Post
toweroff
сообщение Aug 28 2009, 09:23
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(argentum @ Aug 25 2009, 09:26) *
Прошу прощения, но про какие PINMODE и pull-up вы говорите?
Разве контролер внешней памяти (EMC) не самостоятельно организует инициализацию ног?


так вроде ж за _функцию_ пина отвечает PINSELx, там-то и прописывается, куда, собственно, в недрах камня пин подключен в данный момент
PINMODEx же расписывает, что подключено к самоу пину - пуллап (по дефолту), пуллдаун или ничего

Но тоже не все пины можно так конфигурить - все зависит от альтернативных интерфейсов, реализуемых на этих пинах:
Цитата
Remark: Pins P0.27 and P0.28 are dedicated I2C open drain pins without pull-up/down.
Pins P0.29, P0.30, P0.31 are USB specific pins without configurable pull-up or pull-down
resistors.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 20:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01404 секунд с 7
ELECTRONIX ©2004-2016