阅读:970回复:1
16c554 uart接收出错
为什么tlc16554在不是fifo模式下,或者fifo的中断触发数量为1的时候,接收数据都正确,而当使用fifo模式,同时触发数量大于1,则数据接收出错,如用超级中断发字符O(不是零,是英文的大写o)。但是其他的数据好像都对。似乎只有字节的低4位全是1的时候出错,
求助 |
|
沙发#
发布于:2004-09-07 16:48
您好!
我目前也在做这个TL16C554驱动的,碰到了很大的困难,很难解决!! 我碰到的困难就是:我目前可以对芯片的寄存器什么的读写,而且都是正确的,可是,无论我用PC机怎么给它发数据,它一点反应都没有,什么中断都没有产生!我硬件上是这样设置的:我用CPU的总线跟它通信,(这个通信是成功的),然后我只引出了A通道的RXA和TXA两根线,把它链接到MAX3232芯片上,然后把3232的输出数据引到PC机上,其他脚是浮着的。 我软件的初始化设置是这样的: Registera->LCR = 0x80;/*进入BAUT率的设置*/ udelay(100); registera->RBR = 0x06; /*其实是DLL,设为19200 */ udelay(100); registera->IER = 0; /*DLM*/ udelay(100); registera->LCR = 0x03;/*设为8bit,关闭BAUT率设置 */ udelay(100); registera->MCR = 0x08;/*打开外部中断*/ udelay(100); registera->IER = 0x07;/*设置接收和发送数据中断使能*/ udelay(100); registera->FCR = 0x7;/*打开并设置FIFO*/ 初始化完毕后,系统等待中断,在刚设置完FIFO的时候,来了一个中断,表示FIFO发送BUFFER是空的,读取了IIR寄存器后,中断消失。 但是无论我怎么给它发信号,芯片一点中断也没有,寄存器也没有显示有接受到一个数据。 我换了个芯片还是这样,您说可能是什么原因呢,希望您能帮帮我,我不胜感激!! |
|