2017-12-11から1日間の記事一覧

SprinterのHEATER_DUTY_FOR_SETPOINTマクロ

定義 #define HEATER_DUTY_FOR_SETPOINT(setpoint) ((int)((187L*(long)setpoint)>>8)-27) シミュレーション function heater clear; close all; %x=0:65535; x=0:255; y=heater_duty_for_setpoint(x); plot(x,y,'b-'); title('HEATER DUTY FOR SETPOINT'); …

Xilinx SDKでmillis()の実装

https://0xstubs.org/measuring-time-in-a-bare-metal-zynq-application/ #include "xparameters.h" #include "xtime_l.h" uint32_t millis(void) { // unsigned int millis = ~TMR_MILLIS; XTime_GetTime(&tCurrent); u32 micros = 1.0 * (tCurrent) / (COU…

12ビットXADC向けのサーミスタLUTを作成する

createTemperature.pyを使う設定パラメータ r0=100000.0 (100kΩ:25℃でのサーミスタの抵抗値R25) t0=25(基準温度25℃) r1=0.0 (低温時の発熱損失を押さえるための分流抵抗→使用しない) r2=4700.0(4.7kΩ分圧抵抗) beta=4267(サーミスタの定数B:デー…

Sprinterのルックアップテーブルを利用した温度測定の原理

ここに記載がある http://hydraraptor.blogspot.jp/2007/10/measuring-temperature-easy-way.html基本的にはプルアップ抵抗R2だけでいい。R1は温度が低いときに抵抗が大きくなって発熱損失が大きくなるので、それを減らすためにつけてある。 →追記:ジュール…

Sprinterでサーミスタのルックアップテーブルの作成

本家のcreateTemperature.pyには--max-adcを引数として与えられるような記載があるが、オプション解析が実装されていない点に注意(10bitの1023から変更したい時はハードコードする必要あり)./createTemperatureLookup.py --r0=100000 --t0=25 --r1=0 --r2=…

ZYNQでADCの値に応じてPWM出力を調整

制約ファイル set_property IOSTANDARD LVCMOS33 [get_ports vauxn0] set_property IOSTANDARD LVCMOS33 [get_ports vauxp0] set_property IOSTANDARD LVCMOS33 [get_ports vauxn1] set_property IOSTANDARD LVCMOS33 [get_ports vauxp1] set_property IOSTA…