Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USB с DMA в UC3A3
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > AVR32
РРоман
Пытаемся работать с USB на МК AT32UC3A3 с использованием DMA. Задачу затрудняет практически полное отсутствие описания работы USB DMA контроллера в data sheet, а также примеров его использования. Может быть кто-нибудь сможет поделиться примерами использования USB с DMA на AVR32, желательно AT32UC3A? Также помогло бы описание использования DMA для USB, подозреваю, что у DMA USB есть некоторая специфика по сравнению с обычным DMA.
Xenia
Есть резон заглянуть в софт, поставляемый к демонстрационной плате EVK1100 с установленном на ней AT32UC3A0512. Речь идет об архиве AVR32-SoftwareFramework-AT32UC3A-1.4.0.zip или -1.5.0.rc1.zip. См. http://www.atmel.com/dyn/products/tools_ca...sp?tool_id=4192
Там в этом архиве среди всякой всячины встречаются определения (через #define) следующих функций:

Is_usb_endpoint_dma_interrupt(epdma)
Is_usb_endpoint_dma_interrupt_enabled(epdma)
Is_usb_endpoint_int_dis_hdma_req_enabled(ep)
Usb_disable_endpoint_dma_interrupt(epdma)
Usb_disable_endpoint_int_dis_hdma_req(ep)
Usb_enable_endpoint_dma_interrupt(epdma)
Usb_enable_endpoint_int_dis_hdma_req(ep)
Usb_get_dma_buffer_size()
Usb_get_dma_channel_nbr()
Usb_get_dma_fifo_word_depth()
Usb_raise_endpoint_dma_interrupt(epdma)

Судя по их названиям, есть вероятность, что USB с участием DMA там реализован. Архив слишком большой - 66 Мб исходников и текстовых материалов, поэтому я глубоко в нем не копалась. Если того, что вам надо, там нет, то извиняйте.
РРоман
Цитата(Xenia @ Oct 27 2009, 15:27) *
Есть резон заглянуть в софт, поставляемый к демонстрационной плате EVK1100 с установленном на ней AT32UC3A0512. Речь идет об архиве AVR32-SoftwareFramework-AT32UC3A-1.4.0.zip или -1.5.0.rc1.zip. См. http://www.atmel.com/dyn/products/tools_ca...sp?tool_id=4192
Там в этом архиве среди всякой всячины встречаются определения (через #define) следующих функций:

Is_usb_endpoint_dma_interrupt(epdma)
Is_usb_endpoint_dma_interrupt_enabled(epdma)
Is_usb_endpoint_int_dis_hdma_req_enabled(ep)
Usb_disable_endpoint_dma_interrupt(epdma)
Usb_disable_endpoint_int_dis_hdma_req(ep)
Usb_enable_endpoint_dma_interrupt(epdma)
Usb_enable_endpoint_int_dis_hdma_req(ep)
Usb_get_dma_buffer_size()
Usb_get_dma_channel_nbr()
Usb_get_dma_fifo_word_depth()
Usb_raise_endpoint_dma_interrupt(epdma)

Судя по их названиям, есть вероятность, что USB с участием DMA там реализован. Архив слишком большой - 66 Мб исходников и текстовых материалов, поэтому я глубоко в нем не копалась. Если того, что вам надо, там нет, то извиняйте.

Насколько мы поняли эти макросы ничего не делают. Это просто заглушки. Поддержка Атмеля отсылает к примерам по DMACA, а они, к сожалению, не отражают специфики USB.
jasper
В новом фрэймворке есть примеры работы с DMA:

SERVICES/USB/CLASS/AUDIO/EXAMPLES/EXAMPLE2/
. Receive data stream from the USB and send it to the SSC/I2S using the DMA
РРоман
Цитата(jasper @ Oct 27 2009, 16:33) *
В новом фрэймворке есть примеры работы с DMA:

SERVICES/USB/CLASS/AUDIO/EXAMPLES/EXAMPLE2/
. Receive data stream from the USB and send it to the SSC/I2S using the DMA

К сожалению в данном примере USB не использует DMA, возможно используется DMA для доступа к SSC/I2S. Сами атмелевцы сказали, что у них пока примера USB с DMA нет, поэтому и обращаюсь к народу в надежде на то, что кто-то из наших уже это делал на AVR32.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.