MCU命令
-
Mcu
-
Printer::connect
-
send_event("klippy:mcu_identify")
-
1) Probe
-
2) mcu
-
SerialReader::connect_uart(有波特率情况)
-
-
3) temperature
-
4) tmc
-
SerialReader::connect_pipe(无波特率情况)
-
-
5)DirZCtl
-
-
-
pin_type
-
1)endstop
-
2) digital_out
-
3) pwm
-
4) adc
-
-
分支主题 3
-
klippy:ready
-
PrinterStats::HandleReady
-
BaseStats::Stats
-
ToolHead::Stats
-
mcu::check_active
-
-
-
-
-
-
MCU命令
-
1、含义
-
上位机软件发送到微控制器的,并由微控制器负责执行的底层命令
-
-
2、格式
-
见protocol文件
-
以printf风格的语法描述
-
-
3、启动命令
-
采取某些一次性的命令来配置微控制器及其片上设备
-
常见启动命令
-
set_digital_out pin=%u value=%c
-
将指定的引脚配置为数字输出GPIO,并将其设置为低电平(value=0)或高电平(value=1)
-
可以用于配置LED的初始值和配置步进驱动器微步进引脚的初始值
-
-
set_pwm_out pin=%u cycle_ticks=%u value=%hu
-
将立即配置指定的引脚,使其使用硬件的脉宽调制(PWM)和给定的cycle_ticks.
-
可以用于配置启用CPU和喷嘴冷却风扇
-
-
-
底层微控制器配置
-
微控制器的大多数命令在成功调用之前需要进行初始化设置。
-
当主机第一次连接到微控制时,它总是从获得一个数据字典开始。
-
获得数据字典后,主机将检查微控制器是否处于“已配置”状态,如果不是,就进行配置,配置包括以下几个阶段。
-
1、get_config
-
主机首先检查微控制器是否已经被配置。
-
-
2、allocate_oids count=%c
-
任何以 "config_"开头的命令都会创建一个新的微控制器对象,并将给定的oid赋予它。
-
-
3、finalize_config crc=%u
-
finalize_config命令将微控制器从未配置状态转换为已配置状态。
-
-
-
-
常见的微控制器对象
-
1、config_digital_out oid=%c pin=%u value=%c default_value=%c max_duration=%u
-
为给定的GPIO'pin'创建一个内部微控制器对象。该引脚将被配置为数字输出模式,并被设置为'value'指定的初始值(0为低,1为高)
-
-
2、config_pwm_out oid=%c pin=%u cycle_ticks=%u value=%hu default_value=%hu max_duration=%u
-
为基于硬件的PWM引脚创建一个内部对象,主机可以定期刷新
-
-
3、config_analog_in oid=%c pin=%u
-
将一个引脚配置为模拟输入采样模式。一旦配置完成,就可以使用query_analog_in命令(见下文)以固定的时间间隔对该引脚进行采样。
-
-
4、config_stepper oid=%c step_pin=%c dir_pin=%c invert_step=%c step_pulse_ticks=%u
-
命令创建一个内部步进器对象
-
-
5、config_endstop oid=%c pin=%c pull_up=%c stepper_count=%c
-
创建一个内部步进器对象
-
它用于指定限位开关的引脚,并启用 "homing "操作(见下面的endstop_home命令)
-
-
6、config_spi oid=%c bus=%u pin=%u mode=%u rate=%u shutdown_msg=%*s
-
创建了一个内部SPI对象
-
它与spi_transfer和spi_send命令一起使用
-
-
7、config_spi_without_cs oid=%c bus=%u mode=%u rate=%u shutdown_msg=%*s
-
类似于config_spi,但是没有CS引脚的定义。它对没有芯片选择线的SPI设备很有用
-
-
-
常用运行命令
-
1、set_digital_out_pwm_cycle oid=%c cycle_ticks=%u
-
将数字输出引脚(由config_digital_out创建)配置为使用 "软件PWM"
-
-
2、queue_digital_out oid=%c clock=%u on_ticks=%u
-
将安排在设定的时钟时间内改变数字输出GPIO引脚。要使用这条命令,必须在微控制器配置过程中发出具有相同‘oid’参数的 'config_digital_out' 命令
-
-
3、queue_pwm_out oid=%c clock=%u value=%hu
-
安排改变一个硬件PWM输出引脚
-
-
4、query_analog_in oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u min_value=%hu max_value=%hu
-
设置了一个对模拟输入的循环采样
-
-
-
步进器命令
-
1、queue_step oid=%c interval=%u count=%hu add=%hi
-
指定的步进电机输出'count'个步数,'interval'是每步之间的时钟数间隔
-
-
2、set_next_step_dir oid=%c dir=%c
-
指定了下一个queue_step命令将使用的dir_pin的值。
-
-
3、reset_step_clock oid=%c clock=%u
-
通常情况下步进时序是相对于给定步进的上一步。这条命令重置了时钟,使下一步是相对于提供的 'clock' 时间。通常主机只在打印开始时发送此命令。
-
-
4、stepper_get_position oid=%c
-
使微控制器生成一个 "stepper_position "响应消息,其中包含步进器的当前位置。该位置是dir=1时产生的总步数减去dir=0时的总步数
-
-
5、endstop_home oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u pin_value=%c
-
用于步进电机 "homing"操作
-
-
-
运动队列
-
每个queue_step命令都利用了微控制器 "move queue "中的一个条目。这个队列是在它收到 "finalize_config "命令时分配的,它在 "config "响应信息中报告可用队列条目的数量
-
在发送queue_step命令之前,主机有责任确保队列中有可用空间。这需要主机通过计算每个queue_step命令完成的时间并相应地安排新的queue_step命令来实现
-
-
SPI命令
-
1、spi_transfer oid=%c data=%*s
-
使微控制器向 'oid '指定的spi设备发送 'data' ,并生成一个 "spi_transfer_response "的响应消息,其中包括传输期间返回的数据。
-
-
2、spi_send oid=%c data=%*s
-
这个命令与 "spi_transfer "类似,但它不产生 "spi_transfer_response "消息。
-
-
-
-
-

浙公网安备 33010602011771号