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

 
 
> STM32F107 USB-CDC
slavokhire5
сообщение Jul 11 2014, 15:46
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 31-03-14
Из: Харьков
Пользователь №: 81 165



Всем приветsm.gif Понадобилось мне поднять USB CDC на STM32F107. С ЮСБ, как и с STM32 опыта практически нет. Работаю в CooCox. Скачал STM32_USB-Host-Device_Lib_V2.1.0, накидал оттуда файлов в проект. кучу ошибок выгреб. сейчас в основном остались такого типа:
D:\code\beer\trunk\stm32f107\usb_otg_lib\usb_hcd.c:101:7: error: 'USB_OTG_CORE_HANDLE' has no member named 'host'
я подозреваю, что где-то не раскомментил какой-то дейфайн. Можете подсказать что не правильно может быть?

Прикрепляю проект
Прикрепленные файлы
Прикрепленный файл  stm32f107.7z ( 356.44 килобайт ) Кол-во скачиваний: 13
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
A. Fig Lee
сообщение Jul 11 2014, 17:37
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(slavokhire5 @ Jul 11 2014, 11:46) *
Всем приветsm.gif Понадобилось мне поднять USB CDC на STM32F107. С ЮСБ, как и с STM32 опыта практически нет. Работаю в CooCox. Скачал STM32_USB-Host-Device_Lib_V2.1.0, накидал оттуда файлов в проект. кучу ошибок выгреб. сейчас в основном остались такого типа:
D:\code\beer\trunk\stm32f107\usb_otg_lib\usb_hcd.c:101:7: error: 'USB_OTG_CORE_HANDLE' has no member named 'host'
я подозреваю, что где-то не раскомментил какой-то дейфайн. Можете подсказать что не правильно может быть?

Прикрепляю проект


Ну если CDC, то host-а быть и не должно, я так понимаю.

usb_conf.h:

Код
/****************** USB OTG MODE CONFIGURATION ********************************/
//#define USE_HOST_MODE
#define USE_DEVICE_MODE
//#define USE_OTG_MODE


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
slavokhire5
сообщение Jul 12 2014, 12:26
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 31-03-14
Из: Харьков
Пользователь №: 81 165



Цитата(A. Fig Lee @ Jul 11 2014, 20:37) *
Ну если CDC, то host-а быть и не должно, я так понимаю.

usb_conf.h:

Код
/****************** USB OTG MODE CONFIGURATION ********************************/
//#define USE_HOST_MODE
#define USE_DEVICE_MODE
//#define USE_OTG_MODE



у меня так и выставлено sad.gif
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Jul 12 2014, 13:54
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(slavokhire5 @ Jul 12 2014, 08:26) *
у меня так и выставлено sad.gif

А кто и откуда тогда обращается к хосту?
У меня тоже СТМ32107, тоже USB-CDC, все работает.

В Кокосе там баги, кстати..
Да, hcd.c файл у меня не подключен:



Сообщение отредактировал A. Fig Lee - Jul 12 2014, 13:58


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
slavokhire5
сообщение Jul 14 2014, 07:51
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 31-03-14
Из: Харьков
Пользователь №: 81 165



Цитата(A. Fig Lee @ Jul 12 2014, 16:54) *
А кто и откуда тогда обращается к хосту?
У меня тоже СТМ32107, тоже USB-CDC, все работает.

В Кокосе там баги, кстати..
Да, hcd.c файл у меня не подключен:



Можете показать все файлы, которые вы использовали для подключения USB? Я подключил все, что у вас на скрине есть (+ соответствующие h-файлы), добавил usb_conf.h и usbd_conf.h, проект собрался, но никакого нового устройства компьюетр не обнаружил. Я так понимаю, не хватает еще usb_conf.h/c, но его подключение тянет за собой еще кучу файлов sad.gif

Сообщение отредактировал slavokhire5 - Jul 14 2014, 07:52
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Jul 14 2014, 10:47
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(slavokhire5 @ Jul 14 2014, 03:51) *
Можете показать все файлы, которые вы использовали для подключения USB? Я подключил все, что у вас на скрине есть (+ соответствующие h-файлы), добавил usb_conf.h и usbd_conf.h, проект собрался, но никакого нового устройства компьюетр не обнаружил. Я так понимаю, не хватает еще usb_conf.h/c, но его подключение тянет за собой еще кучу файлов sad.gif

У меня не тянет:

CODE
/**
******************************************************************************
* @file usb_conf.h
* @author MCD Application Team
* @version V1.1.0
* @date 19-March-2012
* @brief General low level driver configuration
******************************************************************************
* @attention
*
* <h2><center>&copy; COPYRIGHT 2012 STMicroelectronics</center></h2>
*
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.st.com/software_license_agreement_liberty_v2
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************
*/

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __USB_CONF__H__
#define __USB_CONF__H__

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
#if 0
#include "stm3210c_eval.h"
#include "stm3210c_eval_lcd.h"
#include "stm3210c_eval_ioe.h"
#include "stm3210c_eval_spi_sd.h"
#endif


/** @addtogroup USB_OTG_DRIVER
* @{
*/

/** @defgroup USB_CONF
* @brief USB low level driver configuration file
* @{
*/

/** @defgroup USB_CONF_Exported_Defines
* @{
*/

/* USB Core and PHY interface configuration.
Tip: To avoid modifying these defines each time you need to change the USB
configuration, you can declare the needed define in your toolchain
compiler preprocessor.
*/
/****************** USB OTG FS PHY CONFIGURATION *******************************
* The USB OTG FS Core supports one on-chip Full Speed PHY.
*
* The USE_EMBEDDED_PHY symbol is defined in the project compiler preprocessor
* when FS core is used.
*******************************************************************************/
#ifndef USE_USB_OTG_FS
#define USE_USB_OTG_FS
#endif /* USE_USB_OTG_FS */

#ifdef USE_USB_OTG_FS
#define USB_OTG_FS_CORE
#endif

/****************** USB OTG HS PHY CONFIGURATION *******************************
* The USB OTG HS Core supports two PHY interfaces:
* (i) An ULPI interface for the external High Speed PHY: the USB HS Core will
* operate in High speed mode
* (ii) An on-chip Full Speed PHY: the USB HS Core will operate in Full speed mode
*
* You can select the PHY to be used using one of these two defines:
* (i) USE_ULPI_PHY: if the USB OTG HS Core is to be used in High speed mode
* (ii) USE_EMBEDDED_PHY: if the USB OTG HS Core is to be used in Full speed mode
*
* Notes:
* - The USE_ULPI_PHY symbol is defined in the project compiler preprocessor as
* default PHY when HS core is used.
* - On STM322xG-EVAL and STM324xG-EVAL boards, only configuration(i) is available.
* Configuration (ii) need a different hardware, for more details refer to your
* STM32 device datasheet.
*******************************************************************************/
#ifndef USE_USB_OTG_HS
//#define USE_USB_OTG_HS
#endif /* USE_USB_OTG_HS */

#ifndef USE_ULPI_PHY
//#define USE_ULPI_PHY
#endif /* USE_ULPI_PHY */

#ifndef USE_EMBEDDED_PHY
//#define USE_EMBEDDED_PHY
#endif /* USE_EMBEDDED_PHY */

#ifdef USE_USB_OTG_HS
#define USB_OTG_HS_CORE
#endif

/*******************************************************************************
* FIFO Size Configuration in Device mode
*
* (i) Receive data FIFO size = RAM for setup packets +
* OUT endpoint control information +
* data OUT packets + miscellaneous
* Space = ONE 32-bits words
* --> RAM for setup packets = 10 spaces
* (n is the nbr of CTRL EPs the device core supports)
* --> OUT EP CTRL info = 1 space
* (one space for status information written to the FIFO along with each
* received packet)
* --> data OUT packets = (Largest Packet Size / 4) + 1 spaces
* (MINIMUM to receive packets)
* --> OR data OUT packets = at least 2*(Largest Packet Size / 4) + 1 spaces
* (if high-bandwidth EP is enabled or multiple isochronous EPs)
* --> miscellaneous = 1 space per OUT EP
* (one space for transfer complete status information also pushed to the
* FIFO with each endpoint's last packet)
*
* (ii)MINIMUM RAM space required for each IN EP Tx FIFO = MAX packet size for
* that particular IN EP. More space allocated in the IN EP Tx FIFO results
* in a better performance on the USB and can hide latencies on the AHB.
*
* (iii) TXn min size = 16 words. (n : Transmit FIFO index)
* (iv) When a TxFIFO is not used, the Configuration should be as follows:
* case 1 : n > m and Txn is not used (n,m : Transmit FIFO indexes)
* --> Txm can use the space allocated for Txn.
* case2 : n < m and Txn is not used (n,m : Transmit FIFO indexes)
* --> Txn should be configured with the minimum space of 16 words
* (v) The FIFO is used optimally when used TxFIFOs are allocated in the top
* of the FIFO.Ex: use EP1 and EP2 as IN instead of EP1 and EP3 as IN ones.
* (vi) In HS case 12 FIFO locations should be reserved for internal DMA registers
* so total FIFO size should be 1012 Only instead of 1024
*******************************************************************************/

/****************** USB OTG HS CONFIGURATION **********************************/
#ifdef USB_OTG_HS_CORE
#define RX_FIFO_HS_SIZE 512
#define TX0_FIFO_HS_SIZE 64
#define TX1_FIFO_HS_SIZE 372
#define TX2_FIFO_HS_SIZE 64
#define TX3_FIFO_HS_SIZE 0
#define TX4_FIFO_HS_SIZE 0
#define TX5_FIFO_HS_SIZE 0

// #define USB_OTG_HS_SOF_OUTPUT_ENABLED

#ifdef USE_ULPI_PHY
#define USB_OTG_ULPI_PHY_ENABLED
#endif
#ifdef USE_EMBEDDED_PHY
#define USB_OTG_EMBEDDED_PHY_ENABLED
/* wakeup is working only when HS core is configured in FS mode */
#define USB_OTG_HS_LOW_PWR_MGMT_SUPPORT
#endif
/* #define USB_OTG_HS_INTERNAL_DMA_ENABLED */ /* Be aware that enabling DMA mode will result in data being sent only by
multiple of 4 packet sizes. This is due to the fact that USB DMA does
not allow sending data from non word-aligned addresses.
For this specific application, it is advised to not enable this option
unless required. */
#define USB_OTG_HS_DEDICATED_EP1_ENABLED
#endif

/****************** USB OTG FS CONFIGURATION **********************************/
#ifdef USB_OTG_FS_CORE
#define RX_FIFO_FS_SIZE 128
#define TX0_FIFO_FS_SIZE 32
#define TX1_FIFO_FS_SIZE 128
#define TX2_FIFO_FS_SIZE 32
#define TX3_FIFO_FS_SIZE 0

// #define USB_OTG_FS_LOW_PWR_MGMT_SUPPORT
// #define USB_OTG_FS_SOF_OUTPUT_ENABLED
#endif

/****************** USB OTG MISC CONFIGURATION ********************************/
#define VBUS_SENSING_ENABLED

/****************** USB OTG MODE CONFIGURATION ********************************/
//#define USE_HOST_MODE
#define USE_DEVICE_MODE
//#define USE_OTG_MODE

#ifndef USB_OTG_FS_CORE
#ifndef USB_OTG_HS_CORE
#error "USB_OTG_HS_CORE or USB_OTG_FS_CORE should be defined"
#endif
#endif

#ifndef USE_DEVICE_MODE
#ifndef USE_HOST_MODE
#error "USE_DEVICE_MODE or USE_HOST_MODE should be defined"
#endif
#endif

#ifndef USE_USB_OTG_HS
#ifndef USE_USB_OTG_FS
#error "USE_USB_OTG_HS or USE_USB_OTG_FS should be defined"
#endif
#else //USE_USB_OTG_HS
#ifndef USE_ULPI_PHY
#ifndef USE_EMBEDDED_PHY
#error "USE_ULPI_PHY or USE_EMBEDDED_PHY should be defined"
#endif
#endif
#endif

/****************** C Compilers dependant keywords ****************************/
/* In HS mode and when the DMA is used, all variables and data structures dealing
with the DMA during the transaction process should be 4-bytes aligned */
#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
#if defined (__GNUC__) /* GNU Compiler */
#define __ALIGN_END __attribute__ ((aligned (4)))
#define __ALIGN_BEGIN
#else
#define __ALIGN_END
#if defined (__CC_ARM) /* ARM Compiler */
#define __ALIGN_BEGIN __align(4)
#elif defined (__ICCARM__) /* IAR Compiler */
#define __ALIGN_BEGIN
#elif defined (__TASKING__) /* TASKING Compiler */
#define __ALIGN_BEGIN __align(4)
#endif /* __CC_ARM */
#endif /* __GNUC__ */
#else
#define __ALIGN_BEGIN
#define __ALIGN_END
#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */

/* __packed keyword used to decrease the data type alignment to 1-byte */
#if defined (__CC_ARM) /* ARM Compiler */
#define __packed __packed
#elif defined (__ICCARM__) /* IAR Compiler */
#define __packed __packed
#elif defined ( __GNUC__ ) /* GNU Compiler */
#define __packed __attribute__ ((__packed__))
#elif defined (__TASKING__) /* TASKING Compiler */
#define __packed __unaligned
#endif /* __CC_ARM */

/**
* @}
*/


/** @defgroup USB_CONF_Exported_Types
* @{
*/
/**
* @}
*/


/** @defgroup USB_CONF_Exported_Macros
* @{
*/
/**
* @}
*/

/** @defgroup USB_CONF_Exported_Variables
* @{
*/
/**
* @}
*/

/** @defgroup USB_CONF_Exported_FunctionsPrototype
* @{
*/
/**
* @}
*/


#endif //__USB_CONF__H__


/**
* @}
*/

/**
* @}
*/

/************************ © COPYRIGHT STMicroelectronics *****END OF FILE****/


Цитата(slavokhire5 @ Jul 14 2014, 06:31) *
Собрал проект на основе этой статьи: http://www.promelec.ru/support/prom/usb-virtual/
частоту PLL/2 вывожу на МСО. Осциллограф показывает 24МГц. USB_Prescaler выставил в значение div2, т.е. итоговая частота на модуль USB должна выйти 48МГц. Комп ничего по-прежнему не видит sad.gif
Может в железе что не так? На плате стоит разъем USB-B, от компа беру землю, USB_DM и USB_DP. Завожу их через 22 Ом на РА11 и РА12 соответственно. PA10 через 10к повешен на землю. Линия USB_DP через 1.5к подтянута к 3V3. На DP вижу 3.2В, на DM 4.6. Никаких посылок невидно sad.gif


Нет, USB_DP у меня никуда не подтянута. PA10 работает на выход.
Можно поставить Device Studio посмотреть что творится на USB


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- slavokhire5   STM32F107 USB-CDC   Jul 11 2014, 15:46
- - slavokhire5   Собрал проект на основе этой статьи: http://www.pr...   Jul 14 2014, 10:31
- - slavokhire5   *я имел ввиду не usb_config.h/c, a hw_config.h/c. ...   Jul 14 2014, 11:48
|- - A. Fig Lee   Цитата(slavokhire5 @ Jul 14 2014, 07:48) ...   Jul 14 2014, 13:31
- - slavokhire5   перевел код на stm32f4discovery, там работает. вид...   Jul 14 2014, 14:11
|- - A. Fig Lee   Цитата(slavokhire5 @ Jul 14 2014, 10:11) ...   Jul 14 2014, 14:29
- - slavokhire5   Завел VBus на PA9, ситуация не поменялась. Может ч...   Jul 15 2014, 07:33
|- - A. Fig Lee   Цитата(slavokhire5 @ Jul 15 2014, 03:33) ...   Jul 15 2014, 11:13
|- - slavokhire5   Цитата(A. Fig Lee @ Jul 15 2014, 14:13) Н...   Jul 15 2014, 12:44
|- - A. Fig Lee   Цитата(slavokhire5 @ Jul 15 2014, 08:44) ...   Jul 15 2014, 13:18
- - slavokhire5   а у вас объявлен #define VBUS_SENSING_ENABLED? есл...   Jul 15 2014, 14:08
- - A. Fig Lee   usb_conf.h Цитата... /****************** USB OTG ...   Jul 15 2014, 15:08
- - slavokhire5   Были "железные" проблемы в плате. Достал...   Jul 17 2014, 12:52
- - slavokhire5   что-то задержался с выкладыванием ... прикрепляю ...   Jul 30 2014, 10:00
- - slavokhire5   Подскажите пожалуйста, как узнать, отправились ли ...   Aug 7 2014, 06:25


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

 


RSS Текстовая версия Сейчас: 25th August 2025 - 19:11
Рейтинг@Mail.ru


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