|
|
 |
Ответов
(1 - 13)
|
Mar 24 2011, 14:15
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 24-03-11
Пользователь №: 63 842

|
18.5.1 I/O Lines The pins used for interfacing the Static Memory Controller may be multiplexed with the PIO lines. The programmer must first program the PIO controller... и ещё they can be used for other purposes by the PIO controller.
Так понимаю, что всётаки можно вручную ими управлять?
|
|
|
|
|
Mar 25 2011, 14:54
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 24-03-11
Пользователь №: 63 842

|
Получилось вручную управлять ногами через макрос:
#define write_data(x) *((volatile unsigned short*)0x40000000) = (unsigned short)(x)
Кусочек кода этот я нашёл в одном примере. Тогда напрашивается у меня ещё вопрос: почему именно по адресу 0x40000000? Вроде как это начало области EBI (Chip Select3 / NANDFlash Logic), если я правильно понимаю. Как тогда определить адрес, например, для NCS2, также входящего в EBI?
|
|
|
|
|
Mar 26 2011, 06:38
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(Cadavre @ Mar 25 2011, 17:54)  Получилось вручную управлять ногами через макрос:
#define write_data(x) *((volatile unsigned short*)0x40000000) = (unsigned short)(x)
Кусочек кода этот я нашёл в одном примере. Тогда напрашивается у меня ещё вопрос: почему именно по адресу 0x40000000? Вроде как это начало области EBI (Chip Select3 / NANDFlash Logic), если я правильно понимаю. Как тогда определить адрес, например, для NCS2, также входящего в EBI? Это не управление ногами, а вывод на шину данных числа х, соответсвенно все тайминги определяются настройками чипселекта в EBI SMC. Для NCS2 адресс, соответственно, будет 0x30000000. Но, если чипселект определен как 8-битный, при выводе short будет два обращения.
|
|
|
|
|
Mar 28 2011, 06:34
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 24-03-11
Пользователь №: 63 842

|
Не могли бы вы для новичка пояснить почему всётаки 0х30000000 для NCS2?  и где найти информаию для остальных (NRD, NWR0, A1 и т.д.)?
|
|
|
|
|
Mar 30 2011, 06:43
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 24-03-11
Пользователь №: 63 842

|
Как я понял, при записи/чтении числа на шину данных через 0x30000000, состояние ног NCS2, NRD и NWR0 изменяется автоматически или ими можно управлять также, записывая число по адресу в память? Вот, например, для управления LCD нужно вручную управлять выводом A1 (low - индекс. регистр, high - данные GRAM ЖК экрана), который идёт на LCD. Разбираюсь уже долго и никак не могу понять, как всё это укротить, чтобы формировать желаемые импульсы через D0-15, NCS2, NRD, NWR0 и A1?
|
|
|
|
|
Mar 30 2011, 16:48
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(Cadavre @ Mar 30 2011, 10:43)  Как я понял, при записи/чтении числа на шину данных через 0x30000000, состояние ног NCS2, NRD и NWR0 изменяется автоматически или ими можно управлять также, записывая число по адресу в память? Вот, например, для управления LCD нужно вручную управлять выводом A1 (low - индекс. регистр, high - данные GRAM ЖК экрана), который идёт на LCD. Разбираюсь уже долго и никак не могу понять, как всё это укротить, чтобы формировать желаемые импульсы через D0-15, NCS2, NRD, NWR0 и A1? Что Вы собираетесь укорачивать??? Если у Вас LCD имеет интерфейс обычной статической памяти, то и пишите просто по заданным адресам, как уже сказали, BASE и BASE+1(2), зависит от обращения. Тайминги выставляются автоматом в соответствии с настройкой SMC.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|