Cadavre 0 24 марта, 2011 Опубликовано 24 марта, 2011 · Жалоба Здравствуйте! Программирую готовое устройство на AT91RM9200. Нужно вручную управлять пинами шины данных контроллера (D0-D15/D16-D31) для связи с LCD. Выводами 16-31 удаётся управлять через PIO (порт С), а вот как быть с 0-15? Данные выводы не подключены к PIO-контроллеру, но в даташите в разделе Static Memory Controller (куда входят 0-15) написано, что всётаки можно ими управлять по-своему. Как? Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 24 марта, 2011 Опубликовано 24 марта, 2011 · Жалоба Данные выводы не подключены к PIO-контроллеру, но в даташите в разделе Static Memory Controller (куда входят 0-15) написано, что всётаки можно ими управлять по-своему. Где такое написано, цитату приведите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Cadavre 0 24 марта, 2011 Опубликовано 24 марта, 2011 · Жалоба 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. Так понимаю, что всётаки можно вручную ими управлять? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 24 марта, 2011 Опубликовано 24 марта, 2011 · Жалоба Так понимаю, что всётаки можно вручную ими управлять? Там же не сказано, что всеми. Младшими данными нельзя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexf 0 25 марта, 2011 Опубликовано 25 марта, 2011 · Жалоба Поставьте защелку на данные, подключите соответствующий chip select и будет счастье. Надеюсь для LCD достаточно только на выход. Если еще и вход надо, то в параллель 74HC245 или типа того. Т.е. как с обычным процессором. Или мультиплексировать D16-D31. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Cadavre 0 25 марта, 2011 Опубликовано 25 марта, 2011 · Жалоба Получилось вручную управлять ногами через макрос: #define write_data(x) *((volatile unsigned short*)0x40000000) = (unsigned short)(x) Кусочек кода этот я нашёл в одном примере. Тогда напрашивается у меня ещё вопрос: почему именно по адресу 0x40000000? Вроде как это начало области EBI (Chip Select3 / NANDFlash Logic), если я правильно понимаю. Как тогда определить адрес, например, для NCS2, также входящего в EBI? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryM 0 26 марта, 2011 Опубликовано 26 марта, 2011 · Жалоба Получилось вручную управлять ногами через макрос: #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 будет два обращения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Cadavre 0 28 марта, 2011 Опубликовано 28 марта, 2011 · Жалоба Не могли бы вы для новичка пояснить почему всётаки 0х30000000 для NCS2? :rolleyes: и где найти информаию для остальных (NRD, NWR0, A1 и т.д.)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 28 марта, 2011 Опубликовано 28 марта, 2011 · Жалоба doc1768.pdf раздел 8.Memories На странице 17. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Cadavre 0 30 марта, 2011 Опубликовано 30 марта, 2011 · Жалоба Как я понял, при записи/чтении числа на шину данных через 0x30000000, состояние ног NCS2, NRD и NWR0 изменяется автоматически или ими можно управлять также, записывая число по адресу в память? Вот, например, для управления LCD нужно вручную управлять выводом A1 (low - индекс. регистр, high - данные GRAM ЖК экрана), который идёт на LCD. Разбираюсь уже долго и никак не могу понять, как всё это укротить, чтобы формировать желаемые импульсы через D0-15, NCS2, NRD, NWR0 и A1? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dron_Gus 2 30 марта, 2011 Опубликовано 30 марта, 2011 · Жалоба Пишете по (базовый адрес + 0), шина адреса выставляет соответсвенно адрес 0х0, на шину данных выставляются данные, делается строб WR. Если Вы ходтите выставить A1 в 1 пишите в (базовый адрес + 0х2) и т.д. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryM 0 30 марта, 2011 Опубликовано 30 марта, 2011 · Жалоба Как я понял, при записи/чтении числа на шину данных через 0x30000000, состояние ног NCS2, NRD и NWR0 изменяется автоматически или ими можно управлять также, записывая число по адресу в память? Вот, например, для управления LCD нужно вручную управлять выводом A1 (low - индекс. регистр, high - данные GRAM ЖК экрана), который идёт на LCD. Разбираюсь уже долго и никак не могу понять, как всё это укротить, чтобы формировать желаемые импульсы через D0-15, NCS2, NRD, NWR0 и A1? Что Вы собираетесь укорачивать??? Если у Вас LCD имеет интерфейс обычной статической памяти, то и пишите просто по заданным адресам, как уже сказали, BASE и BASE+1(2), зависит от обращения. Тайминги выставляются автоматом в соответствии с настройкой SMC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 30 марта, 2011 Опубликовано 30 марта, 2011 · Жалоба Cadavre: выложите схему подключения вашего экрана и его название. Тогда можно будет давать предметные советы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Cadavre 0 1 апреля, 2011 Опубликовано 1 апреля, 2011 · Жалоба OLED на контроллере S6E63D6X, параллельный интерфейс 8080 16-бит. У меня получилось таки запустить экран и выводить изображение! Спасибо вам большое, без вас бы у меня ничего не вышло :yeah: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться