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

 
 
> помогите c USB в проекте на at91sam7, SPI, TWI, PLL, TC, USART реализовано
SavageForest
сообщение Sep 7 2010, 08:05
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 2-12-09
Пользователь №: 54 010



никак не могу прикрутить нормально УСБ к проекту. по УСАРТу все работает, но из-за его медленности возникают глюки.
вкратце о проекте:
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)
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  USB_at91sam7s_SPI.rar ( 281.9 килобайт ) Кол-во скачиваний: 23
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dron_Gus
сообщение Sep 9 2010, 13:33
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Проверьте упаковку структур с дескрипторами. Проверьте порядок байт (если есть что-то больше байта в дескрипторах).
И я бы не стал вешать светодиоды на сигнальные линии USB.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
SavageForest
сообщение Sep 13 2010, 06:25
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 2-12-09
Пользователь №: 54 010



Цитата(Dron_Gus @ Sep 9 2010, 17:33) *
Проверьте упаковку структур с дескрипторами. Проверьте порядок байт (если есть что-то больше байта в дескрипторах).
И я бы не стал вешать светодиоды на сигнальные линии USB.
дело в том, что у меня не идет даже стандартный проект "usb-device-cdc-serial-project-at91sam7s-ek". естественно пины в board.h поменяны на нужные.
различные вариации с полярностью, подтяжкой, открытым коллектором пина на PPUP не дают желаемого результата.
устройство либо не определяется вовсе, либо в дескрипторах сплошные нули (как было описано выше).
пробовал и С диодом на D+ через транзистор, и БЕЗ них, и даже просто через 1,5к на 3,3в заводил (так в спецификации на USB интерфейс описано определение Full- и Low- speed). эффект - ОС что-то видит, но в дескрипторах нули.
осциллограмма показывает, что ПК шлет запрос дескрипторов на устройство 4 раза и, по всей видимости после прихода сплошных нулей, принимает решение о бесполезности дальнейшего опроса.
при обновлении списка USB устройств через USB View устройство не опрашивается (хотя должно, если оно хоть как то определено).

может я просто спалил трансивер??? =)

Сообщение отредактировал SavageForest - Sep 13 2010, 06:38
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 09:40
Рейтинг@Mail.ru


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