USER GUIDE / DATA MOVEMENT & TIMERS / THERMAL PRINTER / SOFTWARE OPERATION GUIDE
软件操作指南
软件配置需要按照本章节描述的先后顺序配置。
动态配置
动态配置由 PDMA 将相关动态配置数据写入 TPC FIFO 实现,要求数据 word 对齐,PDMA 操作详见 PDMA 章节,动态配置如下:
打印头动态配置
| 标志 | 描述 |
|---|---|
| shift data | 打印数据 |
| dst data | 加热时间 |
| 加热触发下一次锁存前的等待时间 | |
| 加热信号是否输出 | |
| 自动控制模式下,支持动态设置,锁存是否触发下一次加热,若不触发下一次加热则上报主流程控制单元加热完成状态,并使主流程进入 IDLE |
步进电机 0
| 标志 | 描述 |
|---|---|
| sm0 data | 动态配置循环步每步时长 |
步进电机 1
| 标志 | 描述 |
|---|---|
| sm1 data | 动态配置循环步每步时长 |
数据输出单元 DMA 请求
数据输出单元 DMA 请求数据为所要移位输出的数据,word 对齐,32 位有效。
数据总长度会根据 sft_byte_len 以及 channel num 的不同而不同,为所有使能通道的总和,即 sft_byte_len x channel_num。通过 PDSBC 寄存器配置通道数和 sft_byte_len。数据格式如下:
| 标志 | 描述 |
|---|---|
| shift_data | 移位输出数据 |
加热单元 DMA 请求
加热单元 DMA 请求数据为加热时间设置,以及触发下一次加热的等待时间,word 对齐,每个时间设置需要 32bit,0~23bit 为时间,24~31 为状态控制以及保留位。
数据总长度会根据 DST channel num 的不同而不同,通过 PDDBC 寄存器配置加热通道数。数据格式如下:
| 标志 | 描述 |
|---|---|
| Reserved | 保留位 |
| lat_trigger_nxt_dst | 锁存是否触发下一次加热,为 0 时下一次加热不由锁存触发且上报主流程控制单元加热完成状态使主流程进入 IDLE |
| dst_wait_time | 本次加热完成后触发下一次锁存前的等待时间 |
| dst_enable | 是否输出加热信号。1:真加热;0:假加热。 |
| dst_time | 加热时间 |
步进电机 DMA 请求
步进电机 DMA 请求数据为循环步每步时间,32bit 有效,word 对齐。数据格式如下:
| 标志 | 描述 |
|---|---|
| step_cnt | 循环步每步时长 |
基础配置
数据移位输出
数据移位输出基础设置:移位时钟相位,时序(setup,hold),空闲状态电平,输出大小端转换,输出通道数量(1~16),单次输出长度(输出通道数>4:max 128 byte,输出通道数<4:max 256 byte),触发后等待时间。
涉及寄存器:PDSBC, PDSWC
锁存
锁存基础设置:空闲状态电平,触发后等待时间。
涉及寄存器:PDLBC,PDLWC,PDLAC
加热
热控基础设置:空闲状态电平,输出通道数量(1~8),触发后等待时间,最大加热时间。
涉及寄存器:PDDBC,PDDWC,PDDMAC
步进电机
步进电机基础设置:电机输出模式,空闲状态电平,开始步电平,循环步电平,结束步,开始步时长,循环步步数(1~64),循环步索引中断屏蔽,结束步时长,步最大时长。
涉及寄存器:PM0BC, PM0SSC, PM0ESC,PM0MSC,PM0RIM0, PM0RIM1 PM1BC, PM1SSC, PM1ESC,PM1MSC, PM1RIM0, PM1RIM1 PMCMS, PMCILC, PMCSLC, PMCELC,PMCnRLC0, PMCnRLC1
看门狗
可参考以下流程:
复位默认 WDT 计数关闭。
清零 WDT 计数。
配置 WDT 计数全值和半值。
配置 WDT 计数频率。
配置 WDT 是否触发中断。
配置 WDT 计数使能,并选择 RTC 时钟源。
中断
PINTM 负责中断屏蔽。
模式操作
TPC 打印头手动模式
按照顺序进行配置:
开始
进行打印头基础设置,参考 1.1.4.2 章节。
进行打印头 Shift Data FIFO 和 Dst Timer FIFO 的 DMA 设置。
设置 PDENS[5:2],使能手动模式以及 shift data,latch 和 dst 模块。
设置 PDSMC[0],开始数据移位输出,等待 PINT[1] 置位,等到 PINT[1] 后写 1 清除。
设置 PDLMC[0],开始锁存,等待 PINT[2] 置位,等到 PINT[2] 后写 1 清除。
设置 PDDMC[0],开始加热,等待 PINT[3] 置位,等到 PINT[3] 后写 1 清除。
停止
手动模式支持 quick stop,quick stop 设置后立即进入 IDLE,分别通过 PDSMC,PDLMC,PDDMC 的 Bit1 设置。
TPC 打印头自动非对齐模式
按照顺序进行配置:
开始
进行打印头基础设置,参考 1.1.4.2 章节。
进行打印头 Shift Data FIFO 和 Dst Timer FIFO 的 DMA 设置。
设置 PDENS[0],PDENS[5:3],使能自动非对齐模式以及 shift data,latch 和 dst 模块。
设置 PDDMC[0],开始自动非对齐流程。
停止
quick stop:立即停止,进入 IDLE,通过设置 PDDMC[1] 实现。
TPC 步进电机手动单步模式
按照顺序进行配置:
开始
进行步进电机基础设置,参考 1.1.4.2 章节。
进行步进电机 Timer FIFO 的 DMA 设置。
设置 PMnENS,使能手动单步模式以及电机 IO。
设置 PMnMC[0] 开始,等待 PINT 步进电机 FINISH 状态置位,单步运行完成。
停止
手动模式只支持 quick stop,quick stop 设置后立即进入 IDLE,通过设置 PMnMC[1] 实现。
手动单循环步骤完成后就停止,并上报 FINISH,不需要额外的操作。
TPC 步进电机自动非对齐模式
按照顺序进行配置:
开始
进行步进电机基础设置,参考 1.1.4.2 章节。
进行步进电机 Timer FIFO 的 DMA 设置。
设置 PMnENS,使能自动非对齐模式以及电机 IO。
设置 PMnMC[0] 开始。
停止
quick stop:立即停止,进入 IDLE,通过设置 PMnMC[1] 实现。
TPC 自动对齐模式
对齐模式下,dotline 加热完成和 stepmoto 循环步都完成后才发起下一个 dotline 的打印,以及步进电机的下一个循环步。按照顺序进行配置。
开始
进行打印头基础设置,参考 1.1.4.2 章节。
进行步进电机基础设置。
进行打印头 Shift Data FIFO 和 Dst Timer FIFO 的 DMA 设置。
进行步进电机 Timer FIFO 的 DMA 设置。
设置 PDENS,使能自动对齐模式以及 shift data,latch 和 dst 模块。
设置 PMnENS,使能自动对齐模式以及电机 IO。
设置 PFCENS,使能自动控制流程。
设置 PAFC,开始。
停止
quick stop,当 FIFO 空时,完成。