|
ATA контроллер & ПЛИС |
|
|
|
Jun 22 2009, 14:29
|
Группа: Участник
Сообщений: 3
Регистрация: 11-06-09
Пользователь №: 50 191

|
Посоветуйте, пожалуйста, как лучше реализовать ATA контроллер, работающий на одной плате с ПЛИС (Virtex-5). Отдельная микросхема или IP Core?
|
|
|
|
|
 |
Ответов
|
Oct 19 2009, 09:56
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
И снова здравствуте. Опять натолкнулся на некоторые трудности. Очень специфический момемент, литературу перерыл, по инету полазил - что-то не нашёл ответа. Собственно проблема такого плана - есть модуль с машинкой - чтение/запись (объём - 1 сектор). Читать могу сколько угодно - всё завершается без ошибок. А вот с записью есть некая заковыка - использовал для проверки такую последовательность действий - читаю в блоковую память плиски сектор (512Б), модифицирую, записываю обратно в тот же сектор, читаю - сравниваю. Значит всё шло хорошо до момента 2-го чтения - когда нужно вычитать из сектора то, что модифицировал на предыдущих этапах. Возвращается DRDY == 1 - то есть девайс готов и BSY==0,DRQ==0 - то есть в девайсе произошла ошибка, такое происходит всегда после обрабатывания запроса записи (чтений штук 10 вставлял даже, а между ними запись, или записи 5 штук - именно после первой же записи на следующей любой транзакции получаю BSY==0,DRQ==0). И что самое интересное - если провести софтварный сброс - и начать заново вышеописанную последовательность действий - всё повторятся по кругу (всмысле ошибка на следующей транзакции после запииси сектора). Чтение же после софтварного ресета показывает немодифицированный блок - что тоже странно , потому как первая процедура записи возвращает статусовый регистр с нормальным завершением. Код машинки приложил
ide_rw_1sector00.txt ( 9.6 килобайт )
Кол-во скачиваний: 222Писал её по атапи-7 и сравнивал с найденными в инете исходниками для МК - вроде одно и тоже, но отчего то не работает . Пио0-тайминги делает другой процесс - для него управляющий сигнал - strobe_in/out, сигнал в главную машину что операция закончена - pio_cyc_ok
pio_timing_module.txt ( 2 килобайт )
Кол-во скачиваний: 176...
|
|
|
|
|
Oct 20 2009, 07:28
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
Цитата(DmitryR @ Oct 20 2009, 09:29)  описанию я не вижу, чтобы (BSY==0 & DRQ==0) сигнализировало об ошибке. Кейс 13 главной машины Код else if ((BSY == 0) & (DRQ == 0)) ide_case <= 5'd23; // Err = > go 2 switch err_led в документе атапи-7 (да и в 5-й версии это же видел): figure 47 - HOST PIO data-In state diagram. Под диаграмой расшифрование стейтов и переходов: Цитата When BSY is cleared to zero and DRQ is cleared to zero, then the device has completed the command with an error. Цитата(DmitryR @ Oct 20 2009, 09:29)  Затем, вы CRC как считаете? А с этого момента можно поподробнее - зачем в Write Block комманде (блоки в количестве 1) CRC ? Его же вроде там нет ( по крайней мере в описании к комманде READ SECTOR(S), которая имеет код 20h, и к комманде WRITE SECTOR(S), которая имеет код 30h, CRC не упоминается) ? пс Может там подождать где нужно помимо соблюдения тайминга для пио0 ? или есчё какие нъюансы написанные мелким шрифтом внизу и в другом документе ?
|
|
|
|
Сообщений в этой теме
SD713 ATA контроллер & ПЛИС Jun 22 2009, 14:29 water Цитата(SD713 @ Jun 22 2009, 18:29) Посове... Jun 23 2009, 05:23 SD713 Цитата(water @ Jun 23 2009, 09:23) А каки... Jun 23 2009, 11:04 Михаил_K На сколько я помню, стандарт АТА - 5 вольтовые уро... Jun 23 2009, 05:44 RKOB Может вы ошиблись с АТА, когда все переходят на SA... Jun 23 2009, 13:20 DmitryR Цитата(RKOB @ Jun 23 2009, 17:20) Может в... Jun 23 2009, 15:29  water Цитата(DmitryR @ Jun 23 2009, 19:29) Все ... Jun 24 2009, 04:37  starley Цитата(DmitryR @ Jun 23 2009, 19:29) Все ... Jun 25 2009, 11:18   DmitryR Это вам так на самом деле только кажется. Если бы ... Jun 26 2009, 06:13 tolik1 Цитата(SD713 @ Jun 22 2009, 18:29) Посове... Jul 6 2009, 12:16 Kuzmi4 2 tolik1 - то есть вы использовали 95хх(CPLD) как ... Jul 16 2009, 12:40 tolik1 Цитата(Kuzmi4 @ Jul 16 2009, 16:40) 2 tol... Jul 16 2009, 13:09  VslavX Цитата(tolik1 @ Jul 16 2009, 16:09) Да. Н... Jul 16 2009, 13:19   tolik1 Цитата(VslavX @ Jul 16 2009, 17:19) А UDM... Jul 16 2009, 13:23 Kuzmi4 Здравствуйте.
Забуксовал я что-то на реализации э... Sep 24 2009, 08:18 DmitryR Цитата(Kuzmi4 @ Sep 24 2009, 12:18) Кодas... Sep 24 2009, 09:45 Kuzmi4 2 DmitryR - так а разницы никакой нет - по 2001 ст... Sep 24 2009, 10:00 DmitryR Смотрите тогда схематику, что после синтеза получи... Sep 24 2009, 12:11 Kuzmi4 Смотрю осцилом на лапах, и чипскопом сигналы - что... Sep 24 2009, 12:41 DmitryR Цитата(Kuzmi4 @ Sep 24 2009, 16:41) Смотр... Sep 24 2009, 14:17 Kuzmi4 2 DmitryR - я имел ввиду управляющие сигналы, а да... Sep 24 2009, 14:23 Kuzmi4 На будущее, может кому будет полезно - радиоэлектр... Sep 26 2009, 08:31 DmitryR Цитата(Kuzmi4 @ Sep 26 2009, 12:31) Кстат... Sep 26 2009, 13:49 des00 Цитата(Kuzmi4 @ Sep 26 2009, 03:31) На бу... Sep 28 2009, 03:15  baken Цитата(des00 @ Sep 28 2009, 07:15) мне нр... Sep 28 2009, 08:42   DmitryR А я думаю, что у вы оба споткнулись на похожей зак... Sep 28 2009, 12:08 Kuzmi4 2 des00 - с использованием DIR жизнь становится пр... Sep 28 2009, 08:16 Kuzmi4 Вопрос с буфером решился интересно - отгрызли шлей... Sep 28 2009, 12:42 Kuzmi4 Проверил диаграммы и автомат мой есчё раз - опять ... Oct 20 2009, 15:56 DmitryR Черт, я все время забываю напомнить вам поглядеть ... Oct 21 2009, 09:06 Kuzmi4 2 DmitryR - там глядел на основании этого проже... Oct 21 2009, 10:00 Kuzmi4 Кстати, никто не проверял http://www.aipst.com/aip... Oct 22 2009, 10:38 ivanoff Уважаемый Kuzmi4, а чем собственно закончилась раб... Jul 20 2011, 18:55
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|