[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