Перейти к содержанию
    

Скорость High Speed USB на STM32F2/F4

Господа, я был адски неправ. Ошибка заключалась в том, что я вычитывал CSD регистры до перехода в high speed. Успешно запустил 48 МГц на STM32F2 в режиме divisor bypass.

Не понял, у вас на карточку подаются 48 МГц тактового сигнала вместо 24 ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не понял, у вас на карточку подаются 48 МГц тактового сигнала вместо 24 ?

Почему вместо? Сначала 400 КГц 1 бит, потом конфигурирование карты, 24 МГц 4 бит, переход в high speed (если карта поддерживает) и 48 МГц. Теоретически можно 50, но у меня почему-то pll не завелась. Пример либы от стм не умеет в high speed переходить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Теоретически можно 50, но у меня почему-то pll не завелась.

Ясно. Но вот как вы выставили 48МГц, если в даташите написано, что 25МГц - это предел ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ясно. Но вот как вы выставили 48МГц, если в даташите написано, что 25МГц - это предел ?

 

Нет там такого:

 

The USB OTG FS clock (48 MHz), the random analog generator (RNG) clock (≤ 48 MHz) and the SDIO clock (≤ 48 MHz) which are coming from a specific output of PLL (PLL48CLK)

 

Перечитал внимательно, теперь сам вижу, почему на 50 не завелось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет там такого:

Ну, не знаю. А как же быть вот с этой фразой из Reference Manual:

 

"SDIO_CKis the clock to the card: one bit is transferred on both command and data lines

with each clock cycle. The clock frequency can vary between 0 MHz and 20 MHz (for a

MultiMediaCard V3.31), between 0 and 48 MHz for a MultiMediaCard V4.0/4.2, or between

0 and 25 MHz (for an SD/SD I/O card)." ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, не знаю. А как же быть вот с этой фразой из Reference Manual:

 

"SDIO_CKis the clock to the card: one bit is transferred on both command and data lines

with each clock cycle. The clock frequency can vary between 0 MHz and 20 MHz (for a

MultiMediaCard V3.31), between 0 and 48 MHz for a MultiMediaCard V4.0/4.2, or between

0 and 25 MHz (for an SD/SD I/O card)." ?

Я подозреваю, что тут говорится о физических ограничениях карт, а не самом интерфейсе и его просто забыли поправить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я подозреваю, что тут говорится о физических ограничениях карт, а не самом интерфейсе и его просто забыли поправить.

Странно. У меня Manual Doc ID 15403 Rev 4, и там на стр. 705 это написано. А в вашем Manual есть эта фраза ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Странно. У меня Manual Doc ID 15403 Rev 4, и там на стр. 705 это написано. А в вашем Manual есть эта фраза ?

У меня тот же самый мануал. Но подумайте сами - на уровне передачи физических сигналов разница между SD и MMC это только 4 или 8 бит данных. Так почему должно быть такое нелепое ограничение на SD?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня тот же самый мануал. Но подумайте сами - на уровне передачи физических сигналов разница между SD и MMC это только 4 или 8 бит данных. Так почему должно быть такое нелепое ограничение на SD?

Я им в техподдержку напишу. Гадать можно до бесконечности. Похоже, вы правы, но интересно, что скажет производитель ...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну вот и я добрался до железа с HS USB :) Результаты очень даже радуют. На рам-диске (в озу контроллера) в режиме Mass-Storage сходу получилось 30МБ/с, с zero copy - уже 35, это без файловой системы, прямой доступ к диску. После устранения оверхеда в лице mass-storage, удалось раскачать до 42МБ/с, правда этот вариант несколько искусственный, т.к. проц просто непрерывно передает большие блоки, но для оценки максимальной достижимой производительности - сойдет.

Еще что интересно - на таких скоростях похоже уже начинает оказывать влияние контроллер хоста. Указанные выше цифры были получены при подключении к USB 3.0 порту компа, в 2.0 портах скорость на 3-6 МБ/с ниже. Понятное дело, что HS/SS ни при чем, дело либо в организации самого контроллера, либо производительности шины на которой он сидит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как я понял, Вы все используете USB в режиме Device?

А кто-нибудь тестил USB HS в режиме, когда контроллер - хост? Если да, то какие скорости удалось получить? Сильно-ли пришлось пилить существующие экзамплы?

Спасибо

Изменено пользователем dubb

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, пока только девайс. Хост еще вообще не смотрел, но в ближайшей перспективе буду, как нарисуется вторая плата. Планируется соединить две STM32F4 одну хостом, другую девайсом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрался наконец-то до хоста. F4 с флешкой, судя по первым экспериментам скорость упирается в производительность флешки. Пробовал три штуки:

1. Довольно тормозная флешка Emtec. Комп ее пишет на скорости где-то 2.7-2.9МБ/с, процессор - 2.5

2. СДшка через ридер, компе 8МБ/с, проц - 7.5

3. Большая и шустрая флешка 32гига, на компе пишется со скоростью 20-22МБ/с в HS режиме почему-то не пошла. Проц ее видит, можно посмотреть каталоги, но при попытке создать файл - он создается, но в него ничего не пишется, функция записи тупо повисает. Где именно пока не разбирался.

 

В FS режиме все три показывают скорость в районе 0.7-0.9 МБ/с.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проц ее видит, можно посмотреть каталоги, но при попытке создать файл - он создается, но в него ничего не пишется, функция записи тупо повисает. Где именно пока не разбирался.

У меня такое было, когда не было включено увеличенное энергопотребление по CMD6.

 

По usb-hs скорости впечатляют. Это c какой частотой микроконтроллера получено? Какая обвязка?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так у меня обычная USB-Flash, только во втором тесте подрубал СД-шку через ридер.

Частота полная - 168МГц, физика - USB3300.

 

У меня есть подозрения, что где-то в HS-библиотеке бага-таки есть, т.к. еще когда я гонял эмулятор ком-порта - передача рандомно висла. Так же прога, но в FS режиме работала нормально часами. Надо копаться в этом деле с отладчиком, а времени нету пока.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...