Микроконтроллеры | Кто работал с DSK5402 |
|
---|---|---|
помогите понять почему при подключение к каналу DMA регистр DRR11 все идеть по путем а при подключение регистра DRR10 с типом синхронизации REVT0 '0001' не чего не идеть кроме сплошного писка вообщем то не могу работать с портом McBSP0 DAA DSK5402 помогите понять пожалуйста . |
|
|
Проект в студию. |
|
|
Здравствуйте спасибо Вам за то, что ответили мне уже вторая неделя идет, как я переехал в ад не знаю что делать как сказал борт DSK5402 посмотрел примеры, работающие с DAA (тел. линия) они все работают но хотелось бы подключить регистры DRR10 и DXR10 к каналом DMA. Программа, которой отправляю должен принимать данные от DRR11 McBSP1 с участием DMA и должен передать DRR10 с участием DMA (DAA). Помогите, пожалуйста, разобраться. С большим уважением Пелинг. |
|
|
Здравствуйте спасибо Вам за то, что ответили мне уже вторая неделя идет, как я переехал в ад не знаю что делать как сказал борт DSK5402 посмотрел примеры, работающие с DAA (тел. линия) они все работают но хотелось бы подключить регистры DRR10 и DXR10 к каналом DMA. Программа, которой отправляю должен принимать данные от DRR11 McBSP1 с участием DMA и должен передать DRR10 с участием DMA (DAA). Помогите, пожалуйста, разобраться. С большим уважением Пелинг. |
|
|
Извиняюсь ошыбочка : Программа, которой отправляю должен принимать данные от DRR10 McBSP0 с участием DMA и должен передать DХR11 McBSP1 с участием DMA (DAA). |
|
|
Ответьте не несколько вопросов. 1) С какой частью оборудования связан каждый из ваших буферов RX_BUF, TX_BUF, t_buffer, r_buffer? 2) Что вы хотите сделать в итоге, и что сделали на сегодняшний день? 3) Что вы хотите сделать в прерываниях _DMA2_int и _DMA3_int? 4) Что вы хотите сделать в основной программе? |
|
|
r_buffer - это приемный буфер 2 го канала ДМА (при). |
|
|
На вопросы поточнее ответьте 1) Что сейчас делает программа и что вы хотите чтобы она делала? (Не надо в общем, глобально понятно - модем) 2) Опишите, что вы хотите сделать в прерываниях? |
|
|
В данный момент программа делает : *********************************************************************************************************************************************** Насчет прерываний при _DMA2_int : копир-ю из приемного буфера ДМА2 в какойта (RX_buf) для дальнейшей обработки за одно копир-ю обработанной данные с (TX_buf) к буферу канала передачи ДМА3. |
|
|
Для дуплекса добавьте ещё два канала дма и 4 буфера, и будет вам счастье. Замечания по существующей программе такие. 1) Зачем вы в обоих прерываниях копируете оба буфера? В дма2инт вы приняли только один буфер, а копируете два. Также и в дма3инт. 2) Почему в дма3инт вы копируете 3 слова, а не 4? 3) Операции присваивания в основной программе обычно осуществляются через аккумы, прерывания их могут портить, так что надо принимать меры, я вам уже писал про это. То же самое касается флагов и т.п. Не знаю полностью вашей задачи, но ваш подход к построению системы мне кажется сомнительным. Обычно берутся те же два буфера, скажем, rxdaa1 и rxdaa2 (на мой взгляд, ваши обозначения RX_BUF и r_buffer очень несуразные) и пока дма2 пишет в один буфер rxdaa1, второй буфер rxdaa2 обрабатывается в основной программе. После того, как приёмный буфер заполнен, возникает дма2-прерывание, в котором адреса приемных буферов меняются местами и весь процесс повторяется по-новой. Точно так же надо поступить и с передающими буферами, скажем, txaud1 и txaud2. Если в каком-либо направлении обработка не предусмотрена, то можно обойтись двумя буферами, в один буфер, скажем, принимается информация, из другого - выдаётся. А гонять огромные массивы из одного места памяти в другое не стоит, так всё время проца потратите впустую. |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |