RomanG 0 27 октября, 2009 Опубликовано 27 октября, 2009 · Жалоба Пытаемся работать с USB на МК AT32UC3A3 с использованием DMA. Задачу затрудняет практически полное отсутствие описания работы USB DMA контроллера в data sheet, а также примеров его использования. Может быть кто-нибудь сможет поделиться примерами использования USB с DMA на AVR32, желательно AT32UC3A? Также помогло бы описание использования DMA для USB, подозреваю, что у DMA USB есть некоторая специфика по сравнению с обычным DMA. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 35 27 октября, 2009 Опубликовано 27 октября, 2009 · Жалоба Есть резон заглянуть в софт, поставляемый к демонстрационной плате 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 Мб исходников и текстовых материалов, поэтому я глубоко в нем не копалась. Если того, что вам надо, там нет, то извиняйте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RomanG 0 27 октября, 2009 Опубликовано 27 октября, 2009 · Жалоба Есть резон заглянуть в софт, поставляемый к демонстрационной плате 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 0 27 октября, 2009 Опубликовано 27 октября, 2009 · Жалоба В новом фрэймворке есть примеры работы с DMA: SERVICES/USB/CLASS/AUDIO/EXAMPLES/EXAMPLE2/ . Receive data stream from the USB and send it to the SSC/I2S using the DMA Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RomanG 0 28 октября, 2009 Опубликовано 28 октября, 2009 · Жалоба В новом фрэймворке есть примеры работы с 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться