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

 
 
 
Reply to this topicStart new topic
> DMA унд ARM, Принцип работы несколько непонятен
impatt
сообщение Oct 5 2007, 08:56
Сообщение #1


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

Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088



Итак, ARM9, конкретно Самсунг S3c2440.
Есть две микрухи памяти, по 16 магабайт каждая.
Каждая содержит в себе 4 банка (х.з., что такое), имеет 16 разрядную шину данных.
Планируется подключение их каждую на свою половину шины данных, стало быть, вдвоём они будут на шине 32 бита.
Гимор с сигналами выбора банка (полагаю, что их можно прицепить на пару сраших адресных линий), и самый большой гимор с сигналами *DQM (UDQM, LDQM - их там пара).
Вот что делать с ними - неизвестно.
На схеме отладочной платы для at91rm9200, которую глянул ради интереса, они подключены к чему-то непонятному: одна к младшей адресной линии, другая к сигналу разрешения записи, что-ли, не вдавался.

Подскажите, плз, как понимать эти ножки ? По скудным описаниям SDRAM в инете - увязать всё по нормальному не могу.

Спасибо.
Go to the top of the page
 
+Quote Post
PrSt
сообщение Oct 5 2007, 10:53
Сообщение #2


http://uschema.com
****

Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394



а что сказано в даташите на этот Самсунг S3c2440, про эти сигналы?
там ведь должен быть раздел по работе с памятью...


.


--------------------
Go to the top of the page
 
+Quote Post
PSP
сообщение Oct 5 2007, 19:11
Сообщение #3


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

Группа: Свой
Сообщений: 118
Регистрация: 1-10-07
Пользователь №: 30 988



Банк в SDRAM это совсем не то, что в SRAM. Если кратко, то контроллер памяти должен перед чтением/записью "открыть" (active) банк памяти и после этого возможна более быстрая работа с данной группой адресов в этом банке. Что-бы начать работу с другими адресами в этом банке, нужно его "закрыть" (precharge) и открыть снова, с новым адресом. Четыре банка делят память на 4 равные части и позволяют держать одновременно "открытыми" четыре разных адреса. Обычно от программиста это все скрыто за контроллером памяти, а вот что-бы процессор правильно открывал-закрывал банки их нельзя подключать к произвольным адресным выводам. В datasheet обычно указано куда подключаться для разного объема и конфигурации SDRAM.
С сигналами UDQM, LDQM все гораздо проще. Это выбор старшего/младшего байта и подключаются они к DQM[3:0] - SDRAM Data Mask, как раз для 32 бит.
Go to the top of the page
 
+Quote Post
impatt
сообщение Oct 8 2007, 02:12
Сообщение #4


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

Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088



Цитата(PrSt @ Oct 5 2007, 16:53) *
а что сказано в даташите на этот Самсунг S3c2440, про эти сигналы?
там ведь должен быть раздел по работе с памятью...

М-м.. Особо ничего не сказано. Особенно про эти сигналы. Про банки сказано, в смысле, к каким линиям подключать.

Цитата(PSP @ Oct 6 2007, 01:11) *
Банк в SDRAM это совсем не то, что в SRAM. Если кратко, то контроллер памяти должен перед чтением/записью "открыть" (active) банк памяти и после этого возможна более быстрая работа с данной группой адресов в этом банке. Что-бы начать работу с другими адресами в этом банке, нужно его "закрыть" (precharge) и открыть снова, с новым адресом. Четыре банка делят память на 4 равные части и позволяют держать одновременно "открытыми" четыре разных адреса.

Хм.. Точно. Хорошая идея, запомню :)

Цитата(PSP @ Oct 6 2007, 01:11) *
банки их нельзя подключать к произвольным адресным выводам. В datasheet обычно указано куда подключаться для разного объема и конфигурации SDRAM.

Так и есть, написано.

Цитата(PSP @ Oct 6 2007, 01:11) *
С сигналами UDQM, LDQM все гораздо проще. Это выбор старшего/младшего байта и подключаются они к DQM[3:0] - SDRAM Data Mask, как раз для 32 бит.

Это в принципе, и впрямь проще, но вся вата в том, что нет таких ножек у контроллера ! Я обыскался в даташите. В паре примеров подключения памяти они есть, но ножек таких нет.

Плз, давай я пришлю даташит, глянь там ? А то я прям не знаю, что делать уже.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 8 2007, 02:44
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(impatt @ Oct 8 2007, 06:12) *
Это в принципе, и впрямь проще, но вся вата в том, что нет таких ножек у контроллера ! Я обыскался в даташите. В паре примеров подключения памяти они есть, но ножек таких нет.

Зато есть выходы nBE0-nBE3, которые и соответствуют DQM0-DQM3.
Go to the top of the page
 
+Quote Post
impatt
сообщение Oct 8 2007, 03:01
Сообщение #6


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

Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088



Цитата(aaarrr @ Oct 8 2007, 08:44) *
Зато есть выходы nBE0-nBE3, которые и соответствуют DQM0-DQM3.

В общем, я тоже склоняюсь к этому-же выводу. Нашёл какой-то application notes, там тоже так-же подключено...
Спасибо всем ответившим.
Go to the top of the page
 
+Quote Post
impatt
сообщение Sep 19 2008, 09:10
Сообщение #7


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

Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088



Привет всем.
Опять у меня дошли руки до АРМ-процов.
Читаю доку на Samsung S3C2440.
Интересует пересылка данных посредством DMA с подключенного внешнего устройства.
Судя по прочтённому получается, что общение блоками состоит из:
1. Инициализация (подробности опущу).
2. 4 операции чтения + 4 операции записи (можно меньше, наверное).
3. Проверка готовности DMA
4. Если готов - продолжаем на шаг #2
5. Завершение (опускаю подробности).

Требуется понять: нафига обязательные 4 чтения перед записью, если я хочу только писать ? Или наоборот ?
Может, я как-то не так понял ?
Как на других контроллерах сделано ?


Цитата(impatt @ Sep 19 2008, 14:48) *
Требуется понять: нафига обязательные 4 чтения перед записью, если я хочу только писать ? Или наоборот ?
Может, я как-то не так понял ?
Как на других контроллерах сделано ?

Э-э.. Кажется, я начинаю догонять. Сначала читается из того места, откуда берутся данные, потом пишется в целевое место, кусками по 4 слова.
Так, что-ли ?..
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Sep 19 2008, 10:23
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(impatt @ Sep 19 2008, 12:10) *
Э-э.. Кажется, я начинаю догонять. Сначала читается из того места, откуда берутся данные, потом пишется в целевое место, кусками по 4 слова.
Так, что-ли ?..

Хм, мне казалось, что принципы DMA не изменились - чтение и запись происходят одновременно.
Direct memory access, yes? Может, с википедии начать?
http://en.wikipedia.org/wiki/Direct_memory_access


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
impatt
сообщение Sep 20 2008, 03:42
Сообщение #9


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

Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088



Цитата(Dog Pawlowa @ Sep 19 2008, 16:23) *
чтение и запись происходят одновременно.

Ну, я ж не спрашиваю, что такое DMA ? wink.gif
Так что, сэр, предлагаю поразмыслить над тем, как имея одну шину адреса и одну шину данных, к которым подключен источник и получатаель, можно читать и писать _одновременно_. Типа, шина адреса будет сразу два адреса удерживать (источника и получателя), так что-ли ? wink.gif
Собсна, ввиду того, что такое невозможно, становится ясно, почему в ARM-ах а-ля PXA270 и S3C2440 сделано сходно и именно таким образом.
Вопрос снят.
ЗЫ: а за ссылочку спасибо - что-то я позабыл про cache coherency problem, вовремя вспомнил благодаря ссылочке smile.gif
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Sep 22 2008, 06:25
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(impatt @ Sep 20 2008, 06:42) *
Так что, сэр, предлагаю поразмыслить над тем, как имея одну шину адреса и одну шину данных, к которым подключен источник и получатаель, можно читать и писать _одновременно_. Типа, шина адреса будет сразу два адреса удерживать (источника и получателя), так что-ли ? wink.gif

И я ссылочку посмотрел smile.gif В википедии вруть: " is a feature of modern computers "
30 лет назад DMA успешно работал в системе с 8080 (контроллер 8057 или 8257 - забыл sad.gif ).
Это режим memory-to-memory появился сравнительно недавно, вот некоторые могли бы уточнить режим, а не взывать к телепатии. Тем более, что (опять по ссылке)
"A slave interface is similar to programmed I/O through which the software (running on embedded CPU, e.g. ARM) can write/read I/O registers or (less commonly) local memory blocks inside the device"


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Yra
сообщение Feb 21 2009, 15:18
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 396
Регистрация: 22-10-04
Из: Воронеж
Пользователь №: 962



Цитата
Итак, ARM9, конкретно Самсунг S3c2440.
Есть две микрухи памяти, по 16 магабайт каждая.
Каждая содержит в себе 4 банка (х.з., что такое), имеет 16 разрядную шину данных.
Планируется подключение их каждую на свою половину шины данных, стало быть, вдвоём они будут на шине 32 бита.
Гимор с сигналами выбора банка (полагаю, что их можно прицепить на пару сраших адресных линий), и самый большой гимор с сигналами *DQM (UDQM, LDQM - их там пара).
Вот что делать с ними - неизвестно.
На схеме отладочной платы для at91rm9200, которую глянул ради интереса, они подключены к чему-то непонятному: одна к младшей адресной линии, другая к сигналу разрешения записи, что-ли, не вдавался.

Подскажите, плз, как понимать эти ножки ? По скудным описаниям SDRAM в инете - увязать всё по нормальному не могу.

Спасибо.



Тупо качаете схему девелопмент кита , к примеру отсюда и разбираетесь что для чего и зачем (или просто срисовываете и всё).

Вот интересное


--------------------
всё можно наладить, если достаточно долго вертеть в руках /Законы Мерфи/
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 19:55
Рейтинг@Mail.ru


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