Raspberry pi
ATLAS&LGAD用 Raspberry piのリスト
Update:2022/12/09
No |
type |
KEK registration name |
MAC address |
location |
comment |
eg |
Raspberry Pi 4 Model B |
atlasraspX |
|
Fuji B2 |
using for CYRIC |
1 |
Raspberry Pi 3 Model B+ |
kekrasp04 |
b8:27:eb:c8:fb:19 |
Fuji B2 |
i2c communication pin dead |
2 |
Raspberry Pi 3 Model B v1.2 |
kekrasp07 |
b8:27:eb:09:00:c2 |
Fuji B2 |
Using for ITk pix module TB setup |
3 |
Raspberry Pi 4 Model B |
kekrasp05 |
dc:a6:32:90:67:38 |
Fuji B2 |
Using for thermometer in bath |
4 |
|
|
|
|
|
5 |
|
|
|
|
|
6 |
|
|
|
|
|
7 |
|
|
|
|
|
8 |
|
|
|
|
|
9 |
|
|
|
|
|
10 |
|
|
|
|
|
11 |
|
|
|
|
|
Raspberry piのOS インストール
SDカードにRaspbianをインストールする方法
まず、Raspberry piの公式サイト(
https://www.raspberrypi.org/downloads/ )からRaspberry pi Imager をダウンロードする。
SDカードをフォーマットします。
SDカードをフォーマットするためにSD Formatter を使います。
SD Formatter を起動し、クイックフォーマットを選択、OKをおしてフォーマットする。
Raspberry pi Imager を開き、一番左はRaspberry pi osを選択、真ん中はSDカードを選択して、書き込む。
Raspberry piを初期設定する
電源、ディスプレイとマウス、キーボードをつなげる。
タイムゾーン、パスワードなどを設定する。
(KEKの場合)macアドレスを中村さんに報告して、KEK登録してもらう。
sshの起動
sudo systemctl enable ssh
SSHでログインして使いたいときは、予め事前にこれをやっておかないとラズパイにログインできなくなるので注意。
IPの設定方法
sudo emacs -nw /etc/dhcpcd.conf
static ip_addressのところを編集
編集が終わったらrebootする。
I2Cの設定
I2C のために/boot/config.txt に
dtparam=i2c_baudrate=100000
を追加。また、設定→Raspberry Piの設定→インターフェースにいって、I2Cが「無効」になっていたら「有効」にする。
Raspberry piの基本的な使い方
電源の入れ方
電源ボタンはありません。
USB-bを繋げば勝手に立ち上がります。
温度計の使い方
基板の構成
ラズベリーパイ+RaspiGeneralAdapter+ThermalUnit+センサーを載せるための基板。(RaspiGeneralAdapterとThermalUnitは回路図がTwikiのITK Pixel Detector Topics -> Drawing repository -> KEK->RaspiAdapter->RaspiGeneralAdapterにあり。(センサー用基板はどこー?))
ラズベリーパイ -
RaspiGeneralAdapter 間はフラットケーブル、それ以外はイーサネットケーブルでつなぐ。
大事な注意事項
2021年7月以降、I2C通信をより安定してできるように改良した基板(v2.0)に代わっている。詳細は「Raspi Adapter board and thermal unit ver2」の項目を参照。
RaspiGeneralAdapterとThermalUnitは、v1.0同士、もしくはv2.0同士で使用すること!
簡単な温度計の使い方
1.電源を入れssh(userがatlasjじゃなかったらsu atlasj)
2.cd work/CYRIC/
3.sudo i2cget -y 1 0x35 0xDF //ADCにsetupを書き込む
4.sudo python thermo_controllFNAL.py(湿度も測れるversion)
抵抗を載せ替えた場合はntccalc.pyの対応する抵抗を変えてください。
5.(別のterminalで)cd work/CYRIC/TempMon
6.source /usr/local/ROOT/v5.34.38/bin/thisroot.sh
7. ./mkplot.sh -l 3 -H 1
-H ○で○時間分グラフに表示。
-Mで分にもできる。
thermo_controll*.pyの中身の変数
settemp : 一定にしたい温度
twidth : 温度のマージン
SW1 or SW2:ON,OFF適時入れ替えて
故障かなと思ったら
温度が測れない(-45度とか明らかに低すぎる温度)
cd ~/work/dharada/test
sudo python
I2Ctest.py
でtestの値が2500付近になっていたらadcは生きています。
配線まわり(断線、温度計upとdownが逆じゃないか)
もし0だったらadcが死んでいる可能性があります。サブボードとraspberry piの接続などを確認する必要があります。
sudo i2cdetect -y -r 1 0x1c 0x35 //I2Cで接続されている機器を探す
35が表示されない場合は接続が悪い気がします。つなぎ直したり電源まわりを見てください。ピンで電源供給を内部か外部か切り替えてます。そこがおかしいのかな?
35が表示されている場合。死亡の可能性が高まってます。解決方法は今のところ無いです。載せ替えるくらいしか。
温度がおかしい(若干低い)
sudo i2cget -y 0x35 0xDF
をためしてください
cd ~/work/dharada
sudo python
I2Ctest.py
でtestが2500付近なら問題ないです。
温度が上がりつづけるor下がりつづける
設定温度(settemp)が正しいことを確認してください。
SW1とSW2が正しいか、4と15が使われているか確認してください。
上がりつづける場合、冷却材(ドライアイス、液体窒素)がなくなりかけている場合があります。補充してください。
温度測定が遅いor止まった
温度がsettemp付近の時
settemp±twidthの時測定結果が表示されないバグがあります(表示がされないだけで測定は続いています)。この範囲を出たらまた表示が始まります。
誰か直して見てくださいifの条件が原因です。
その他の場合
raspberry piが重くなってる可能性があります使ってないものは閉じてください。
thermo_controllを一度止めて再会すると直る場合もあります。
温度のグラフが表示されない
Xを飛ばしてください。
困ったら筑波大 原田まで
ADCの入力チャンネルとアドレスの対応
sudo i2cget -y 1 0x35 0xDF で何やってるか。
- 0x35 = 0b0110101でアドレスを指定(マニュアルのp. 1: Ordering Informationを参照)。
- 0xDF = 0b11011111がsetupの設定内容で、ここでは特にBIT 6で内部refference, BIT 3で外部clockを選択している(マニュアルのTable 1, 6を参照)。
MAX1238EEE マニュアル:
https://www.mouser.jp/Datasheets/_/?Keyword=MAX1238EEE&FS=True&utm_source=eciaauthorized&utm_medium=aggregator&utm_campaign=viewall&utm_term=MAX1238EEE
入力チャンネルの指定方法などは以下の表を参照。
i2c.read_i2c_block_data(arg1, arg2, arg3)
- arg1: slave address (MAX1238EEE を使う限り常に0x35)
- arg2: 011XXXX1のXXXXでチャンネルを指定(他のビットの意味はマニュアルのTable 2を参照)。
- arg3: 読み出しバイト数(通常は0x02 = 2バイトにしている)
Input |
AINX |
Channel (bin) |
arg2 |
VNTC1 |
AIN0 |
0x01100001 |
0x61 |
oNTC1p |
AIN1 |
0x01100011 |
0x63 |
oNTC1n |
AIN2 |
0x01100101 |
0x65 |
VNTC2 |
AIN3 |
0x01100111 |
0x67 |
oNTC2p |
AIN4 |
0x01101001 |
0x69 |
oNTC2n |
AIN5 |
0x01101011 |
0x6B |
HIHOUT1 |
AIN6 |
0x01101101 |
0x6D |
HIHOUT2 |
AIN7 |
0x01101111 |
0x6F |
VREF |
AIN11 |
0x01110111 |
0x77 |
!スペックシートなど
Adapter cards for Raspberry pi 3 model B+
First version of Adapter board for CYRIC & MPPC DAC config
--
Atlasj Silicon - 2018-10-13
Raspi Adapter board and thermal unit ver2
Cernbox(
RaspiGeneralAdapter - Files - CERNBox: the CERN Cloud Storage)の中にある
ラズパイアダプターボード(
RaspiGeneralAdapter.pdf)
サーマルユニット(
ThermalUnit.pdf)
(改良版)
改良点
・I2Cの信号線をGNDで挟む(長いケーブルでI2Cを送るときにサーマルユニットを感知できない問題に対する対応策)
・電源周りのノイズ対策にデカップリングキャパシタ―を追加
・ThermalUnit上にあるAmpからADCまでの間のバイパスコンデンサーの値を10nF→20uFに変更
--
Tatsuki Ueda - 2021-06-23
kekrasp04 【LGADグループが使ってる温湿度計(2021年6月23日時点)】
NTCの種類 Semitec 103KT1608T-1P [
smtcs00111_1-2281866.pdf (mouser.jp)]
参考値
R25:10kΩ
B value:3435K±1% (25℃~85℃)
備忘録(Log)
温度管理プログラム
kekrasp04→変更済み
kekrasp02→変更済み
サイリックのカチカチのためのif文で、coolingとwarmingが切り替わるようになってたところがもともと目的の温度になっていた時に対応できなくなってたため、そこを改良した
ntcのユニットのうち、Ttop(ntc1)とTbottom(ntc2)の値が違う場合
※ntcはその時の抵抗値を計算式を用いて温度に変換しているので、
実際の基板上に載っているntcの抵抗値をテスターで測定してみて一致している場合はおそらくプログラムや基板上の問題
(基板上だとほかの抵抗などの影響も多少あるので過信しすぎない方が良いかも、あくまでここでは相対的に差があるかどうかくらいのチェックで)
1.まずテストしてI2C周りが正しく動いているかを確認する(sudo python
I2Ctest.pyなど/詳細はこのtwikiページの上の方を参照)
テスト値が2500であればntc側の問題だと思う
2.温度測定環境が同じかを確認
実際に温度の違うものを測ってしまっている可能性
一方は冷えたものに直接触れているが、片方は直接触れておらず、測定対象の周りの気温を測っている場合などは表示温度に差ができてしまう
例)測定対象にNTCをテープで押し当てて測定しているが、片方のテープが外れてしまってntcが離れている
3.基板に載っているntcの種類が違う
例)変化量や計算式などは合っているはずなのに、1度ずつ程度低く表示される場合
ntc の種類が違うと初期値が違うので数度ずつずれることになる
どちらも同じ種類のntcを付けると一致する
ディスプレイ
ssh で入る以外に直接HDMIにディスプレイを取り付けて操作することがある(特にCYRICやテストビームの時にアドレスの設定をするとき)
途中からディスプレイを取り付けても信号が入力されない(映らない)
→ラズパイ起動前に先につけておく(すでに動いているなら一度電源を抜き、もう一度入れ直す)と映るようになる
--
Tatsuki Ueda - 2021-07-01
Comments