16c554 처음 세팅할때 힘들었다. 아니 삽질이었다.
Windows CE에서 16c554는 참으로 쉬운거였는데...
먼저 코드는WINCE600\PUBLIC\COMMON\OAK\DRIVERS\SERIAL에 있는것을 사용하면 되었다.
16c554의 interrupt역시 rising edge로 되어 있지만 level detect로 바꾸는게 낳았다..
몇천 바이트 받다가 한번씩 놓치는 경우가 많이 발생했다.
이 칩을 세팅할때 가장 중요한것은 Baud rate와 reg파일의 IoLen을 세팅하는것이었다.
IoLen은 Shift한값의 *8보다 큰 값을 가지고 있어야 했다.
regStride는 Shift된 값을 적용하는 것이었다. 예를 들어 1bit shift이면 2, 2bit shift이면 4로 세팅을
하여 주면 되었다.
irq는 Physical irq를 sysintr은 말 그대로 sysintr을 세팅하여 주었다.
Baud rate를 세팅하는 방법은
Divisor = (XTAL1 Clock Frequency)/(serial data rate * 16)
이렇게 계산을 하면 되었다.
|