LAT1224
LAT1224 - Rev 1.0 page 2/5
由于 S2-LP FIFO 的特性,这两个阀值的配置是不一样的。例如,当用户希望 TX
FIFO 达到 80 Bytes 时,产生 FIFO Almost Full 中断,那么 TX_AFTHR = 128 - (80-2);
而当用户希望 TX FIFO 达到 20 Bytes 时,产生 FIFO Almost Empty 中断,那么
TX_AETHR = 20。因此,如果 S2-LP 要发送 500 字节的数据,就需要利用这两个中断,
即当 FIFO Almost Full 中断触发时,及时将数据传送出去,而当 FIFO Almost Empty 中断
触发时,及时将剩余的数据填充至 TX FIFO。
2.2. RX FIFO
同理,当 RX FIFO 中的数据达到对应的阀值时,也会产生相应的中断 ,从而用户可以根
据中断做出下一步的动作;S2-LP 有专属的寄存器 FIFO_CONFIG3、FIFO_CONFIG2 来配
置这两个阀值,如下所示:
1. FIFO_CONFIG3[6:0]-->RX_AFTHR,用于设置 FIFO Almost Full 阀值
2. FIFO_CONFIG2[6:0]-->RX_AETHR,用于设置 FIFO Almost Empty 阀值
但是,相较于 TX FIFO 的阀值设置,RX FIFO 有些许不同,即当用户希望 RX FIFO 达到
80 Bytes 时,产生 FIFO Almost Full 中断,那么 RX_AF_THR = 128 - 80;而当用户希望 RX
FIFO 达到 20 Bytes 时,产生 FIFO Almost Empty 中断,那么 RX_AE_THR = 20。因此,如
果 S2-LP 要接收 500 字节的数据,就需要利用 FIFO Almost Full 中断,当其触发时,及时将
数据从 RX FIFO 取走,从而陆陆续续地将这 500 字节的数据获取到。
3. 实验结果
基于上述的内容,利用 S2-LP FIFO Almost Full 和 FIFO Almost Empty 的机制就可以实
现大数据传输的场景,测试结果如下图 2 所示,其中对应的源码文件见下述的附件:
图2. 测试结果
其中测试结果中的 DATA_CORRECT 意思是说,发送的数据与接收的数据是一致的。