никак не могу прикрутить нормально УСБ к проекту. по УСАРТу все работает, но из-за его медленности возникают глюки.
вкратце о проекте:
1. 24-битный SPI интерфейс связан с ПЛИСкой, которая гоняет данные по разным девайсам
2. из TWI памяти при старте считываются параметры работы контроллера
3. PLL задает рабочую частоту для ПЛИСки (на интерфейс ниже)
4. TC генерирует прерывание на закачку/скачку данных (МК<->ПЛИС)
5. USART управляет всем этим безобразием (команды там всякие на запись, чтение, запрос состояния) это еще доработать нужно будет
так вот. я никак не могу прикрутить АТМЕЛовский стартовый СДС-конвертер к проекту. точнее он был взят за основу(стартап и функции УСБ), затем он был переделан на работу с SPI через PDP.
в дальнейшем планирую использовать как режим работы USB<->SPI конвертера через драйвер виртуального СОМ-порта (должно получиться что-то типа USB-SPI моста).
я уже недели 2 бъюсь над проблемой запуска USB в данном проекте.
прилагаю сам проект и схему обвеса USB. в реале на обвязке отсутствует светоИдиод и резюк обведенные желтым.
помогите люди добрые. может где в железе проблема? или в коде накосячил?
ЗЫ: сильно не пинайте за корявости в коде =)
при запкске проекта в дебаге следующее:
CODE
String: -- USB Device RET-CROSS Project 1.5 --
String: -- RET-CROSS v1.3 beta
String: -- Compiled: Sep 7 2010 10:36:16 --
String:
String:
String: ------PLL---------------
String: PLL PA 23
String: PLL configured on 0 Channel with 1000000 Hz
String: ------PLL---------------
String:
String: ------PLL---------------
String: PLL PA 2
String: PLL configured on 2 Channel with 1000000 Hz
String: ------PLL---------------
String:
String: ------TWI---------------
String: TWI Configuration
String: Using CKDIV = 0 and CLDIV/CHDIV = 55
String: Configuration succesful
String: ------TWI---------------
String:
String: reading configuration --->
String: --Readed from Addr 0
String: mode = 12
String: StartBit= 2
String: EndBit= 5
String: DataP1S = 1
String: DataP1E = 0
String: DataP2S = 0
String: DataP2E = 0
String:
String: Readed
String: ------SPI---------------
String: SPI interface configured with parameters:
String: CLK: 10000000 Hz
String: ChipSelectBefore: 0 msec
String: DelayBetween: 0 msec
String: ------SPI---------------
String:
String: ------USART-------------
String: USART Configuration
String: USART Interrupt 'RXRDY' Enabled
String: USART Configuration succesful
String: ------USART-------------
String:
String: ConfigureT2Recheck succesful
String: -I- CDCDSerialDriver_Initialize
String: USBD_Init
String: VBus configuration
String: VBUS conn
String: VBUS+
String: VBUS dconn
String: VBUS-
String: VBUS-
String: VBus configured
String: USBD_Connect
String: WAITING CONFIG!
после подключения VBUS:
Код
String: VBUS conn
String: VBUS+
при контакте PPUP:
Код
String: Res S
после откоючения USB:
Код
String: VBUS dconn
String: VBUS-
String: EoBRes CfgEpt0
String: Susp
String: Res S
String: P
String:
String: Susp
далее все повторяется с "Resume callback" при втыкании USB.
самое страшное - винда девайс не видит!!! (юзаю USB View)
Эскизы прикрепленных изображений