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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> USB + mass storage on stm32f107vc
batisto4ka
сообщение Jul 3 2012, 08:03
Сообщение #16


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

Группа: Участник
Сообщений: 89
Регистрация: 3-01-11
Пользователь №: 61 997



Наконец-то нашла пример для stm32f107 от ст.Там идет как раз прошивка с флэшки. Контроллер настраивается в режим хоста. Прошиваю примером плату sk-mstm32f107. В примере закоментированы настройки ЖКИ. Оставила только инициализацию юсб и обработку. Подключаю флэшку - не работает. Почему-то всегдафункция USBH_Process входит в состояния то host_idle, то host_usr_input. С первым состоянием понятно, а вот почему обрабатывается второе и проскакиваются остальные-непонятно. В приложении прикрепленный пример.
Прикрепленные файлы
Прикрепленный файл  STM32F105_107_IAP_USBHost.rar ( 2.11 мегабайт ) Кол-во скачиваний: 60
 
Go to the top of the page
 
+Quote Post
alx125
сообщение Jul 3 2012, 08:23
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 202
Регистрация: 18-05-09
Из: Novosibirsk
Пользователь №: 49 204



Цитата(batisto4ka @ Jul 3 2012, 12:03) *
Наконец-то нашла пример для stm32f107 от ст.Там идет как раз прошивка с флэшки. Контроллер настраивается в режим хоста. Прошиваю примером плату sk-mstm32f107. В примере закоментированы настройки ЖКИ. Оставила только инициализацию юсб и обработку. Подключаю флэшку - не работает. Почему-то всегдафункция USBH_Process входит в состояния то host_idle, то host_usr_input. С первым состоянием понятно, а вот почему обрабатывается второе и проскакиваются остальные-непонятно. В приложении прикрепленный пример.


При вызове ф-ции пользовательского ввода в состоянии host_usr_input необходимо вернуть значение, что-то типа USBH_OK (уточните)
Даже , если у Вас нет ввода с клавиатуры!
Go to the top of the page
 
+Quote Post
batisto4ka
сообщение Jul 3 2012, 10:29
Сообщение #18


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

Группа: Участник
Сообщений: 89
Регистрация: 3-01-11
Пользователь №: 61 997



Цитата(alx125 @ Jul 3 2012, 11:23) *
При вызове ф-ции пользовательского ввода в состоянии host_usr_input необходимо вернуть значение, что-то типа USBH_OK (уточните)
Даже , если у Вас нет ввода с клавиатуры!

Непонятно. Причем сдесь клавиатура?
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jul 3 2012, 11:31
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(batisto4ka @ Jul 3 2012, 13:29) *
Непонятно. Причем сдесь клавиатура?

А еще этот пример может быть рассчитан на МК в другом корпусе, в результате линии, используемые USB, попадают на совсем другие линии GPIO. Это нужно проверить и исправить. Почти наверняка ваш проект не работает именно из-за этого. И еще. Ничего из проекта пока не выбрасывайте, закомментируйте только работу с ЖКИ ...
Go to the top of the page
 
+Quote Post
batisto4ka
сообщение Jul 3 2012, 13:30
Сообщение #20


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

Группа: Участник
Сообщений: 89
Регистрация: 3-01-11
Пользователь №: 61 997



Цитата(kovigor @ Jul 3 2012, 14:31) *
А еще этот пример может быть рассчитан на МК в другом корпусе, в результате линии, используемые USB, попадают на совсем другие линии GPIO. Это нужно проверить и исправить. Почти наверняка ваш проект не работает именно из-за этого. И еще. Ничего из проекта пока не выбрасывайте, закомментируйте только работу с ЖКИ ...

проблемма была в отладочной плате, нужно было переставить перемычки... добилась связи с юсб, разбираю работу с файловой системой.
Go to the top of the page
 
+Quote Post
batisto4ka
сообщение Jul 5 2012, 11:00
Сообщение #21


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

Группа: Участник
Сообщений: 89
Регистрация: 3-01-11
Пользователь №: 61 997




Разбираюсь с файловой ситемой efsl, представленной в примере stm32f105_107_usb_fw. Насколько я понимаю, эта библиотека поддерживает fat12,fat16, fat32, но имена только 8.3 символьные. Подлючаю флэшку на 16 гб - флэшка инициализируется, а файловая система нет (функция fs_verifySanity возвращает 0, количество байт в секторе не равно 512). Подлючаю телефон через юсб, на нем сд карта на 2 гб, на ней пример работает. Разбиваю обычную флэшки на разделы, один из которых делаю 2 гб, форматирую в fat(16). Опять не инициализируется файловая система (на этот раз количество секторов на кластер равно 128, а поддерживаются только 1,2,4,8,16,32,64). Еще раз переразбила флэшку на этот раз размером на 1 гб и отформатировала в fat, и на этот раз все работает.
Теперь вопрос, как сделать так, чтобы можно было работать с флэшки любого размера. Дело в файловой системе? Или в библиотеке?

Сообщение отредактировал batisto4ka - Jul 5 2012, 11:08
Go to the top of the page
 
+Quote Post
batisto4ka
сообщение Jul 17 2012, 05:40
Сообщение #22


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

Группа: Участник
Сообщений: 89
Регистрация: 3-01-11
Пользователь №: 61 997



Кто-нибудь подскажет?
Go to the top of the page
 
+Quote Post
Basilij
сообщение Sep 6 2012, 05:26
Сообщение #23


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

Группа: Участник
Сообщений: 175
Регистрация: 7-04-11
Пользователь №: 64 190



Видимо так никто и не подсказал...

Цитата(011119xx @ Jul 3 2012, 09:07) *
В Reference Manual, глава 27.

Уточню, глава 28. Но лично мне так и не ясно, если я хочу подключать обычную флешку обязательно ли мне ставить микросхему STMPS2141STR.
Шина Vbus получаеться ничего не выдаёт?

Цитата(batisto4ka @ Jul 3 2012, 19:30) *
проблемма была в отладочной плате, нужно было переставить перемычки... добилась связи с юсб, разбираю работу с файловой системой.


А если быть точнее перемыка J1 не была установлена и на флешку не шло питание 5 вольт?? Не подскажите а если нет у меня 5 вольт в схеме, могу ли от трёх вольт запитать USB флешку и будет ли работать? Полагаю вот схема вашей отладочной платы http://www.starterkit.ru/html/doc/SK_MSTM32F107.pdf ?
Go to the top of the page
 
+Quote Post
Basilij
сообщение Sep 6 2012, 08:55
Сообщение #24


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

Группа: Участник
Сообщений: 175
Регистрация: 7-04-11
Пользователь №: 64 190



Продолжаю разбираться.
Нашёл два противоречия, может растолкует кто:
На плате sk-mstm32f107 когда подключаем USB-флешку она запитываеться блока питания. Линия Vbus МК и Vbus USB флешки не соеденены.
Хотя в RM0008 на схеме 304 указано что Vbus МК как хоста, и USB-флешки как девайса, должны быть соеденены, также сказано:
Цитата
VBUS valid
The VBUS input ensures that valid VBUS levels are supplied by the charge pump during USB
operations.
Any unforeseen VBUS voltage drop below the VBUS valid threshold (4.25 V) leads to an OTG
interrupt triggered by the session end detected bit (SEDET bit in OTG_FS_GOTGINT). The
application is then required to remove the VBUS power and clear the port power bit. The
charge pump overcurrent flag can also be used to prevent electrical damage. Connect the
overcurrent flag output from the charge pump to any GPIO input and configure it to generate
a port interrupt on the active level. The overcurrent ISR must promptly disable the VBUS
generation and clear the port power bit.

Т.е. Vbus МК в режиме хоста мониторит состояние на линии Vbus, и если оно ниже 4.25 он генерит прерывание.
Получаеться что на плате sk-mstm32f107 просто обошли боком этот момент.

2) Определение факта подключения USB-флешки:
Сказано
Host detection of a peripheral connection
Even if USB peripherals or B-devices can be attached at any time, the OTG_FS will not detect any bus connection until the end of the VBUS sensing (VBUS over 4.75 V).
When VBUS is at a valid level and a remote B-device is attached, the OTG_FS core issues a host port interrupt triggered by the device connected bit in the host port control and status register (PCDET bit in OTG_FS_HPRT).

Я правильно понял при подключении USB-флешки напряжение на линии Vbus МК должно опуститься ниже 4.75 чтобы сгенерировалось прерывание на Хосте? Или я читаю не так...


Господа истолкуйте кто ведает истину!
Go to the top of the page
 
+Quote Post
alx125
сообщение Sep 6 2012, 23:13
Сообщение #25


Местный
***

Группа: Свой
Сообщений: 202
Регистрация: 18-05-09
Из: Novosibirsk
Пользователь №: 49 204



Цитата(Basilij @ Sep 6 2012, 12:55) *
Продолжаю разбираться.
Нашёл два противоречия, может растолкует кто:

2) Определение факта подключения USB-флешки:
Сказано
Host detection of a peripheral connection
Even if USB peripherals or B-devices can be attached at any time, the OTG_FS will not detect any bus connection until the end of the VBUS sensing (VBUS over 4.75 V).
When VBUS is at a valid level and a remote B-device is attached, the OTG_FS core issues a host port interrupt triggered by the device connected bit in the host port control and status register (PCDET bit in OTG_FS_HPRT).


Смысл простой: детекция подключения переферии не сработает, если напряжение Vbus <=4,75V

Go to the top of the page
 
+Quote Post
Ekka
сообщение Aug 4 2016, 09:18
Сообщение #26


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

Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



А что за библиотеку Вы брали? Мне тоже надо(((
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th June 2025 - 00:06
Рейтинг@Mail.ru


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