[HWnews] Problem s UARTom 16C550 a WinCE

Martin mmz@zoznam.sk
Čtvrtek Březen 18 09:56:26 CET 2004


Zdravim,
neocakavam ze moj problem vzbudi podobny zaujem ako tema kapacitoru, ale 
mozno niekto poradi...

Robim periferiu k PDA (iPAQ), komunikujucu cez 16C550 zapojenu na 
CompactFlash konektor. Vsetko chodilo, ale z novou verziou iPAQ-u sa 
vyskytol problem. Nastastie po navesani  analyzatora sa mi podarilo 
presne identifikovat pricinu, akurat neviem ako ju odstranit :-)   
Problem je v tom, ze 16C550 generuje IRQ na uroven (znuluje sa po 
vycitani reg.identifikacie prerusenia) a  PDA sa tvari ze reaguje na 
hranu a navyse ze nuluje prerusovaci flag pri odchode z prerusovacej 
rutiny! Pokial ma vysielany paket o1B viac ako je fronta 16C550, teda 
17, 33, 49 atd.  bajtov, dojde k neprijemnej situacii, ktorej 
zjednoduseny popis vyzera nasledovne:

- pda zapise 16B do uartu
- po odvysielani sa vystavi IRQ
- pda vojde do prerusenia, precita register ident. prerusenia (zhodi 
IRQ) a zapise 17-ty bajt
- 16C550 ho presunie do shift registra a kedze viac bajtov vo fronte 
nema, vystavi znovu IRQ
- pda vyskoci z prerusenia cim vynuluje prerusovaci flag
- druha strana korektne prijme paket a odpovie, ale pda nic nechyti, 
lebo IRQ zostalo vystavene este z konca vysielania
To ze na jednej verzii to chodilo a inej nie, je dane v inak 
vychadzajucom  casovani. U nechodiveho sa vyskytuje kriticke IRQ za cca 
2us od posledneho pristupu pda k uartu a na chodivom cca 4us. Z toho 
usudzujem, ze v druhom pripade stihne vyskocit z prerusenia kym saIRQ 
vystavi.

Ja robim len HW, ale softweristi mi povedali, ze oni nemaju moznost 
nastavit aby pda reagovalo tak ako treba - na uroven a nie na hranu. 
Takze ak maju pravdu, chyba sa zda byt v driveroch. Bolo mi vysvetlene, 
ze WinCE sa nepredavaju samostatne, ale dodavaju sa spolu s vyrobkom. To 
by znamenalo reklamovat chybu u HP. Nechce sa mi verit, ze by nikto iny 
s tym nemal takyto problem.

Inak obist sa to da napr. zarovnanim vysielanych paketov napr. na parny 
pocet bajtov, ale zda sa mi to chore...





Další informace o konferenci Hw-list