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

Помогите разобраться с usb. Имеется отладочная плата sk-mstm32f107. На ней есть 2 разъема USB. B для питания платы. А хочу использовтаь для связи контроллера с обычной флэшкой, например для загрузки бута. Вобщем, задача такая, подключить флэшку к плате и прочитать с нее файл. Но возникло куча вопросов:

1. Я так понимаю, что флэшка может быть только слэйвом? Значит необходимо конфигурировать юсб на плате как мастер (хост)?

2. Как настроить юсб?

3. Как настроить ноги МК??

4. Как настроить прерывания?

5. В каком виде приход кадр и где его можно прочитать? Как узнать, пришел ли кадр?

6. Как мой хост узнает, что к нему подключена флэшка?

 

Ну и далее, вопросы, касающиеся того, как можно прочитать файл с флэшки, как можно найти нужный файл и т.д.

 

Если кто-то может, разложить по полочкам, пжлст, обьясните новичку. Читаю от википедии до даташита, туговато идет. Буду благодарна за примеры.

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

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


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

1. Да.

2 ... 6 и все прочее. Ищите примеры проектов для USB (и не только) на ваш МК (на сайте ST и на диске, который шел с отладочной платой), читайте спецификацию USB, а также книжку Гука "Шины PCI, USB и FireWire" и книгу Jan Axelson про Mass-Storage, после чего пробуйте разобраться в примерах.

 

Если ранее не работали с МК - разбирайтесь сначала в простейших вещах, потом беритесь за USB (тем более - за хост (!!!!!)). Сразу скажу, что задача очень сложная, так что на быстрый результат не надейтесь ...

P.S. Альтернатива - купить отладочную плату с Linux, там все необходимое уже написано. Останется только разобраться, как это применить в своем проекте. Возможно, этот путь окажется для вас подходящим. Естественно, на вашем МК Linux не запустится, посему плату нужно покупать на другом МК. Например, на ARM9:

http://www.starterkit.ru

Изменено пользователем IgorKossak
бездумное цитирование

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


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

1. Да.

2 ... 6 и все прочее. Ищите примеры проектов для USB (и не только) на ваш МК (на сайте ST и на диске, который шел с отладочной платой), читайте спецификацию USB, а также книжку Гука "Шины PCI, USB и FireWire" и книгу Jan Axelson про Mass-Storage, после чего пробуйте разобраться в примерах.

 

Если ранее не работали с МК - разбирайтесь сначала в простейших вещах, потом беритесь за USB (тем более - за хост (!!!!!)). Сразу скажу, что задача очень сложная, так что на быстрый результат не надейтесь ...

С МК работаю года 3. Работала с простыми интерфейсами USART,CAN,SPI. Вот добралась до USB.

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


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

ST все уже сделал за нас.

Достаточно скачать stm32_f105-07_f2xx_usb-host-device_lib.zip и внимательно изучить.

Там есть примеры, в т.ч. и host

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


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

Мой совет - начните с usb device. хост гораздо сложнее и без опыта реализации девайса хост не сделаете.

загляните в соседнюю ветку про аналогичную задачу, там я еще немного писал про усб.

 

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


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

Мой совет - начните с usb device. хост гораздо сложнее и без опыта реализации девайса хост не сделаете.

загляните в соседнюю ветку про аналогичную задачу, там я еще немного писал про усб.

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

1. Настройка тактового генератора для юсб.

2. Настройка GPIO.

3. Настройка перрываний.

Хотя бы чтобы можно было к плате sk-mstm32f107 подсключить флэшку и просто послать запрос и получить ответ, что за устройство подключено.

 

Вот в примерах ничего не понятно. Наример настройка портов ввода/вывода:

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;

1.Что это за GPIO_OType,GPIO_PuPd. В стандартной библиотеке периферии версии 3,5 этих полей структуры инициализации портов ввода/вывода нет.

2.Далее вопрос по поводу выводов. Непонятно, как настраивать питание шины юсб. линии питания должны быть поднянуты к 5 вольтам или устанавливаться на ногах стшки? Питает хост или дэвайс?

3.Как обратиться к буфферу памяти, куда считываются данные?

4.По каким признакам можно настроить прерывания?

5. Как определить, подключено ли устройство к шине или нет? По какому-то прерыванию? Или периодически как-то опрашивать шину, посілая куакую-то команду и ожидая ответа?

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

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


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

1.Что это за GPIO_OType,GPIO_PuPd. В стандартной библиотеке периферии версии 3,5 этих полей структуры инициализации портов ввода/вывода нет.

2.Далее вопрос по поводу выводов. Непонятно, как настраивать питание шины юсб. линии питания должны быть поднянуты к 5 вольтам или устанавливаться на ногах стшки? Питает хост или дэвайс?

3.Как обратиться к буфферу памяти, куда считываются данные?

4.По каким признакам можно настроить прерывания?

5. Как определить, подключено ли устройство к шине или нет? По какому-то прерыванию? Или периодически как-то опрашивать шину, посілая куакую-то команду и ожидая ответа?

 

1. Просмотрите .h - файлы, имеющиеся в скачанном вами архиве, а также .c - исходники на предмет обнаружения этих имен.

2. Придется глубоко вникать в исходники и в документацию на ваш МК. Другого пути нет. Кстати, почему вы именно ST выбрали ? Неужели не было ничего попроще ?

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


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

1. Просмотрите .h - файлы, имеющиеся в скачанном вами архиве, а также .c - исходники на предмет обнаружения этих имен.

2. Придется глубоко вникать в исходники и в документацию на ваш МК. Другого пути нет. Кстати, почему вы именно ST выбрали ? Неужели не было ничего попроще ?

1.Пример компилируется с ошибками

2. Нужно разобраться с юсб только для stm32f107 и проверить на отладочной плате.

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


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

1.Пример компилируется с ошибками

 

А другие примеры тоже компилируются с ошибками ? И вообще, неплохо бы увидеть сообщения об ошибках ...

 

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


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

GPIO_OType, GPIO_PuPd - это из STM32F4xx_DSP_StdPeriph_Lib_V1.0.0

В том то и дело, что нет описания в мануалах, как настроить порты для юсб, и в примере тоже.

 

Сообщения об ошибках

..\..\..\..\Libraries\STM32_USB_OTG_Driver\inc\usb_regs.h(85): error: #20: identifier "__IO" is undefined

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

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


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

Ошибка потому что не подключен заголовочный файл с описанием __IO, core_cm4.h или core_cm3.h

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


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

1. Настройка тактового генератора для юсб.

2. Настройка GPIO.

3. Настройка перрываний.

Это самое простое, что может быть, и без примера чтения даташита должно хватить

 

Хотя бы чтобы можно было к плате sk-mstm32f107 подсключить флэшку и просто послать запрос и получить ответ, что за устройство подключено.

а вот это 80% работы :) если это(device-дескриптор от флешки) получите, то все вопросы отпадут сами :)

 

Вообще пример использования otg в режиме device есть в соседней ветке кидал свой где-то, no без бибкиотек, чисто работа с регистрами.

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


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

Это самое простое, что может быть, и без примера чтения даташита должно хватить

 

 

а вот это 80% работы :) если это(device-дескриптор от флешки) получите, то все вопросы отпадут сами :)

 

Вообще пример использования otg в режиме device есть в соседней ветке кидал свой где-то, no без бибкиотек, чисто работа с регистрами.

Кто-то может обьяснить или ткнуть носом. где в документации описаны назначения выводов ID,DP,DM, и как настраивать линии порта ввода-вывода?

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


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

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

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

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

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

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

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

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

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

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