|
Сценай #1
Посылаю 3 80-byte пакета и 100 ms пауза мужду пакетами
Все три пакета приняты :-)
rxStatus = 0x0904
rxLength = 0x0050
rxStatus = 0x0904
rxLength = 0x0050
rxStatus = 0x0904
rxLength = 0x0050
Сценай #2
Посылаю 3 80-byte пакета и без паузы мужду пакетами
Вс три пакета приняты :-)
rxStatus = 0x0904
rxLength = 0x0050
rxStatus = 0x0904
rxLength = 0x0050
rxStatus = 0x0904
rxLength = 0x0050
Сценай #3
Посылаю 3 298-byte пакета и 100 ms пауза мужду пакетами
Вс три пакета приняты :-)
rxStatus = 0x0904
rxLength = 0x012A
rxStatus = 0x0904
rxLength = 0x012A
rxStatus = 0x0904
rxLength = 0x012A
Сценарий #4
Посылаю 3 298-byte пакета и без паузы мужду пакетами.
Один пакет потерян :-(
rxStatus = 0x0904
rxLength = 0x012A
!!! RxMiss = 1 !!!
rxStatus = 0x0904
rxLength = 0x012A
Сценарий #5
Посылаю 3 пакета ( 178,182 и 186) и без паузы мужду пакетами.
Один пакет потерян :-(
rxStatus = 0x0904
rxLength = 0x00B2
!!! RxMiss = 1 !!!
rxStatus = 0x0904
rxLength = 0x00B6
Пакет, который был послан в середине ( 182 = 0xB4), пропал. Похоже, что Cs8900 не буфферирует пакеты. Почему ????
Я использую очень простой код для тестирования
for (;;)
{
if (CS8900_PP_READ(PP_RxEvent) & RX_OK)
CS8900_RECEIVE();
if ( CS8900_PP_READ(0x12C) & 0x0400)
printf ("\n!!! RxMiss = 1 !!!");
}
Сниффер (Ethereal) показывает все правильно. Все пакеты пролетают нормально.
У меня три платы. Результаты на всех платах идентичны.
E-mail: info@telesys.ru