|
SD карта, 4-х битный интерфейс |
|
|
|
 |
Ответов
|
Feb 23 2008, 14:05
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 26-11-07
Пользователь №: 32 699

|
Цитата(sergeeff @ Feb 23 2008, 10:51)  Уже многократно писалось на форуме, что "дерганье" ножками GPIO быстрее 0,9 us (микросекунд) не получается. Так что такой вариант 4-проводой реализации протокола обмена с SD - путь в никуда. На быстром GPIO (FIO) очень даже получается дёргать даже каждые 5 тактов. И не просто дёргать, а выводить любые данные из памяти вплоть до 16 бит на сэмпл. И не просто выводить, а ещё и другими делами заниматься параллельно. При частоте процессора в 70 МГц (для некоторых LPC, например, LPC2101/02/03) это даёт тактовую частоту 14 МГц. Всё зависит от типа контроллера и конкретной задачи...
|
|
|
|
|
Feb 23 2008, 14:38
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(ГУ-49А @ Feb 23 2008, 17:05)  а ещё и другими делами заниматься параллельно. Никакими "другими делами" ни "параллельно", ни "перепендикулярно" при махании ножками на максимальной скорости Вы не заниматься будете. Посему тупое махание четырьмя битами и реальная фоновая пересылка через SPI на максимальной скорости SD карточки ЦЕЛОГО БЛОКА ИНФОРМАЦИИ (даже, если этот блок 8bit, а не 16, как у большиства котроллеров, и SPI не поддерживается ни FIFO ни DMA) совершенно не сопоставимы по эффективности. Цитата Всё зависит от типа контроллера и конкретной задачи... Да ничего не зависит, при наличии аппаратного SPI - без вариантов. Цитата для некоторых LPC, например, LPC2101/02/03 Для тех-же LPC переключаютесь в 16bit режим, заливаете FIFO под завязку и спокойно реально другими делами занимаетесь, А не пытаетесь изобразить диаграмму работы SD контроллера с данными, клоками и битовыми(не байтовыми!) потоками. Там никакие 14MHz и близко не лежат.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 23 2008, 15:01
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 26-11-07
Пользователь №: 32 699

|
Цитата(zltigo @ Feb 23 2008, 16:38)  Никакими "другими делами" ни "параллельно", ни "перепендикулярно" при махании ножками на максимальной скорости Вы заниматься не будете. ...Да ничего не зависит, при наличии аппаратного SPI - без вариантов. Во-первых, позвольте поблагодарить вас за особую учтивость и толерантность ваших высказываний. Во-вторых, я лишь указал на практическую возможность подобного подхода, не ставя под сомнение эффективность встроенной периферии. В то же время, существуют случаи, когда всё же имеет смысл отказаться от аппаратного SPI в пользу его программной реализации (или параллельного доступа). Подобный случай я недавно приводил в ветке про быстрый тайминг FIO (необходимость ждать 7 тактов только для старта пересылки по SSP ведёт к увеличению кванта времени мультизадачности, в отличие от более гибкой программной реализации SPI с квантом в 3 такта).
|
|
|
|
|
Feb 23 2008, 16:10
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата Во-первых, позвольте поблагодарить вас за особую учтивость и толерантность ваших высказываний. Имеет место быть недостаточность вышеупомянутого  , к моему глубочайшему сожалению. Цитата(ГУ-49А @ Feb 23 2008, 18:01)  Во-вторых, я лишь указал на практическую возможность подобного подхода Практическая возможность махать ножками никем не отрицалась, обращалось внимание на банальную неэффективность такого подхода. Цитата В то же время, существуют случаи, когда всё же имеет смысл отказаться от аппаратного SPI в пользу его программной реализации (или параллельного доступа). Вынужден напомнить, что на данный момент речь идет о совершенно конкретном применении. Впрочем, я готов обсудить и другие "случаи". Цитата Подобный случай я недавно приводил в ветке про быстрый тайминг FIO (необходимость ждать 7 тактов только для старта пересылки по SSP ведёт к увеличению кванта времени мультизадачности... 7 тактов, для обращения к "обычной переферии" безусловно особой радости не приносит, но и печали тоже. По любому выигрыш 4x тактов с мотивировкой для уменьшения кванта мультизадачности выглядит абсолютно притянутым за уши, поскольку время реакции на прерывание + время шедулера + переключения контекстов имеют даже совсем другой порядок. А если к этому добавить возникающую и требующую, как правило, компенсации неатомарность операции ногомахательства, то все становится еще натянутее.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 23 2008, 21:26
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 26-11-07
Пользователь №: 32 699

|
Цитата(zltigo @ Feb 23 2008, 18:10)  7 тактов, для обращения к "обычной переферии" безусловно особой радости не приносит, но и печали тоже. По любому выигрыш 4x тактов с мотивировкой для уменьшения кванта мультизадачности выглядит абсолютно притянутым за уши, поскольку время реакции на прерывание + время шедулера + переключения контекстов имеют даже совсем другой порядок. А если к этому добавить возникающую и требующую, как правило, компенсации неатомарность операции ногомахательства, то все становится еще натянутее. Мультитаск по таймеру - оно, конечно, так. Но я имел в виду другое: если "мультизадачность" реализована, что называется, вручную, простым перемежанием кода, и надо строго соблюдать тайминг высокоприоритетной задачи ("задача" в этом контексте скорее логическая сущность, в коде-то всё перемешано), то и 1 лишний такт может испортить нам картину. Взять, хотя бы, мой недавний случай - синхронный вывод в порт на фоне вывода в SPI. Есть там 3 варианта: 1) выводить в порт по таймеру (через FIQ) - мне не удалось и до 2 МГц тактовой добраться, на фоне 7-митактовых команд. В коде всё красиво, да результат не тот... 2) выводить в порт каждые 9 тактов, перемежая код и используя аппаратный SPI-вывод. 3) выводить в порт каждые 5 тактов, перемежая код и используя программно-эмулированный SPI. Вот вам и разница. Конечно, как уже писалось, идеологически более верным в таких случаях является выбор контроллера (и другого железа) с неким запасом производительности по отношению к данному ТЗ. Но! Это не означает, что все попытки "вопреки" выжать максимум из имеющегося более слабого (и дешевого!) железа подобным способом (пусть, извращённым) надо по-снобистски решительно отвергать. ИМХО, более широкий спектр инженерных методов, наличие неординарных идей в голове - это залог более эффективного решения нетривиальной задачи. Как бы то ни было, можно много насоветовать в форуме по методологии, но конечный выбор всегда нужно делать самому...
|
|
|
|
Сообщений в этой теме
Paramedic SD карта Feb 22 2008, 13:50 NickNich Цитата(Paramedic @ Feb 22 2008, 16:50) Ре... Feb 22 2008, 14:48 aaarrr Но лучше зайти на FTP и взять полный стандарт. Feb 22 2008, 14:52 aaarrr Цитата(sergeeff @ Feb 23 2008, 11:51) Уже... Feb 23 2008, 11:16      zltigo Цитата(ГУ-49А @ Feb 24 2008, 00:26) ... Feb 23 2008, 21:55       ГУ-49А Цитата(zltigo @ Feb 23 2008, 23:55) 4) Ис... Feb 24 2008, 11:28        zltigo Цитата(ГУ-49А @ Feb 24 2008, 14:28) ... Feb 24 2008, 13:30         ГУ-49А Цитата(zltigo @ Feb 24 2008, 15:30) Так о... Feb 24 2008, 14:06          zltigo Цитата(ГУ-49А @ Feb 24 2008, 17:06) ... Feb 24 2008, 15:49           ГУ-49А Цитата(zltigo @ Feb 24 2008, 17:49) Что з... Feb 24 2008, 17:35            zltigo Цитата(ГУ-49А @ Feb 24 2008, 20:35) ... Feb 24 2008, 19:41 GetSmart Если передавать через SSP, то самая быстрая переда... Feb 24 2008, 16:27 KAlex Цитата(Paramedic @ Feb 22 2008, 16:50) Ре... Feb 25 2008, 09:38 Vitaliy_ARM Цитата(KAlex @ Feb 25 2008, 12:38) У меня... Feb 25 2008, 10:31  KAlex Цитата(Vitaliy_ARM @ Feb 25 2008, 13:31) ... Feb 25 2008, 10:38 Paramedic Спасибо за ответы, не ожидал что такая дискуссия п... Feb 26 2008, 06:15 zltigo Цитата(Paramedic @ Feb 26 2008, 09:15) На... Feb 26 2008, 07:39  Paramedic Цитата(zltigo @ Feb 26 2008, 10:39) На са... Feb 26 2008, 07:50   zltigo Цитата(Paramedic @ Feb 26 2008, 10:50) На... Feb 26 2008, 08:48    Paramedic Цитата(zltigo @ Feb 26 2008, 11:48) А что... Feb 26 2008, 08:58     zltigo Цитата(Paramedic @ Feb 26 2008, 11:58) В ... Feb 26 2008, 09:14
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|