基于PSoC3 UDB的曼彻斯特编码及应用
数据的每一个位需要两个时钟来产生曼彻斯特编码输出,即Shift/NOP或者Load&Shift/NOP过程。当没有数据时,verilog语言描述为状态机进入IDLE阶段并输出0。 3),动态配置区设置 3,基于曼彻斯特编码的LED控制 TLS3001 是单线传输、三通道LED 恒流驱动芯片,内置12 位灰阶控制的PWM调制功能。3 个恒流输出通道所输出的电流值不受输出端负载电压影响,并提供恒定一致的输出电流,用户可以选择不同的外接电阻来调整输出电流,调整范围从0 到30mA。内置电压调节器,使芯片正常工作在5~17V 的较宽电压范围内,输出端口最大耐压达到17V。 这样,就使用前面定义的曼彻斯特模块发送编码流,以对LED灯的控制,控制软件流程如图8所示: 用示波器观测编码输出管脚的波形,其时序完全能满足TLS3001芯片的要求,如下图9所示,其中通道2为时钟输出,通道1为Manchester编码输出。
由于从F0 下载数据到A0时一次只能下载1byte 数据,为了保证曼彻斯特编码频率的一致性,在每个数据字节移位到最后1bit的同时从F0下载数据到A0,即Load&Shift阶段。
Datapath的动态配置区功能如表一所示:
在Datapath Configuration Tool中的设置如表二所示:
表二,Datapath动态区配置
4),静态配置区设置
静态配置区设置比较简单,将SHIFT SEL设置为SL从最高为开始左移;将F0 INSEL设置为BUS以表示F0作为输入FIFO;将F0 ASYNC设置为ASYNC。其在Datapath Configuration Tool中的实现如图5所示:
图5,Datapath静态区配置
这是一个基于PSoC3 UDB的应用,采用前面介绍的曼彻斯特编码模块与三通道LED 恒流驱动芯片TLS3001通信以控制LED系列。系统应用框图如图6所示,其中TLS3001_2与TLS3001_3和TLS3001_1一样都接有LED灯的。
图6,LED控制应用框图
根据TLS3001芯片要求,在芯片上电后必须先发一次同步帧,以便芯片检测通讯的波特率。同步帧的格式为:15’b111111111111111+4’b0001+11’b00000000000,在发送同步帧后必须延时一段时间再发送数据帧。在发送若干帧数据后,重新发送一次复位帧,等待1ms 之后,再发送一次同步帧, 以便芯片消除积累误差, 复位帧格式为:15’b111111111111111+4’b0100d. 数据帧格式为:15’b111111111111111+4’b0010(数据头)+ 第一个芯片39bit 数据 + 第二个芯片39bit 数据 + …… + 第n 个芯片39bit 数据。其数据时序如图7所示:
图7,LED控制时序
图8,LED软件控制流程
图9,Manchester编码波形
- 基于PSoC?4 的PMSM无传感器矢量控制(09-23)
- 基于CY8C3866的无线脑电信号采集检测系统设计(06-24)
- 解读USB控制器芯片及其在图像采集中的应用(06-06)
- 基于PSoC?4的矢量控制方案 :电流采样(06-04)
- 基于CYUSB3014高速实时数据采集系统的设(04-23)
- 一款基于CYPRESS的USB3.0总线设计(03-19)