SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
マイコンのIOピンは
なぜ入出力の両方に使えるのか?
2015-09-20
西尾泰和
このスライドの目的
ArduinoやRaspberry PiなどのIOピンが
どうして入力と出力の両方に使えるのか
その仕組みが気になって調べ、その過程で
「そもそも入出力とは何か」が気になり、
トランジスタで論理回路を作るところから始めて
最終的にIOピン相当のものを作った。
このスライドの目的はその流れを忘れないうちに
整理して記録することである。
(やらないと忘れてしまうので)
2
トランジスタでNOT回路を作る
論理回路の中で一番小さくてシンプルな
「NOT回路」を作ってみた。
ボタンを押してない時、下のランプが点灯し、
ボタンを押している時、下のランプが消灯する。
3
ブレッドボード
4
回路図
5
スイッチがOFFの時
トランジスタのベースに掛かる電圧が0になり
ベースエミッタ間は不通
6
←エミッタ
ベース0V↑
つまりスイッチOFFの時
7
電流流れないゾーン
アウトプットのLEDは点灯する
スイッチがONの時
トランジスタのベースに掛かる電圧が5Vになり
コレクタエミッタ間に電流が流れる
8
←エミッタ
ベース5V↑
コレクタ→
計算
Bに抵抗10kΩで5V掛かっているとき(5-0.6)V /
10kΩ = 0.44mA の電流がB-E間を流れる。
(B-E間の電圧降下が0.6Vとして)
今回使っている2SC1825はhFE=100(つまり電流
が100倍に増幅される)なのでC-E間には44mAの
電流が流せる。
Vcc-C間は最大5Vで10kΩなので最大でも0.5mAし
か流れない。C-E間に44mA流せることは導線で
つないでるも同然。
→アウトプットのLEDは消灯する
9
以下B: ベース、E: エミッタ、C: コレクタ
トランジスタでNAND回路を作る
ボタンA,B両方が押されたときだけ右端の出力
LEDが消灯する、つまり not(A and B)。
10
なぜNAND
NANDが作れればANDやORなどの
論理回路で一般的なものが作れるから。
NOTはできたので、もう一歩
難しいものを作ってみたかったから。
11
ざっくりとした仕組み
NOTは「出力の信号線SGNをプルアップしてHIに
し、SGNとGNDの間にトランジスタをいれて、
それのゲートにHI電圧をかけるとSGNとGNDが
短絡同然になってSGNがLOになる」という原理
でNOTのロジックを実現していた。
NANDはこのトランジスタを二段重ねにすること
で「両方にHI電圧がかけられたときだけSGNと
GNDが短絡同然になってSGNがLOになる」とい
う仕組み。
12
ブレッドボード
13
回路図
14
トランジスタでフリップフロップ
15
動画はこちら: https://twitter.com/nishio/status/645258193342337024
フリップフロップ
入力を覚えて置く回路。この例だと直前に押され
たボタンが黒ボタンなら緑、白ボタンなら赤を点
灯する。
マイコンが「値を覚える」際の基本的部品。
16
ブレッドボード
抵抗が3つ並んでいるゾーンは、
本当は27kΩの抵抗をつなぎたかった*のだけど
手元になかったので10kΩ3本にした。
17
* http://www.rlc.gr.jp/project/e_circuit/digital/transistor/transistor.htm
回路図
18
IOピンの話題に戻…
NOT、NAND、フリップフロップ、と
基本的なところのおさらいをしてきた。
ようやく本題、IOピンの仕組みについて…
の前にMOSFETとCMOSについて。
19
MOSFETについて
ここまでの回路はバイポーラトランジスタ
(2SC1815)を使ってきた。
バイポーラトランジスタはB-E間に電流を流すと
その100倍くらいの電流がC-E間に流れる。つま
り信号線がHIの時には電流が流れ続けて電力消費
が大きい。
そこで「電流を流す」ではなく「電界を掛ける」
ことで作動するトランジスタ(MOSFET)を使うの
が今のLSIでは一般的。
20
https://ja.wikipedia.org/wiki/MOSFET
CMOSについて
MOSFETで回路を作る際、GがHIの時にS-D間が導
通するn型MOSと、GにLOの時にS-D間が導通す
るp型MOSという「相補的なMOS」を組み合わせ
ることが多い。これをComplementary MOS(相補
型MOS)、略してCMOSという。
IOピンもn型とp型を組み合わせる仕組みだった*
21
以下 G: ゲート、S: ソース、D: ドレイン
https://ja.wikipedia.org/wiki/CMOS
* IOピンの仕組みについて: http://www.picfun.com/pic22.html
IOピンの仕組み
出力するデータAと、入力モードの時にHIになる
BとをAND/ORして、CMOSに入力する(D, E)。
B=LOの時D, Eは同じ値になり、出力はAと一致す
る。B=HIの時D=HI, E=LOとなりどちらも導通せ
ず出力ピンはハイインピーダンス(Z)になる。
22
p型MOSFETの入手性の問題
「実際に作ってみて理解を確認」のためには
n型MOSFETとp型MOSFETを用意するのが筋だが
残念なことに「ブレッドボードに刺せる形」の
p型MOSFETがあんまり流通してない。
そこで電圧をNOTで反転してからn型に入れるこ
とで実現することにする。
ORはNANDの組み合わせで作れるし、フリップ
フロップもここまでで作れることを確認したので
n型MOSさえ買えば全部作れる。
23
買ったもの
n型MOSFET 2N7000
http://akizukidenshi.com/catalog/g/gI-03918/
4回路2入力NAND SN74HC00N
http://akizukidenshi.com/catalog/g/gI-08594/
(NANDが作れることはわかったので
面倒だから自作しないことにした)
24
IOピンを作る
フリップフロップは3端子スイッチで代用した。
緑が入出力ピン電圧、赤がMOSゲートの電圧。
25
出力モード
26
左端のスイッチ(出力モードB)が左(HI)の時、
右側のスイッチ(出力用データA)の値によって
MOSのゲートに掛かる電圧が変わり、
緑LED(実際の出力F)が変わる。
(AがHIの時にFがLOとなのは
MOSへの配線を間違えて逆にしているせい。)
入力モード
出力モードBがLOの時、MOSのゲートに掛かる電
圧は両方ともLOになり、出力ピンはハイイン
ピーダンスモードになる。そのため外部のスイッ
チでピンの電圧を変動させてもMOSより左側に
は影響が及ばない。
27
ブレッドボード・回路図
28

Weitere ähnliche Inhalte

Was ist angesagt?

初めてのグラフカット
初めてのグラフカット初めてのグラフカット
初めてのグラフカット
Tsubasa Hirakawa
 

Was ist angesagt? (20)

3Dモデル類似検索
3Dモデル類似検索3Dモデル類似検索
3Dモデル類似検索
 
Slideshareで見つけた「読みやすい・見やすいスライド」に共通する4つのポイント
Slideshareで見つけた「読みやすい・見やすいスライド」に共通する4つのポイントSlideshareで見つけた「読みやすい・見やすいスライド」に共通する4つのポイント
Slideshareで見つけた「読みやすい・見やすいスライド」に共通する4つのポイント
 
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料
 
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
 
MoveItの新機能、 OMPL Constrained Planningを試してみた
MoveItの新機能、 OMPL Constrained Planningを試してみた MoveItの新機能、 OMPL Constrained Planningを試してみた
MoveItの新機能、 OMPL Constrained Planningを試してみた
 
アジャイル開発はWhyから始まる
アジャイル開発はWhyから始まるアジャイル開発はWhyから始まる
アジャイル開発はWhyから始まる
 
ChatGPTの ビジネス活用とセキュリティ
ChatGPTのビジネス活用とセキュリティChatGPTのビジネス活用とセキュリティ
ChatGPTの ビジネス活用とセキュリティ
 
SQiP2016発表資料_プロセス改善の黒歴史(slideshare共有版)
SQiP2016発表資料_プロセス改善の黒歴史(slideshare共有版)SQiP2016発表資料_プロセス改善の黒歴史(slideshare共有版)
SQiP2016発表資料_プロセス改善の黒歴史(slideshare共有版)
 
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
 
私のファミコンのfpsは530000です。もちろんフルパワーで(以下略
私のファミコンのfpsは530000です。もちろんフルパワーで(以下略私のファミコンのfpsは530000です。もちろんフルパワーで(以下略
私のファミコンのfpsは530000です。もちろんフルパワーで(以下略
 
CNNとGAを用いた 組合せ最適化問題
CNNとGAを用いた 組合せ最適化問題CNNとGAを用いた 組合せ最適化問題
CNNとGAを用いた 組合せ最適化問題
 
[DL輪読会]“Spatial Attention Point Network for Deep-learning-based Robust Autono...
[DL輪読会]“Spatial Attention Point Network for Deep-learning-based Robust Autono...[DL輪読会]“Spatial Attention Point Network for Deep-learning-based Robust Autono...
[DL輪読会]“Spatial Attention Point Network for Deep-learning-based Robust Autono...
 
NGK2023S ChatGPT
NGK2023S ChatGPTNGK2023S ChatGPT
NGK2023S ChatGPT
 
心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話
 
Retty recommendation project
Retty recommendation projectRetty recommendation project
Retty recommendation project
 
GPT
GPTGPT
GPT
 
初めてのグラフカット
初めてのグラフカット初めてのグラフカット
初めてのグラフカット
 
-SSIIの技術マップ- 過去•現在, そして未来 [領域]認識
-SSIIの技術マップ- 過去•現在, そして未来 [領域]認識-SSIIの技術マップ- 過去•現在, そして未来 [領域]認識
-SSIIの技術マップ- 過去•現在, そして未来 [領域]認識
 
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介
 
[DL輪読会](Sequential) Variational Autoencoders for Collaborative Filtering
[DL輪読会](Sequential) Variational Autoencoders for Collaborative Filtering[DL輪読会](Sequential) Variational Autoencoders for Collaborative Filtering
[DL輪読会](Sequential) Variational Autoencoders for Collaborative Filtering
 

Andere mochten auch

2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
智啓 出川
 
The Story of CPU
The Story of CPUThe Story of CPU
The Story of CPU
Takashi Abe
 
Cpuの速度向上はいかに実現されたのか
Cpuの速度向上はいかに実現されたのかCpuの速度向上はいかに実現されたのか
Cpuの速度向上はいかに実現されたのか
Joongjin Bae
 
20090401 第10回「論理回路のしくみ」
20090401 第10回「論理回路のしくみ」20090401 第10回「論理回路のしくみ」
20090401 第10回「論理回路のしくみ」
Hiromu Shioya
 
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
智啓 出川
 
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
智啓 出川
 

Andere mochten auch (11)

2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
 
The Story of CPU
The Story of CPUThe Story of CPU
The Story of CPU
 
ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02
 
CPUの同時実行機能
CPUの同時実行機能CPUの同時実行機能
CPUの同時実行機能
 
Cpuの速度向上はいかに実現されたのか
Cpuの速度向上はいかに実現されたのかCpuの速度向上はいかに実現されたのか
Cpuの速度向上はいかに実現されたのか
 
20090401 第10回「論理回路のしくみ」
20090401 第10回「論理回路のしくみ」20090401 第10回「論理回路のしくみ」
20090401 第10回「論理回路のしくみ」
 
高位合成友の会第三回(2015/12/08)LTスライド@ikwzm
高位合成友の会第三回(2015/12/08)LTスライド@ikwzm高位合成友の会第三回(2015/12/08)LTスライド@ikwzm
高位合成友の会第三回(2015/12/08)LTスライド@ikwzm
 
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
 
Code jp2015 cpuの話
Code jp2015 cpuの話Code jp2015 cpuの話
Code jp2015 cpuの話
 
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
 
CPUに関する話
CPUに関する話CPUに関する話
CPUに関する話
 

Mehr von nishio

Mehr von nishio (20)

量子アニーリングマシンのプログラミング
量子アニーリングマシンのプログラミング量子アニーリングマシンのプログラミング
量子アニーリングマシンのプログラミング
 
夏プロ報告
夏プロ報告夏プロ報告
夏プロ報告
 
ITと経営
ITと経営ITと経営
ITと経営
 
部分観測モンテカルロ計画法を用いたガイスターAI
部分観測モンテカルロ計画法を用いたガイスターAI部分観測モンテカルロ計画法を用いたガイスターAI
部分観測モンテカルロ計画法を用いたガイスターAI
 
交渉力について
交渉力について交渉力について
交渉力について
 
If文から機械学習への道
If文から機械学習への道If文から機械学習への道
If文から機械学習への道
 
組織横断型研究室構想
組織横断型研究室構想組織横断型研究室構想
組織横断型研究室構想
 
2017首都大学東京情報通信特別講義
2017首都大学東京情報通信特別講義2017首都大学東京情報通信特別講義
2017首都大学東京情報通信特別講義
 
強化学習その5
強化学習その5強化学習その5
強化学習その5
 
良いアイデアを出すための方法
良いアイデアを出すための方法良いアイデアを出すための方法
良いアイデアを出すための方法
 
強化学習その4
強化学習その4強化学習その4
強化学習その4
 
強化学習その3
強化学習その3強化学習その3
強化学習その3
 
強化学習その2
強化学習その2強化学習その2
強化学習その2
 
強化学習その1
強化学習その1強化学習その1
強化学習その1
 
線形?非線形?
線形?非線形?線形?非線形?
線形?非線形?
 
機械学習キャンバス0.1
機械学習キャンバス0.1機械学習キャンバス0.1
機械学習キャンバス0.1
 
首都大学東京「情報通信特別講義」2016年西尾担当分
首都大学東京「情報通信特別講義」2016年西尾担当分首都大学東京「情報通信特別講義」2016年西尾担当分
首都大学東京「情報通信特別講義」2016年西尾担当分
 
勾配降下法の 最適化アルゴリズム
勾配降下法の最適化アルゴリズム勾配降下法の最適化アルゴリズム
勾配降下法の 最適化アルゴリズム
 
Wifiで位置推定
Wifiで位置推定Wifiで位置推定
Wifiで位置推定
 
ESP8266EXで位置推定
ESP8266EXで位置推定ESP8266EXで位置推定
ESP8266EXで位置推定
 

マイコンのIOピンはなぜ入出力の両方に使えるのか?