ide разъем

28 views
Skip to first unread message

matsi

unread,
Mar 14, 2009, 9:12:00 AM3/14/09
to ARM9&FPGA evolution board
Есть вопрос Павлу.
Хотелось бы узнать максимум подробностей про подключение ide
интерфейса на плате.

Pavel Kosenkov

unread,
Mar 15, 2009, 4:19:03 PM3/15/09
to arm9fpga-evo...@googlegroups.com
для этого нужно нарисовать схему. мне понадобиться некоторое время для этого.

14 марта 2009 г. 16:12 пользователь matsi <geom...@gmail.com> написал:

Есть вопрос Павлу.
Хотелось бы узнать максимум подробностей про подключение ide
интерфейса на плате.





--
--
C уважением (Best regards),
Косенков Павел (Kosenkov Pavel)
aka microtrigger & burokrat
==========================
no time to loose, no time to choose

microtrigger

unread,
Mar 23, 2009, 4:50:10 AM3/23/09
to ARM9&FPGA evolution board
пока схема готовиться я сделал такую табличку соотвествий
http://spreadsheets.google.com/pub?key=pEBTDOHBXcNrXNMbOGbjxYA
допускаю, что могут быть ошибки. буду их исправлять оперативно, те на
месте)

On 15 мар, 23:19, Pavel Kosenkov <microtrig...@gmail.com> wrote:
> для этого нужно нарисовать схему. мне понадобиться некоторое время для
> этого.
>

> 14 марта 2009 г. 16:12 пользователь matsi <geoma...@gmail.com> написал:

Pavel Kosenkov

unread,
Mar 23, 2009, 6:18:58 AM3/23/09
to ARM9&FPGA evolution board
немного поясню:
сигналы идут на разъем через 16 битные 2 направленные буферы преобразователи (D5 и D8). на таблице тот же порядок CPU- SN74LVC16T245-IDE. Чуть ниже добавил распиновку самого преобразователя.
Если что, спрашивайте.

23 марта 2009 г. 11:50 пользователь microtrigger <microt...@gmail.com> написал:

geomatsi

unread,
Mar 23, 2009, 2:08:26 PM3/23/09
to arm9fpga-evo...@googlegroups.com
Спасибо, Павел.
Буду разбираться.

matsi

unread,
Apr 6, 2009, 3:54:27 PM4/6/09
to ARM9&FPGA evolution board
Павел,
несколько вопросов.

1. Какое назначение у джампера, который установлен около IDE разъема ?
2. На какую из IDE лап подвешен красный светодиод ?
3. Можно чуть подробнее про управляющие выходы PC8, PC10.
4. Соответсвует ли твоя схематика для IDE разъема режиму CompactFlash
True IDE из доки на SoC (стр. 162)?

Сергей.

On 23 мар, 14:18, Pavel Kosenkov <microtrig...@gmail.com> wrote:
> немного поясню:сигналы идут на разъем через 16 битные 2 направленные буферы
> преобразователи (D5 и D8). на таблице тот же порядок CPU- SN74LVC16T245-IDE.
> Чуть ниже добавил распиновку самого преобразователя.
> Если что, спрашивайте.
>
> 23 марта 2009 г. 11:50 пользователь microtrigger

> <microtrig...@gmail.com>написал:

Pavel Kosenkov

unread,
Apr 6, 2009, 6:05:21 PM4/6/09
to arm9fpga-evo...@googlegroups.com
1.Джампер перключеат выходное напряжение у шинных драйверов, фактически напряжение на шине IDE: от разъема - 3,3В, к разъему - 5В.
2. Светодиод висит на 39 ноге разъема
3.
PC8 фактически включает обе микросхемы преобразователя(смотрим даташит http://focus.ti.com/docs/prod/folders/print/sn74lvc16t245.html, нога !OE)
PC10 управляет направлением передачи (нога DIR по даташиту) у одного преобразователя (D8), через который идут 16 бит линий данных. 
4. О какой доке идет разговор?

C уважением (Best regards),
Косенков Павел (Kosenkov Pavel)
aka microtrigger & burokrat
==========================
no time to loose, no time to choose


6 апреля 2009 г. 23:54 пользователь matsi <geom...@gmail.com> написал:

matsi

unread,
Apr 7, 2009, 2:40:16 AM4/7/09
to ARM9&FPGA evolution board
По поводу 4го вопроса - я имею в виду даташит на AT91SAM9260. Там в
разделе про EBI на 162 странице для примера приведена схематика
подключения CompactFlash карты в режиме True IDE.

Это мне чтоб понять, какие из функциональных возможностей могут быть
задействованы, а какие нет. К примеру - DMA вроде не задействована,
поскольку DMACK не прицеплен, но зачем тогда прицеплен DMARQ.

On 7 апр, 02:05, Pavel Kosenkov <microtrig...@gmail.com> wrote:
> 1.Джампер перключеат выходное напряжение у шинных драйверов, фактически

> напряжение на шине IDE: от разъема - 3,3В, к разъему - 5В.2. Светодиод висит


> на 39 ноге разъема
> 3.

> PC8 фактически включает обе микросхемы преобразователя(смотрим даташитhttp://focus.ti.com/docs/prod/folders/print/sn74lvc16t245.html, нога !OE)


> PC10 управляет направлением передачи (нога DIR по даташиту) у одного
> преобразователя (D8), через который идут 16 бит линий данных.
> 4. О какой доке идет разговор?
>
> C уважением (Best regards),
> Косенков Павел (Kosenkov Pavel)
> aka microtrigger & burokrat
> ==========================
> no time to loose, no time to choose
>

> 6 апреля 2009 г. 23:54 пользователь matsi <geoma...@gmail.com> написал:

microtrigger

unread,
Apr 8, 2009, 7:12:59 AM4/8/09
to ARM9&FPGA evolution board
Когда я разбирался с подключением IDE, то реализовал именно по
рекомендациям для CF из даташита на 9260 и по рекомендациям от
родственного 9200
http://www.atmel.com/dyn/resources/prod_documents/doc6023.pdf, вначале
с укомплектовал на преобразователях обычный True IDE, затем забил
оставшиеся линии сигналами, которые на мой взгляд (не особо
осведомленный в принципах работы IDE шины) могут пригодиться (сюда же
попал DMARQ). Соответственно режим True IDE, по моим соображениям
должен работать, а вот по DMA я буду благодарен за рекомендации, какие
сигналы и с какой направленностью нужно реализовать - я сделаю
исправления на текущей плате, и учту в следующей ревизии.

matsi

unread,
Apr 14, 2009, 7:52:49 AM4/14/09
to ARM9&FPGA evolution board
Павел,
Есть вопрос насчет частоты MCK на плате.
Серега Лапин говорил, что на штатной частоте завести плату не удалось
и пришлось ее несколько снизить.
Я, к сожалению, подзабыл детали. Можно ли напомнить чуть подробнее: о
какой частоте идет речь, до какого значения пришлось
снизить и имеет ли это все отношение к частоте MCK. Это мне, чтоб
правильные тайминги выставить на ide.

С уважением,
Сергей.


On 8 апр, 15:12, microtrigger <microtrig...@gmail.com> wrote:
> Когда я разбирался с подключением IDE, то реализовал именно по
> рекомендациям для CF из даташита на 9260 и по рекомендациям от

> родственного 9200http://www.atmel.com/dyn/resources/prod_documents/doc6023.pdf, вначале

Pavel Kosenkov

unread,
Apr 14, 2009, 10:04:18 AM4/14/09
to arm9fpga-evo...@googlegroups.com
Нужно у Сергея уточнить. Я уже не помню какие частоты он выставлял на твоем экземпляре.
Он приедет завтра - вот и спросим

C уважением (Best regards),
Косенков Павел (Kosenkov Pavel)
aka microtrigger & burokrat
==========================
no time to loose, no time to choose


14 апреля 2009 г. 15:52 пользователь matsi <geom...@gmail.com> написал:

Sergey Lapin

unread,
Apr 16, 2009, 2:33:10 PM4/16/09
to arm9fpga-evo...@googlegroups.com
On 4/14/09, Pavel Kosenkov <microt...@gmail.com> wrote:
> Нужно у Сергея уточнить. Я уже не помню какие частоты он выставлял на твоем
> экземпляре.
> Он приедет завтра - вот и спросим

180 -> 166

Sergey Lapin

unread,
Apr 20, 2009, 10:36:05 AM4/20/09
to arm9fpga-evo...@googlegroups.com
2009/4/16 Sergey Lapin <slap...@gmail.com>:

Ковырятелям IDE:
http://www.at91.com/samphpbb/viewtopic.php?f=9&t=4528&hilit=memory+dma
Мож вдруг пригодится.

matsi

unread,
Apr 20, 2009, 1:16:21 PM4/20/09
to ARM9&FPGA evolution board
Спасибо, Серега.

Я это уже нашел и использую во всю. От себя добавлю еще пару
полезняшек:
http://thread.gmane.org/gmane.linux.ide/37344
http://lkml.org/lkml/2008/10/10/109

On 20 апр, 18:36, Sergey Lapin <slapi...@gmail.com> wrote:
> 2009/4/16 Sergey Lapin <slapi...@gmail.com>:

matsi

unread,
Apr 20, 2009, 3:17:12 PM4/20/09
to ARM9&FPGA evolution board
Павел, у меня вопрос по поводу включения преобразователей.

1. Согласно схемам в документации Atmel'a на SoC AT91SAM9260 (стр. 152
и 162), второй преобразователь (D5 - контрольные сигналы) включается
не по чип-селекту, а по сигналу "card detected". То есть в случае HDD
его по идее надо держать включенным постоянно.
У тебя сейчас он включается по тому же сигналу (chip select - PC8),
что и первый преобразователь (D8 - данные), как и в доке по
AT91SAMRM9200.
Из-за этого, в частности, напрямую не работает reset - надо, выставив
необходимый для reset уровень, что-нибудь прочитать из ide
контроллера.
Может ли такое включение второго преобразователя быть причиной сбоев
при чтении/записи ?

Сергей.


On 14 апр, 18:04, Pavel Kosenkov <microtrig...@gmail.com> wrote:
> Нужно у Сергея уточнить. Я уже не помню какие частоты он выставлял на твоем

> экземпляре.Он приедет завтра - вот и спросим


>
> C уважением (Best regards),
> Косенков Павел (Kosenkov Pavel)
> aka microtrigger & burokrat
> ==========================
> no time to loose, no time to choose
>

> 14 апреля 2009 г. 15:52 пользователь matsi <geoma...@gmail.com> написал:

matsi

unread,
Apr 22, 2009, 3:19:49 PM4/22/09
to ARM9&FPGA evolution board
Павел, у меня очередная порция вопросов.
У нас есть PIO выходы, которые управляют преобразователями (PC8, PC10)
и есть PIO выходы, которые выведены на IDE разъем через
преобразователь D5 (PC6, PC7, PC15).
У каждого из этих PIO выходов можно сконфигурировать изнутри SoC'а два
параметра: "pull-up resistor on/off" и "open-drain on/off".
Можешь ли подсказать исходя из схематики, какие значения этих
параметров следует выставить для указанных PIO выходов ?
Доп. инфо про активные уровни для этих выходов, согласно стардарту
АТА:
signal Active logic level
PC6 (IDE_CS0) Low
PC7 (IDE_CS1) Low
PC15 (IDE_IORDY) High

И еще просьба. Проверь, пожалуйста, правильно ли задается направление
для преобразователя D8 с помощью PC10 ( в смысле, не инвертируется ли
оно).

Pavel Kosenkov

unread,
Apr 24, 2009, 11:05:03 AM4/24/09
to arm9fpga-evo...@googlegroups.com
Какой характер сбоев? Я могу включить его на постоянный режим, перерезав дорогу от PC8 к D5 и кинув ее на землю (если мне память не изменяет, то низкий уровень как раз включает преобразователь). D8  в таком случае будет управляться внешним сигналом то PC8, а  D5 будет постоянно включен в работу

C уважением (Best regards),
Косенков Павел (Kosenkov Pavel)
aka microtrigger & burokrat
==========================
no time to loose, no time to choose


20 апреля 2009 г. 23:17 пользователь matsi <geom...@gmail.com> написал:

Pavel Kosenkov

unread,
Apr 24, 2009, 11:23:00 AM4/24/09
to arm9fpga-evo...@googlegroups.com
Суть с подтяжками в том, что они стоят уже после преобразователей - те как подтягивать порты на уровне самого процесса можно особо не заботиться. На твое усмотрение, только опендрейн не нужно делать, тк внешнего пулапа у процессора нету.
Касательно направления 

(EACH 8-BIT SECTION)
CONTROL INPUTS OUTPUT CIRCUITS OPERATION
OE DIR                 A PORT B PORT
L L                 Enabled Hi-Z B data to A bus
L H                 Hi-Z         Enabled A data to B bus
H X                 Hi-Z         Hi-Z Isolation

Порт B - со стороны IDE, порт A со стороны процессора. Для примера, если на PC10 выставить низкий уровень, то направление будет от  B к A, те от IDE к процессору.

C уважением (Best regards),
Косенков Павел (Kosenkov Pavel)
aka microtrigger & burokrat
==========================
no time to loose, no time to choose


22 апреля 2009 г. 23:19 пользователь matsi <geom...@gmail.com> написал:

matsi

unread,
Apr 24, 2009, 3:44:40 PM4/24/09
to ARM9&FPGA evolution board
Привет, Павел.


1. Насчет пуллапов. Уточню, что имею в виду.

Я не управляю вручную уровнями всех упоминаемых PIO-выходов. Ими
управляет compact flash controller в режиме true ide.
Если я ничего не упустил, то все, что тут требуется - это
инициализировать контроллер: отдать ему в распоряжение соответствующие
PIO-выходы, задать тайминги и некоторые параметры. В числе этих
параметров - как раз пуллапы и опендрейны для тех самых PIO-выходов,
которыми и будет управлять
котроллер.

Поправь меня если я ошибаюсь: с помощью внутренних пуллапов можно
менять активный уровень PIO-выхода. Ну то есть фактически, выставляя
пуллап, мы инвертируем его wave-forms, так ? Тогда пуллапы на PIO-
выходах в процессоре надо будет выставить так:
* для PC8, PC10 - чтоб приходили правильные уровни DIR и OE для
преобразователя D8
* для PC6, PC7 - в соответствии со спекой ATA, поскольку
преобразователь только передаст эти wave-forms дальше на разъем, не
меняя их формы.

Я не знаю как у тебя сделана цепь между PIO выходами (PC6, PC7, PC8,
PC10) и входами преобразователя D5. Поэтому не знаю, что придет
на
преобразователь (и далее - на разъем, в случае PC6, PC7), если
контроллер выставит, скажем, ноль на PIO выход.

Исходя из этой версии событий :) возникает мой вопрос: нужно ли
конфигурить внутренние пуллапы на каких-либо из упомянутых PIO
выходов, чтоб получить правильные уровни сигналов, а не
инвертированные.


2. Насчет опендрейнов.
Странно, что не надо. В результатов моих многочисленных экспериментов
получился следующий юзкейс:
* если отключить внутренние пуллапы и опендрейны для PC6, PC7,
PC8, PC10, PC15, то до диска не достучаться
* если включить опендрейн для PC10, то что-то оживает: читаются
регистры дискового контроллера, что-то меняется в них при попытке
записи (правда
записыватся пока не то, что пытаюсь записать)


3. Насчет "перерезать дорожку для D5 и кинуть на землю"
Это обратимое действие ? :)
Наверное попробуем, но сначала я все-же принесу плату на работу и еще
поэкспериментирую, но уже с осциллографом под рукой.

С Уважением.
Сергей

On 24 апр, 19:23, Pavel Kosenkov <microtrig...@gmail.com> wrote:
> Суть с подтяжками в том, что они стоят уже после преобразователей - те как
> подтягивать порты на уровне самого процесса можно особо не заботиться. На
> твое усмотрение, только опендрейн не нужно делать, тк внешнего пулапа у
> процессора нету.
> Касательно направления
>
> (EACH 8-BIT SECTION)
> CONTROL INPUTS OUTPUT CIRCUITS OPERATION
> OE DIR A PORT B PORT
> L L Enabled Hi-Z B data to A bus
> L H Hi-Z Enabled A data to B bus
> H X Hi-Z Hi-Z Isolation
>
> Порт B - со стороны IDE, порт A со стороны процессора. Для примера, если
> на PC10 выставить низкий уровень, то направление будет от B к A, те от IDE
> к процессору.
>
> C уважением (Best regards),
> Косенков Павел (Kosenkov Pavel)
> aka microtrigger & burokrat
> ==========================
> no time to loose, no time to choose
>

> 22 апреля 2009 г. 23:19 пользователь matsi <geoma...@gmail.com> написал:

> ...
>
> продолжение >>

Sergey Lapin

unread,
Apr 24, 2009, 5:36:23 PM4/24/09
to arm9fpga-evo...@googlegroups.com
2009/4/24 matsi <geom...@gmail.com>:

> Привет, Павел.
>
>
> 1. Насчет пуллапов. Уточню, что имею в виду.
>
> Я не управляю вручную уровнями всех упоминаемых PIO-выходов. Ими
> управляет compact flash controller в режиме true ide.
> Если я ничего не упустил, то все, что тут требуется - это
> инициализировать контроллер: отдать ему в распоряжение соответствующие
> PIO-выходы, задать тайминги и некоторые параметры. В числе этих
> параметров - как раз пуллапы и опендрейны для тех самых PIO-выходов,
> которыми и будет управлять
> котроллер.
В данном абзаце имеется в виду драйвер.


>
> Поправь меня если я ошибаюсь: с помощью внутренних пуллапов можно
> менять активный уровень PIO-выхода. Ну то есть фактически, выставляя
> пуллап, мы инвертируем его wave-forms, так ? Тогда пуллапы на PIO-
> выходах в процессоре надо будет выставить так:
>   * для PC8, PC10  -  чтоб приходили правильные уровни DIR и OE для
> преобразователя D8
>   * для PC6, PC7    -  в соответствии со спекой ATA, поскольку
> преобразователь только передаст эти wave-forms дальше на разъем, не
> меняя их формы.
>
> Я не знаю как у тебя сделана цепь между PIO выходами (PC6, PC7, PC8,
> PC10) и входами преобразователя D5. Поэтому не знаю, что придет
> на
> преобразователь (и далее - на разъем, в случае PC6, PC7),  если
> контроллер выставит, скажем, ноль на PIO выход.
>
> Исходя из этой версии событий :) возникает мой вопрос: нужно ли
> конфигурить внутренние пуллапы на каких-либо из упомянутых PIO
> выходов, чтоб получить правильные уровни сигналов, а не
> инвертированные.

Мне кажется что инверсные сигналы в нашем случае вряд ли зависят от пуллапов
по крайней мере внутренних - точно.

>
>
> 2. Насчет опендрейнов.
> Странно, что не надо. В результатов моих многочисленных экспериментов
> получился следующий юзкейс:
>       * если отключить внутренние пуллапы и опендрейны для PC6, PC7,
> PC8, PC10, PC15, то до диска не достучаться
>       * если включить опендрейн для PC10, то что-то оживает: читаются
> регистры дискового контроллера, что-то меняется в них при попытке
> записи (правда
>         записыватся пока не то, что пытаюсь записать)

Надо смотреть осциллографом что там на сигналах в этом случае.

>
>
> 3. Насчет "перерезать дорожку для D5 и кинуть на землю"
> Это обратимое действие ? :)
> Наверное попробуем, но сначала я все-же принесу плату на работу и еще
> поэкспериментирую, но уже с осциллографом под рукой.

Угу. Ждем результатов с нетерпением. :)

S.

Pavel Kosenkov

unread,
Apr 27, 2009, 11:09:34 AM4/27/09
to arm9fpga-evo...@googlegroups.com
Немного справки:
push-pull - двуплечевое включение вывода, те выходной сигнал формируется 2мя транзисторами - один привязан к питанию, другой к земле. (http://ru.wikipedia.org/wiki/Двухтактный_выход) При этом подтяжки желательно отключить вовсе - тк они приводят к утечкам тока. Режим наиболее применим для ног, работающих в режиме output.
open-drain - В этом случае управление идет через транзисторный ключ, верхний вывод которого привязан к внешнему пину, а нижний к земле (http://en.wikipedia.org/wiki/Open_collector). Обязательный пулап на линии, при этом возможно ставить отличное напряжение от питающего на контроллере. Режим наиболее применим для ног, работающих в режиме input/output. Типовое применение I2С. 

далее, если у тебя ногу нужно сконфигурировать как выход - то лучше ставить push-pull (open-drain off). Если в таком случае сигнал не проходит, то включить open-drain и выставить pullup. Если и в этом случае сигнал не идет, то нужна внешняя подтяжка к питанию меньшим сопротивлением, чем внутренний резюк.

если у тебя ногу нужно сконфигурировать как вход/выход - то лучше ставить open-drain on и смотреть,какие активные сигналы на линии и изходя из них ставить подтяжки. Если у нас активный сигнал 0, то имеет смысл ставить pullup, дабы не ловить помехи, и соответственно, наоборот.

Исходя из вышеперечисленного можно сделать рекомендацию
PC6 (IDE_CS0), PC7 (IDE_CS1) - open-drain on + pullup или open-drain off 
PC8 (!OE D5,D8 - включение преобразователей)
PC10 (T/R1 D8 - направление шины данных, 16 бит, преобразователь D8) open-drain on + pulldown|pullup, или open-drain off
PC15 (IDE_IORDY) - open-drain on + pulldown или open-drain off

Еще, рекомендую проверить в каком режиме более стабильно себя ведет шина IDE, при 5 вольтовом логическом уровне, либо при 3,3В. напоминаю: от разъема - 3,3В, к разъему - 5В.


C уважением (Best regards),
Косенков Павел (Kosenkov Pavel)
aka microtrigger & burokrat
==========================
no time to loose, no time to choose


25 апреля 2009 г. 1:36 пользователь Sergey Lapin <slap...@gmail.com> написал:

2009/4/24 matsi <geom...@gmail.com>:
> Привет, Павел.
>
>
> 1. Насчет пуллапов. Уточню, что имею в виду.
>
> Я не управляю вручную уровнями всех упоминаемых PIO-выходов. Ими
> управляет compact flash controller в режиме true ide.
> Если я ничего не упустил, то все, что тут требуется - это
> инициализировать контроллер: отдать ему в распоряжение соответствующие
> PIO-выходы, задать тайминги и некоторые параметры. В числе этих
> параметров - как раз пуллапы и опендрейны для тех самых PIO-выходов,
> которыми и будет управлять
> котроллер.
В данном абзаце имеется в виду драйвер.
Это хорошо, что поправил, а то я стал думать, что атмел сильно навернул в этом чипе) 


>
> Поправь меня если я ошибаюсь: с помощью внутренних пуллапов можно
> менять активный уровень PIO-выхода. Ну то есть фактически, выставляя
> пуллап, мы инвертируем его wave-forms, так ? Тогда пуллапы на PIO-
> выходах в процессоре надо будет выставить так:
>   * для PC8, PC10  -  чтоб приходили правильные уровни DIR и OE для
> преобразователя D8
>   * для PC6, PC7    -  в соответствии со спекой ATA, поскольку
> преобразователь только передаст эти wave-forms дальше на разъем, не
> меняя их формы.
>
> Я не знаю как у тебя сделана цепь между PIO выходами (PC6, PC7, PC8,
> PC10) и входами преобразователя D5. Поэтому не знаю, что придет
> на
> преобразователь (и далее - на разъем, в случае PC6, PC7),  если
> контроллер выставит, скажем, ноль на PIO выход.
>
> Исходя из этой версии событий :) возникает мой вопрос: нужно ли
> конфигурить внутренние пуллапы на каких-либо из упомянутых PIO
> выходов, чтоб получить правильные уровни сигналов, а не
> инвертированные.
Мне кажется что инверсные сигналы в нашем случае вряд ли зависят от пуллапов
по крайней мере внутренних - точно.
Инверсию не сделать, только активные сигналы. 

>
>
> 2. Насчет опендрейнов.
> Странно, что не надо. В результатов моих многочисленных экспериментов
> получился следующий юзкейс:
>       * если отключить внутренние пуллапы и опендрейны для PC6, PC7,
> PC8, PC10, PC15, то до диска не достучаться
>       * если включить опендрейн для PC10, то что-то оживает: читаются
> регистры дискового контроллера, что-то меняется в них при попытке
> записи (правда
>         записыватся пока не то, что пытаюсь записать)
Надо смотреть осциллографом что там на сигналах в этом случае.

>
>
> 3. Насчет "перерезать дорожку для D5 и кинуть на землю"
> Это обратимое действие ? :)
> Наверное попробуем, но сначала я все-же принесу плату на работу и еще
> поэкспериментирую, но уже с осциллографом под рукой.
Угу. Ждем результатов с нетерпением. :)
Все обратимое, у меня нету не обратимых действий... разве что горелкой чип проплавить =) 

S.



matsi

unread,
Jun 3, 2009, 2:54:50 PM6/3/09
to ARM9&FPGA evolution board
Про прерывания.

Протестировал плату с последним изменением ( !OE = 0 на
преобразователе D5). Коротко результаты:

1. PIO polling не поломали :)

2. Включаем прерывание и задействуем стандартный обработчик от libata
подсистемы:
драйвер работает - прерывание действительно дергается,
обрабатывается и общение с диском в норме.

Надо еще посмотреть пару вещей:

1. Проверить, уменьшилась ли хоть немного загрузка процессора (кстати,
должна или нет ?).

2. Проверить, нет ли ложных срабатываний обработчика на разные фронты
сигнала INTRQ.
Если есть, то перед вызовом стандартного обработчика от libata
проверять значение сигнала INTRQ - обрабатывать только "правильный"
фронт.

Не забыл ничего ?

Sergey Lapin

unread,
Jun 3, 2009, 3:54:47 PM6/3/09
to arm9fpga-evo...@googlegroups.com
2009/6/3 matsi <geom...@gmail.com>:

> Про прерывания.
>
> Протестировал плату с последним изменением ( !OE = 0 на
> преобразователе D5). Коротко результаты:
>
> 1.  PIO polling не поломали :)
Не может не радовать :)

>
> 2. Включаем прерывание и задействуем стандартный обработчик от libata
> подсистемы:
>    драйвер работает - прерывание действительно дергается,
> обрабатывается и общение с диском в норме.

Это просто отлично!

>
> Надо еще посмотреть пару вещей:
>
> 1. Проверить, уменьшилась ли хоть немного загрузка процессора (кстати,
> должна или нет ?).

Бизилупиться должно меньше (количество сидения в системе должно уменьшиться).


>
> 2. Проверить, нет ли ложных срабатываний обработчика на разные фронты
> сигнала INTRQ.
>    Если есть, то перед вызовом стандартного обработчика от libata
> проверять значение сигнала INTRQ - обрабатывать только "правильный"
> фронт.

Угу.

>
> Не забыл ничего ?
* Протестировать скорость - не уменьшилась ли.
* Проинвестигировать возможность завести DMA через serial в принципе.

geomatsi

unread,
Jun 4, 2009, 2:24:21 PM6/4/09
to arm9fpga-evo...@googlegroups.com
Очередные тесты PIO IRQ.

1. Насчет загрузки загрузки системы.
Что в PIO polling, что в PIO IRQ - без разницы. Картина следующая:

test@afeb9260:~$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 2 0 37660 916 15224 0 0 0 1 103 138 0 0 0 100
1 2 0 37660 916 15224 0 0 0 0 103 140 0 0 0 100
0 2 0 37660 916 15224 0 0 0 0 105 142 0 0 0 100
1 2 0 37660 916 15224 0 0 0 0 103 138 0 0 0 100

2. Сравнение скорости:

PIO POLLING:

# time dd if=/dev/zero of=/media/sda1/xxx bs=1M count=10; time sync
10+0 records in
10+0 records out

real 0m11.893s
user 0m0.010s
sys 0m1.000s

real 0m1.370s
user 0m0.010s
sys 0m0.030s

# time dd if=/dev/zero of=/media/sda1/xxx bs=1M count=50; time sync
50+0 records in
50+0 records out

real 0m58.225s
user 0m0.000s
sys 0m5.170s

real 0m3.908s
user 0m0.010s
sys 0m0.040s

PIO IRQ:

# time dd if=/dev/zero of=/media/sda1/xxx bs=1M count=10; time sync
10+0 records in
10+0 records out

real 0m6.574s
user 0m0.000s
sys 0m1.080s

real 0m0.702s
user 0m0.000s
sys 0m0.030s

# time dd if=/dev/zero of=/media/sda1/yyy bs=1M count=50; time sync
50+0 records in
50+0 records out

real 0m34.577s
user 0m0.000s
sys 0m5.610s

real 0m0.724s
user 0m0.000s
sys 0m0.060s

Итого:
скорость без прерываний 715 Kb/sec
скорость с прерываниями 1220 Kb/sec

Sergey Lapin

unread,
Jun 4, 2009, 3:13:51 PM6/4/09
to arm9fpga-evo...@googlegroups.com
2009/6/4 geomatsi <geom...@gmail.com>:
Тест немного синтетический. По косвенным признакам, нам останется
больше CPU с прерываниями.
Просто при нашем тесте мы все свободные ресурсы тратим не передачу.
При постоянной скорости загрузка будет меньше. Хотя, прирост
производительности это тоже очень приятно.

Pavel Kosenkov

unread,
Jun 4, 2009, 4:37:25 PM6/4/09
to arm9fpga-evo...@googlegroups.com
Хорошие результаты. Кстати, на новых винтах тестировали? 

C уважением (Best regards),
Косенков Павел (Kosenkov Pavel)
aka microtrigger & burokrat
==========================
no time to lose, no time to choose


4 июня 2009 г. 23:13 пользователь Sergey Lapin <slap...@gmail.com> написал:

Sergey Lapin

unread,
Jun 4, 2009, 4:50:22 PM6/4/09
to arm9fpga-evo...@googlegroups.com
2009/6/5 Pavel Kosenkov <microt...@gmail.com>:

> Хорошие результаты. Кстати, на новых винтах тестировали?
Запаяешь мне плату - потестируем.

Pavel Kosenkov

unread,
Jun 4, 2009, 6:29:58 PM6/4/09
to arm9fpga-evo...@googlegroups.com
будет, если не забудешь ее принести на встречу)
Кстати, в чем именно засада со старыми винчестерами?

C уважением (Best regards),
Косенков Павел (Kosenkov Pavel)
aka microtrigger & burokrat
==========================
no time to lose, no time to choose


5 июня 2009 г. 0:50 пользователь Sergey Lapin <slap...@gmail.com> написал:

Sergey Lapin

unread,
Jun 4, 2009, 6:42:20 PM6/4/09
to arm9fpga-evo...@googlegroups.com
2009/6/5 Pavel Kosenkov <microt...@gmail.com>:

> будет, если не забудешь ее принести на встречу)
> Кстати, в чем именно засада со старыми винчестерами?
Тормозят...
Reply all
Reply to author
Forward
0 new messages