新規記事の投稿を行うことで、非表示にすることが可能です。
2021年01月30日
48行目〜98行目です。
kit-scope.ino 48行目〜98行目です。グローバル変数の定義をしています。
const byte cfg_cupgain = 0; // the usage definition of the pins D7..D12
// 0: input 1:input(pulled-up) 2:output
word oscversion = 0x0001;
word oscvbg; // band gap voltage in 10bits 0 means a failure.
word oscconfig; // bit0 -> if trigger voltage is 0:uncontrollable
// 1:controllable
// bit1 -> optional-fgen is 0:not attached
// 1:attached
// bit2 -> cupgain is 0:input
// 1:output
byte oscspeed = 0; // 0..3:real 4..7:equiv 8:roll
byte oscinput = 0; // input signal selection 0:CH1 1:CH2 2:DUAL
byte osctrig = 0; // trigger bit012-> 000:CH1 001:CH2 010:EXT
// 011:built-in-pulse
// 100:optional-fgen
// bit4 -> 0:rising 1:falling
// bit5 -> 0:auto 1:normal
word osctdly = 100; // time of delayed trigger 100..30000 usec
byte osctvolt; // trigger level voltage (measured by adc) 0..255
byte osctduty; // trigger level duty 0..255
byte osccupgain = 0; // bit0 -> CH1 coupling 0:dc 1:ac
// bit1 -> CH2 coupling 0:dc 1:ac
// bit23 -> CH1 gain-selection 0,1,2,3
// bit45 -> CH2 gain-selection 0,1,2,3
long oscofreq = 1000; // 31 .. 2000000Hz
byte oscoduty = 50; // 0..100%
byte fgen; // 0..3: fgen-dipsw 255:no-fgen
#define TXBSZ 1100
#define RXBSZ 256 // this must be 256.
#define RMBSZ 256 // this must be 256. for rollmode
int txn, txr;
byte txcrc, rxn;
byte rmw, rmr, rmon;
byte txbuf[TXBSZ];
byte rxbuf[RXBSZ];
2021年01月29日
冒頭のコメント文
下記は kit_scope.ino の1〜44行目です。
15行目以降の pin usage は当然ながら、UNO のピン名称となります。UNO のピン名称と MCU の ATmage328 のピン名称の対応関係は、
https://wiki.onakasuita.org/pukiwiki/?Arduino/%E3%83%94%E3%83%B3%E9%85%8D%E7%BD%AE
上記URLにあります。
// Kyutech Arduino Scope Prototype v0.73 Apr 10, 2019
//
// (C) 2012-2019 M.Kurata Kyushu Institute of Technology
//
// for Arduinos with a 5V-16MHz ATmega328.
//
// use with "kit_scope.pde", a Proce55ing GUI sketch.
//
// You don't need to worry about this warning message produced by the IDE.
// "Low memory available, stability problems may occur."
// コンパイル時、下記メッセージが表示されますが、問題ありません。
// "スケッチが使用できるメモリが少なくなっています。動作が不安定になる可能性があります。"
//
//
// Pin usage
//
// A0 trigger level voltage input (connected to D6)
// A1 oscilloscope probe ch1
// A2 oscilloscope probe ch2
// A3 oscilloscope probe ext trigger
// A4 reserved
// A5 reserved
// A6 reserved
// A7 reserved
//
// D0 uart-rx
// D1 uart-tx
// D2 reserved
// D3 calibration pulse wave output
// D4 reserved
// D5 pwm output for generating trigger level voltage
// D6 analog comparator input (trigger level)
// D7 reserved
// D8 reserved
// D9 reserved
// D10 reserved
// D11 reserved
// D12 reserved
// D13 LED output
//
// different usage for dks2014 board.
// A4 fgen-sync
// D8 CH1 mode input 0..[0-10V] 1..[-5..5V] (pull-up needed)
// D9 CH2 mode input 0..[0-10V] 1..[-5..5V] (pull-up needed)
15行目以降の pin usage は当然ながら、UNO のピン名称となります。UNO のピン名称と MCU の ATmage328 のピン名称の対応関係は、
https://wiki.onakasuita.org/pukiwiki/?Arduino/%E3%83%94%E3%83%B3%E9%85%8D%E7%BD%AE
上記URLにあります。
2021年01月28日
Arduino UNO と ATmega328Pのピン配の対応関係、及びUNOピンの説明
kit-scopeのスケッチ内のソースコードを読むためには、Arduino UNO のピン配とATmega328(又は168)のピン配の対応関係を知る必要があります。
https://wiki.onakasuita.org/pukiwiki/?Arduino/%E3%83%94%E3%83%B3%E9%85%8D%E7%BD%AE
上記の説明がわかりやすのではないかと。ご参考までに。
また、UNOピンの説明もあらかじめ見ておくと参考になります。下記がわかりやすいと思いました。
https://dryossy.com/arduino/arduino-pin/
こちらもご参考までに。次はいよいよスケッチの解析か?
https://wiki.onakasuita.org/pukiwiki/?Arduino/%E3%83%94%E3%83%B3%E9%85%8D%E7%BD%AE
上記の説明がわかりやすのではないかと。ご参考までに。
また、UNOピンの説明もあらかじめ見ておくと参考になります。下記がわかりやすいと思いました。
https://dryossy.com/arduino/arduino-pin/
こちらもご参考までに。次はいよいよスケッチの解析か?
2021年01月26日
ATmega328/328Pのデータシート
Arduino UNOには、ATmega328が使用されている。kit-scopeのソースコードを解析するにはATmega328用のデータシートが無いよりはあった方がいいかも。ということで探しました。
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf
英文です。下記に日本語のデータシートもあります。両方比較するといいですね。
https://avr.jp/user/DS/PDF/mega328P.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf
英文です。下記に日本語のデータシートもあります。両方比較するといいですね。
https://avr.jp/user/DS/PDF/mega328P.pdf
デジタルオシロスコープって?
そもそもデジタルオシロスコープとはどういう仕組みなんでしょう。わかりやすい説明を見つけました。
https://www.iti.iwatsu.co.jp/ja/support/05_14.html
上記にはデジタルオシロスコープの原理図とリアルタイムサンプリング、等価時間サンプリング、プリトリガ、ロールモードの説明があります。参考になりますね。詳しく説明されても理解できるだけの能力が無いので、これくらいで丁度いいのかと思っております。実際、この程度の理解でいいんだか。。。
https://www.iti.iwatsu.co.jp/ja/support/05_14.html
上記にはデジタルオシロスコープの原理図とリアルタイムサンプリング、等価時間サンプリング、プリトリガ、ロールモードの説明があります。参考になりますね。詳しく説明されても理解できるだけの能力が無いので、これくらいで丁度いいのかと思っております。実際、この程度の理解でいいんだか。。。
2021年01月25日
Arduino について
ソフトウエア開発環境のArduinoと、ハードウエアとしてのMCU基板名がArduino-XXXとなっていて、ちょっとわかりにくい(どうしようもないですけど)。
ソフトウエア開発環境のArduinoの特徴は、https://tajimarobotics.com/arduino-sketch-basic-structure/
にあります。プログラミング言語はC++です。
ソフトウエア開発環境のArduinoで作成したソフトウエアはスケッチと呼ばれる。スケッチをハードウエアとしてのMCU基板のArduino-XXX(XXXはUnoとかいろいろ)に書き込むと下記の順でソフトウエアを実行する。
1.setup()は実行時に1回だけ読まれる。変数の初期設定をするところである。
2.loop()は中身に記述した内容を無限ループで実行する。自分のさせたいことを記述するところ。
基本はそうなのですが、理解するのは実際、難しいですよねえ?
ソフトウエア開発環境のArduinoの特徴は、https://tajimarobotics.com/arduino-sketch-basic-structure/
にあります。プログラミング言語はC++です。
ソフトウエア開発環境のArduinoで作成したソフトウエアはスケッチと呼ばれる。スケッチをハードウエアとしてのMCU基板のArduino-XXX(XXXはUnoとかいろいろ)に書き込むと下記の順でソフトウエアを実行する。
1.setup()は実行時に1回だけ読まれる。変数の初期設定をするところである。
2.loop()は中身に記述した内容を無限ループで実行する。自分のさせたいことを記述するところ。
基本はそうなのですが、理解するのは実際、難しいですよねえ?
2021年01月21日
Arduino IDE を勉強し直す
しばらくぶりにArduino IDE を勉強し直すことにします。ハードウエアも散逸してしまったので集め直しです。
Arduino IDE を、九州工業大学の kit_scope のソースコードを追いながら勉強してみようと思っています。初心者にはかなりハードルが高いので、どこまで理解できるのか? 少しずつ進めていこうかなと。。。
Arduino IDE を、九州工業大学の kit_scope のソースコードを追いながら勉強してみようと思っています。初心者にはかなりハードルが高いので、どこまで理解できるのか? 少しずつ進めていこうかなと。。。