|
SAM7x256 & USB |
|
|
|
Jul 19 2009, 07:40
|
Частый гость
 
Группа: Участник
Сообщений: 119
Регистрация: 3-07-06
Пользователь №: 18 528

|
Код на прием такой Код uint AT91F_UDP_Read(AT91PS_CDC pCdc, char *pData, uint length) { AT91PS_UDP pUdp = pCdc->pUdp; uint packetSize, nbBytesRcv = 0, currentReceiveBank = pCdc->currentRcvBank; if ((pUdp->UDP_CSR[AT91C_EP_OUT] & AT91C_UDP_RX_DATA_BK0)||(pUdp->UDP_CSR[AT91C_EP_OUT] & AT91C_UDP_RX_DATA_BK1)) { return 0;//то есть, если не было ни одного пакета принято, то просто выходим } while (length) { if ( !AT91F_UDP_IsConfigured(pCdc) ) break; if ( pUdp->UDP_CSR[AT91C_EP_OUT] & currentReceiveBank ) { packetSize = MIN(pUdp->UDP_CSR[AT91C_EP_OUT] >> 16, length); length -= packetSize; if (packetSize < AT91C_EP_OUT_SIZE) length = 0; while(packetSize--) pData[nbBytesRcv++] = pUdp->UDP_FDR[AT91C_EP_OUT]; pUdp->UDP_CSR[AT91C_EP_OUT] &= ~(currentReceiveBank); if (currentReceiveBank == AT91C_UDP_RX_DATA_BK0) currentReceiveBank = AT91C_UDP_RX_DATA_BK1; else currentReceiveBank = AT91C_UDP_RX_DATA_BK0;</P> <P> } } pUdp->UDP_CSR[AT91C_EP_OUT] &= ~(AT91C_UDP_TXCOMP); pCdc->currentRcvBank = currentReceiveBank; return nbBytesRcv;</P> <P>} код на передачу Код uint AT91F_UDP_Write(AT91PS_CDC pCdc, const char *pData, uint length) { AT91PS_UDP pUdp = pCdc->pUdp; uint cpt = 0;</P> <P> if ((pUdp->UDP_CSR[AT91C_EP_IN] & AT91C_UDP_TXPKTRDY)) { return 0;//если усб готово к передаче, то начинаем её } pUdp->UDP_CSR[AT91C_EP_IN] &= ~(AT91C_UDP_TXCOMP); cpt = MIN(length, AT91C_EP_IN_SIZE); length -= cpt; while (cpt--) pUdp->UDP_FDR[AT91C_EP_IN] = *pData++; pUdp->UDP_CSR[AT91C_EP_IN] |= AT91C_UDP_TXPKTRDY;</P> <P> while (length) { cpt = MIN(length, AT91C_EP_IN_SIZE); length -= cpt; while (cpt--) pUdp->UDP_FDR[AT91C_EP_IN] = *pData++; while ( !(pUdp->UDP_CSR[AT91C_EP_IN] & AT91C_UDP_TXCOMP) ) if ( !AT91F_UDP_IsConfigured(pCdc) ) return length; pUdp->UDP_CSR[AT91C_EP_IN] &= ~(AT91C_UDP_TXCOMP); while (pUdp->UDP_CSR[AT91C_EP_IN] & AT91C_UDP_TXCOMP); pUdp->UDP_CSR[AT91C_EP_IN] |= AT91C_UDP_TXPKTRDY; } return length; } в основном цикле я поочередно вызываю сначала чтение, потом запись. И получается, что посылка отправляется только тогда, когда произойдет прием посылки. Если убрать чтение в основном цикле, то передача идет всегда. Почему так? Мне нужно принимать контроллером всего 2 байта, а передавать 256, друг за другом. Причем 2 байта могут быть посланы контроллеру не всегда. получается следующее Код pCDC.Read(&pCDC, ((char *) &data_comp), 2); if ((length>256)) { pCDC.Write(&pCDC, data, length); } обнаружилось, что данные все таки доходят до микроконтроллера, а вот он на комп ничего не отправляет. убирая строчку чтения, получаем, что данные на комп все таки идут
|
|
|
|
Сообщений в этой теме
Timofey SAM7x256 & USB Jul 19 2009, 07:40 aaarrr Кодif ((pUdp->UDP_CSR[AT91C_EP_OUT... Jul 19 2009, 08:08 Timofey Точно .... Мда, стыдно стало ...
Спасибо. Тема зак... Jul 19 2009, 08:23 prottoss Всем доброго времени суток. Не стал открывать нову... Oct 29 2009, 05:28 aaarrr В процедуре установки адреса криминала действитель... Oct 29 2009, 12:47 prottoss Цитата(aaarrr @ Oct 29 2009, 19:47) Уж не... Oct 29 2009, 13:06  aaarrr Цитата(prottoss @ Oct 29 2009, 16:06) Да ... Oct 29 2009, 13:19   prottoss Цитата(aaarrr @ Oct 29 2009, 20:19) Распе... Oct 29 2009, 14:19    aaarrr Цитата(prottoss @ Oct 29 2009, 17:19) Ну ... Oct 29 2009, 15:04     prottoss Цитата(aaarrr @ Oct 29 2009, 22:04) Т.е. ... Oct 29 2009, 15:31 aaarrr Пардон, по невнимательности не понял источник проб... Oct 29 2009, 15:56 prottoss Цитата(aaarrr @ Oct 29 2009, 22:56) Пардо... Oct 29 2009, 16:16 sergeeff В свое время, занимаясь отладкой USB на at91rm9200... Oct 29 2009, 17:00 prottoss Цитата(sergeeff @ Oct 30 2009, 00:00) В с... Oct 29 2009, 17:10 aaarrr Цитата(sergeeff @ Oct 29 2009, 20:00) В с... Oct 29 2009, 17:12  prottoss Цитата(aaarrr @ Oct 30 2009, 00:12) Жжоте... Oct 29 2009, 17:19   aaarrr Цитата(prottoss @ Oct 29 2009, 20:19) пол... Oct 29 2009, 17:22 sergeeff Увы, я нанятый работник на частной фирме. Посему к... Oct 29 2009, 17:13 prottoss Цитата(sergeeff @ Oct 30 2009, 00:13) Увы... Oct 29 2009, 17:21 aaarrr 2 prottoss:
Еще присутствует косяк с передачей де... Oct 29 2009, 17:20 prottoss Цитата(aaarrr @ Oct 30 2009, 00:20) Еще п... Oct 29 2009, 17:29 sergeeff Мои наблюдения показали, что в atmel'овских пр... Oct 29 2009, 19:24 aaarrr Главное не наступить на грабли, любезно предоставл... Oct 29 2009, 21:10 prottoss Цитата(aaarrr @ Oct 30 2009, 04:10) Главн... Oct 29 2009, 21:30  aaarrr Цитата(prottoss @ Oct 30 2009, 00:30) Ста... Oct 29 2009, 21:37  mikki Цитата(prottoss @ Oct 30 2009, 01:30) Кур... Oct 30 2009, 01:22   AHTOXA А фраза "чёрный кот" - скрытая пропаганд... Oct 30 2009, 02:31 overloaded Цитата(aaarrr @ Oct 30 2009, 00:10) Испол... Oct 31 2009, 03:23  prottoss Цитата(overloaded @ Oct 31 2009, 10:23) А... Oct 31 2009, 05:51   overloaded Это я какраз видел.. И этот насколько я понимаю но... Oct 31 2009, 14:59    singlskv Цитата(overloaded @ Oct 31 2009, 17:59) В... Oct 31 2009, 15:42  aaarrr Цитата(overloaded @ Oct 31 2009, 06:23) А... Oct 31 2009, 16:55 prottoss Поднял наконец то на SAM7X USB полностью на прерыв... Nov 8 2009, 19:45 aaarrr Цитата(prottoss @ Nov 8 2009, 22:11) Это ... Nov 8 2009, 19:46  prottoss Цитата(aaarrr @ Nov 9 2009, 02:46) Вообще... Nov 8 2009, 19:52   aaarrr Цитата(prottoss @ Nov 8 2009, 22:52) Где ... Nov 8 2009, 20:05    prottoss Цитата(aaarrr @ Nov 9 2009, 03:05) По спе... Nov 8 2009, 20:11 prottoss Продолжение темы.
Решил оптимизировать прием данны... Dec 12 2009, 06:36 aaarrr Напишите, как оно по-вашему должно работать, и как... Dec 12 2009, 13:01 prottoss Цитата(aaarrr @ Dec 12 2009, 20:01) Напиш... Dec 12 2009, 15:03 ZiB Всем, день добрый!
Прошу извинить что не много... Dec 14 2009, 06:09 aaarrr Цитата(ZiB @ Dec 14 2009, 09:09) Можно ли... Dec 14 2009, 14:16 sonycman Цитата(ZiB @ Dec 14 2009, 10:09) Можно ли... Dec 14 2009, 20:57 ZiB Если я правильно понимаю, то для режима Bulk макси... Dec 15 2009, 03:28 sonycman Цитата(ZiB @ Dec 15 2009, 07:28) Если я п... Dec 15 2009, 06:22 ZiB Ух, разобрался.
Согласно спецификации на USB 2.0 F... Dec 15 2009, 09:50 Maximm Цитата(ZiB @ Dec 15 2009, 12:50) Ух, разо... Jan 25 2011, 13:52 kichnamid Прошу прощения за вклинивание в эту тему, может, п... Feb 2 2011, 11:24 Maximm Цитата(kichnamid @ Feb 2 2011, 14:24) Про... Feb 3 2011, 15:10 kichnamid у меня к ножке DP сразу припаян пулап резистор. на... Feb 4 2011, 10:28 kichnamid выявил, что выставляется прерывание ENDBUS, resume... Feb 14 2011, 11:33 MiDV Может кто знает, как реализовать хост на SAM7X256.... Apr 1 2011, 07:23 aaarrr Никак. Можно только подключить внешнюю микросхему ... Apr 1 2011, 09:27 boyko-alexey Люди, может кто поделится немудрёным кодом USB-MSD... May 16 2011, 21:02 kovigor Цитата(boyko-alexey @ May 17 2011, 00... May 17 2011, 08:22  boyko-alexey Цитата(kovigor @ May 17 2011, 12:22) Есть... May 17 2011, 08:36   kovigor Цитата(boyko-alexey @ May 17 2011, 11... May 17 2011, 08:40    boyko-alexey Цитата(kovigor @ May 17 2011, 12:40) По о... May 17 2011, 08:53     kovigor Цитата(boyko-alexey @ May 17 2011, 11... May 17 2011, 09:23
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|