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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> LPC2292 c внешней ОЗУ и JTAG, как грузить в 16 бит
asen
сообщение May 17 2006, 14:55
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 513
Регистрация: 5-09-05
Из: Барнаул
Пользователь №: 8 220



Добрый день, вечер и утро всем!!!

Вот проблема есть такая был у меня модуль LPC-H2294 так как известно две микросхемы ОЗУ установлено с 16-ти битной организацией, другими словами на 32-х битную шину данных прицеплена ОЗУ. Так вот я прописывал в IAR адреса ПЗУ и ОЗУ в адресном пространстве внешнего ОЗУ и грузил туда через JTAG программу объемом ~200кБайт и все было ОК.
А потом при разработки принципиальной схемы пришлось отказаться от 32-ти битной шины данных и сделал 16-ти битную шину но вот не задача теперь когда пытаюсь грузить данные в внешнюю ОЗУ через JTAG данные теряются как мне кажется это обусловлено тем что данные передаются 32-х битными словами.

Так вот вопрос может можно заставить грузить данные 16 битными словами?
Может в трумб режиме ?
Go to the top of the page
 
+Quote Post
Alex03
сообщение May 17 2006, 18:11
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



А загрузить во внутреннюю память тестик внешней и прогнать? Всё нормально?

Посмотрите на регистры BCFG0..BCFG3. Не инициализировали ли Вы их раньше в какихнить скриптах (я с ИАР-ом не работал.)
Если нет, то видимо Вы ранее полагались на дефолтные установки и использовали банк 1, т.е. диапазон адресов 0x81000000-0x81FFFFFF.
Если так то сейчас Вам надо использовать банк 2 (CS2 и соответственно диапазон 0x82000000-0x82FFFFFF). Или инициализировать нужный BCFGх соответствующим значением перед загрузкой.

тумб/арм тут не при чём.
Go to the top of the page
 
+Quote Post
asen
сообщение May 18 2006, 02:55
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 513
Регистрация: 5-09-05
Из: Барнаул
Пользователь №: 8 220



адреса прописаны верно
и вообще какая разници в настройках BCFG0..BCFG3 при загрузки процессора через JTAG ведь она выполняется аппаратно. BCFG0..BCFG3 нужны чтобы конфигурировать разрядность и другое при чтении/записи во внешнее ОЗУ в рабочем режиме. Озу подключена ко всем сигналам CS0,CS1 по одной микрухе K6R4016 к каждому.
Вопрос в том как заставить аппартно укладывать данные полученые из JTAG 16-ти битными словами чтобы потом при запуске части программы из внутреннего ОЗУ настроить шину в 16-ти битный режим и продолжить выполнение программы уже из внешнего ОЗУ.
Go to the top of the page
 
+Quote Post
Alex03
сообщение May 18 2006, 04:43
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



Цитата(asen @ May 18 2006, 08:55) *
адреса прописаны верно
и вообще какая разници в настройках BCFG0..BCFG3 при загрузки процессора через JTAG ведь она выполняется аппаратно. BCFG0..BCFG3 нужны чтобы конфигурировать разрядность и другое при чтении/записи во внешнее ОЗУ в рабочем режиме. Озу подключена ко всем сигналам CS0,CS1 по одной микрухе K6R4016 к каждому.


Сам проц про внешнюю память ничего не знает, поэтому ему надо сказать об этом.
В регистрах BCFGx есть биты 29:28 которые отвечают за разрядность памяти в соответствующем банке.
По ресету они устанавливаются в:
Банк 0 - В зависимости от входов BOOT[1:0] во время ресета.
Банк 1 - 32 рагдяда
Банк 2 - 16 рагдядов
Банк 3 - 8 рагдядов

Цитата
Вопрос в том как заставить аппартно укладывать данные полученые из JTAG 16-ти битными словами чтобы потом при запуске части программы из внутреннего ОЗУ настроить шину в 16-ти битный режим и продолжить выполнение программы уже из внешнего ОЗУ.


Прописать BCGFx, проц сам будет разбивать одно 32-х разрядное обращение на два 16-ти.
Go to the top of the page
 
+Quote Post
asen
сообщение May 18 2006, 07:37
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 513
Регистрация: 5-09-05
Из: Барнаул
Пользователь №: 8 220



Ладно бох с ним с JTAG
Может кто нибуть сказать как обратится (записать/прочитать) в IAR к конкретной ячейке по заданому адресу памяти подключеной к внешней шине.
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 18 2006, 07:43
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(asen @ May 18 2006, 10:37) *
Ладно бох с ним с JTAG
Может кто нибуть сказать как обратится (записать/прочитать) в IAR к конкретной ячейке по заданому адресу памяти подключеной к внешней шине.

Абсолютно аналогично как и к внутренней, и как к 'портам'. Или я чего-то не понимаю в проблеме?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
asen
сообщение May 18 2006, 07:50
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 513
Регистрация: 5-09-05
Из: Барнаул
Пользователь №: 8 220



Вообщем на внешней шине у меня висит дисплей PG320240-D И линия А4 завадена для выбора команда/данные вот мне надо писать по адресу 0x83000001 данные и 0x83000011 команды чтобы соответственно на передаче данных А4 = 0, а на ппередаче адреса А4=0. Вот попробывал так обьявить но видемо на правельно. Может как еще можно?

__IO_REG8 (LCD_DATA, 0x83000001,__READ_WRITE);
__IO_REG8 (LCD_COM, 0x83000011,__READ_WRITE);
Go to the top of the page
 
+Quote Post
KRS
сообщение May 18 2006, 07:50
Сообщение #8


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(asen @ May 18 2006, 11:37) *
Ладно бох с ним с JTAG
Может кто нибуть сказать как обратится (записать/прочитать) в IAR к конкретной ячейке по заданому адресу памяти подключеной к внешней шине.

1 способ через указатель, годится для любого С
Код
unsigned short* Ptr;
Ptr=(unsigned short*)(0x82000000);
Ptr[0]=0x55AA;
if (Ptr[0]!=0x55AA) .....
.....


2 способ использовать @ (фишка IAR)
Код
unsigned short ExtRam[8192]@0x82000000;


3 способ использовать сегменты и XCL файл
Go to the top of the page
 
+Quote Post
asen
сообщение May 18 2006, 08:20
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 513
Регистрация: 5-09-05
Из: Барнаул
Пользователь №: 8 220



Попробывал вот этот способ

unsigned short LCD_DATA@0x83000001;
unsigned short LCD_COM@0x83000011;

но он выдает ошибку

Error[Be012]: location address not allowed (object must have static storage duration and be const or __no_init) C:\prog\proba\main.cpp 6
Error[Be012]: location address not allowed (object must have static storage duration and be const or __no_init) C:\prog\proba\main.cpp 7
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 18 2006, 08:40
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(asen @ May 18 2006, 11:20) *
Error[Be012]: location address not allowed (object must have static storage duration and be const or __no_init) C:\prog\proba\main.cpp 6

Ну так успокойте его - скажите, что согласны не инициализировать
Ну и главное - адреса-то странные- смещенные.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
asen
сообщение May 18 2006, 14:25
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 513
Регистрация: 5-09-05
Из: Барнаул
Пользователь №: 8 220



С адресацией я разобрался всем спасибо !!!
Вот только теперь другая проблема у меня по сигналу CS3 выбирается ЖКИ подключенной к внешней шине к младшим 8 разрядам. А адресация между командами/данными выполняется за счет линии А4. Дисплей имеет контроллер SED1335 и имеет возможность работать в режиме i8080. Так проблема собственно следующая так как дисплей имеет питание 5 В а контроллер питается от 3,3 В и видимо уровни не дотягивают. В общем, он отказывается работать. Когда до этого я его запускал совместно с модулем LPC-H2294, я ставил на порты подтягивающие резисторы к +5В. А на шину ставить боюсь, так как не кто не гарантирует, что внешняя шина у контроллера тоже не боится 5 В.
Вопросы следующие
1. Может, кто пробовал цеплять к внешней шине привязывающие резисторы
2. Может можно еще как то поднять уровни до 5 вольтовых.
Go to the top of the page
 
+Quote Post
Alex03
сообщение May 18 2006, 17:56
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



Оно и без подтяжки работать должно.
Сравните минимальные/максимальные уровни напряжения на вход/выход LPC и SED
Go to the top of the page
 
+Quote Post
asen
сообщение May 19 2006, 01:42
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 513
Регистрация: 5-09-05
Из: Барнаул
Пользователь №: 8 220



В том то и дело что минимальный высокий входной уровень на входе ЖКИ 4В а максимальный который может обеспечить микроконтроллер 3-3,3 В вот такая борада!!!
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 19 2006, 05:35
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(asen @ May 18 2006, 17:25) *
В общем, он отказывается работать. Когда до этого я его запускал совместно с модулем LPC-H2294, я ставил на порты подтягивающие резисторы к +5В. А на шину ставить боюсь, так как не кто не гарантирует, что внешняя шина у контроллера тоже не боится 5 В.

А документацию почитать что мешает?

[6] 5 V tolerant pad with built-in pull-up resistor providing digital I/O functions with TTL levels and hysteresis and 10 ns slew rate control.
The pull-up resistor’s value ranges from 60 kΩ to 300 kΩ.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Alex03
сообщение May 19 2006, 05:52
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



ХМ
В том PDF-е на SED1335 который у меня есть D0..D7 и все остальные линии микропроцессорного интерфейса обозваны как TTL.А далее в табличке про TTL:

Код
                                 min  typ    max
Supply voltage            VDD   4.5    5.0  5.5      V
HIGH-level input voltage  VIHT  0.5VDD  —  VDD       V
LOW-level input voltage   VILT  VSS     —  0.2VDD    V
HIGH-level output voltage VOHT  2.4     —  —        V
LOW-level output voltage  VOLT   —     —  VSS + 0.4  V


Где:
Vss - 0В
PDF - Seiko Epson corporation 1999.


Цитата(zltigo @ May 19 2006, 11:35) *
[6] 5 V tolerant pad with built-in pull-up resistor providing digital I/O functions with TTL levels and hysteresis and 10 ns slew rate control.
The pull-up resistor’s value ranges from 60 kΩ to 300 kΩ.


НУ и не забудте удостовериться что на другие чипы по шине данных (и др. общ. сигналах) также можно подавать +5В
Go to the top of the page
 
+Quote Post
asen
сообщение May 19 2006, 06:08
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 513
Регистрация: 5-09-05
Из: Барнаул
Пользователь №: 8 220



Не знаю что там с описанием контроллера SED1335 не в доке на ЖКИ написано следующее

и судя по этой картинке верхний уровень составляет 4В
может есть какие буржуйские микрухи для этих целей

Не знаю что там с описанием контроллера SED1335 не в доке на ЖКИ написано следующее

и судя по этой картинке верхний уровень составляет 4В
может есть какие буржуйские микрухи для этих целей

Прикрепленный файл  1.bmp ( 47.41 килобайт ) Кол-во скачиваний: 54


Сообщение отредактировал asen - May 19 2006, 06:09
Go to the top of the page
 
+Quote Post
Alex03
сообщение May 19 2006, 08:38
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



Цитата(asen @ May 19 2006, 12:08) *
Не знаю что там с описанием контроллера SED1335 не в доке на ЖКИ написано следующее
...


не повезло однако. smile.gif
Go to the top of the page
 
+Quote Post
asen
сообщение May 20 2006, 17:28
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 513
Регистрация: 5-09-05
Из: Барнаул
Пользователь №: 8 220



и эту проблему мы решили поставили шинный формирователь 74HC245 вроде работает толька получили лишнию задержку на распространение сигнала не что поделаеш!

воттеперь думаем как лудше при помощи этого контроллера подсчитать частоту сигнала с индуктивного датчика частоты как я понял таймеры не могут тактироваться от внешнего сигнала а частота полезного сигнала ~300кГц вот надо считать частоту и с периудом 0,5-1с выводить на дисплей
что придумать пириуд мерить не хочется !
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 23:33
Рейтинг@Mail.ru


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