<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>基礎知識 | 即戦力モノづくり!エンジニアへの道標</title>
	<atom:link href="https://depfields.com/tag/basics/feed/" rel="self" type="application/rss+xml" />
	<link>https://depfields.com</link>
	<description>組み込み（マイコン）スキルを楽しんで学びながら身につけて短期間で効率よく自由自在に扱えるようになりたいと思いませんか？</description>
	<lastBuildDate>Tue, 07 Jan 2025 15:20:18 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>

<image>
	<url>https://depfields.com/wp-content/uploads/2020/07/cropped-favicon-1-32x32.png</url>
	<title>基礎知識 | 即戦力モノづくり!エンジニアへの道標</title>
	<link>https://depfields.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>マイコンで使うパルスについて【制御系では必須】</title>
		<link>https://depfields.com/digital-pulse/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=digital-pulse</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Mon, 01 Jun 2020 07:09:37 +0000</pubDate>
				<category><![CDATA[組み込み技術の基本]]></category>
		<category><![CDATA[基礎知識]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=1728</guid>

					<description><![CDATA[<p>ハードウェアとパルス パルスの種類 &#160;TTL規格&#160; ■　TTLの一般的な1(High)/0(Low)レベル　　　VIH(Highとみなす最低電圧)約2.0V　　　VIL(Lowとみなす最大電圧)約0. [&#8230;]</p>
<p>The post <a href="https://depfields.com/digital-pulse/">マイコンで使うパルスについて【制御系では必須】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img fetchpriority="high" decoding="async" width="384" height="198" src="https://depfields.com/wp-content/uploads/2020/06/クロック.jpg" class="attachment-large size-large wp-post-image" alt="" srcset="https://depfields.com/wp-content/uploads/2020/06/クロック.jpg 384w, https://depfields.com/wp-content/uploads/2020/06/クロック-300x155.jpg 300w" sizes="(max-width: 384px) 100vw, 384px" /></div>






<h2 class="wp-block-heading">ハードウェアとパルス</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>パルスはハードウェアの回路に密着した技術といえます。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">組み込みエンジニアで制御系を扱う場合は特にパルス信号を扱う機会が多いために、トランジスタ等ハードウェア回路がどのようにしてパルスの発生させるかの仕組みを理解することが大切</span></strong>です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>パルスは典型的なデジタル信号で振幅は一定で時間軸のON/OFF期間が固定であったり、可変であったりするものです。外部スイッチのON/OFF入力も、外部へのON/OFF出力もマイコンからみるとパルスなのです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>パルスを自由に使いこなすことは制御系のプログラムの場合はある程度ものにできているといえるでしょう。通信で扱う信号も広義の意味ではパルスです。ただし、これはフォーマットにしたがって専用回路がすべてを作成しますのでパルスそのものを意識することはありません。</p>
</div></div></div>



<h2 class="wp-block-heading">パルスの種類</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">パルス</span></strong>は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">デジタル信号の一種</span></strong>でマイコンではアナログ信号に対して、ON/OFFの状態で示されます。<br><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">アナログ信号</span></strong>は時間経過につれて信号レベルの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">振幅が連続で変動</span></strong>するもので<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>デジタル信号の振幅は常に一定</strong></span>です。</p>
</div></div></div>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img decoding="async" width="401" height="214" data-id="1926" src="https://depfields.com/wp-content/uploads/2020/06/analog.jpg" alt="" class="wp-image-1926" srcset="https://depfields.com/wp-content/uploads/2020/06/analog.jpg 401w, https://depfields.com/wp-content/uploads/2020/06/analog-300x160.jpg 300w" sizes="(max-width: 401px) 100vw, 401px" /><figcaption class="wp-element-caption">アナログ信号</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="404" height="191" data-id="1927" src="https://depfields.com/wp-content/uploads/2020/06/digital-pulse.jpg" alt="" class="wp-image-1927" srcset="https://depfields.com/wp-content/uploads/2020/06/digital-pulse.jpg 404w, https://depfields.com/wp-content/uploads/2020/06/digital-pulse-300x142.jpg 300w" sizes="(max-width: 404px) 100vw, 404px" /><figcaption class="wp-element-caption">デジタルパルス信号</figcaption></figure>
</figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンでは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">クロック</span></strong>とよばれる基本パルスが水晶振動子などのパルス発振器から与えられ各処理をすすめるタイミング信号となります。クロックは心臓の鼓動と同じく止まってしまえば機能も停止してしまう<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコンの大事な基準信号</span></strong>です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>1サイクル1クロックで、例えば1MHzのクロック周波数の場合、1サイクルは1usなので1秒間に1,000,000個のパルスが発生しています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/クロック.jpg"><img decoding="async" width="384" height="198" src="https://depfields.com/wp-content/uploads/2020/06/クロック.jpg" alt="" class="wp-image-1928" style="width:309px;height:159px" srcset="https://depfields.com/wp-content/uploads/2020/06/クロック.jpg 384w, https://depfields.com/wp-content/uploads/2020/06/クロック-300x155.jpg 300w" sizes="(max-width: 384px) 100vw, 384px" /></a><figcaption class="wp-element-caption">クロック</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>信号といっても、電圧を伴わない信号、すなわち電気回路としてスイッチが<strong>ON/OFFしているだけの信号を<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">無電圧パルス信号</span></strong>といい、<strong>電圧を伴う信号を<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">有電圧パルス信号</span></strong>といいます。<br>パルスの概念は、デジタルシステムであるマイコンの入出力およびマイコン内部の処理を理解するうえでとても大事ですので十分理解しておいてください。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これまで扱ってきた回路でも、例えば入力回路では<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>プルアップ・プルダウン抵抗</strong></span>などは<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>無電圧信号を有電圧パルス信号に変換</strong></span>するためのものであり、出力回路では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プッシュプル出力は有電圧パルス信号</span></strong>、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オープンドレイン出力は無電圧パルス信号を出力</span></strong>するものです。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/pulse-type.jpg"><img decoding="async" width="780" height="297" src="https://depfields.com/wp-content/uploads/2020/06/pulse-type.jpg" alt="" class="wp-image-1929" style="width:661px;height:251px" srcset="https://depfields.com/wp-content/uploads/2020/06/pulse-type.jpg 780w, https://depfields.com/wp-content/uploads/2020/06/pulse-type-300x114.jpg 300w, https://depfields.com/wp-content/uploads/2020/06/pulse-type-768x292.jpg 768w" sizes="(max-width: 780px) 100vw, 780px" /></a><figcaption class="wp-element-caption">マイコンで使用されるパルス信号</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">無電圧信号</span></strong>は操作スイッチ、リレーなどによる<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">接点信号</span></strong>や<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">トランジスタによるオープンコレクタ</span></strong>または<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">MOSFETによるオープンドレイン</span></strong>で出力される信号で、信号源が接点の場合、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ドライ接点</span></strong>と呼ばれます。パルス信号として使用するにはその信号回路に電圧をかけて負荷に電流をながすことではじめて電気のパルス信号となります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>センサーの出力、制御機器の信号出力などに<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>トランジスタオープンコレクタ形式</strong></span>がよく使用されます。<br>日本国内ではNPNトランジスタによる<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">シンク</span></strong>出力が一般的で、海外ではPNPトランジスタによる<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ソース</span></strong>出力の製品が多いです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong>無電圧信号の特徴は<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">信号を受ける側（入力側）で電源を自由に選択できる</span></strong>ことです。つまり、出力側とは別電源を使用できるのが特徴です。この場合グランドを分離できるため、ノイズ対策にも有効です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong>マイコンの入力に<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">無電圧信号を使用する場合</span></strong>はマイコンに1（High）か0(Low)の電圧信号を与えるために、先に紹介した<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プルアップ抵抗やプルダウン抵抗を外部に追加接続する必要</span></strong>があります。マイコンによりプルアップ抵抗やプルダウン抵抗を内蔵しているものもあります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">有電圧信号</span></strong>はその名のとおり、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電圧パルス</span></strong>です。ロジックICで組まれた回路で発生したパルスは有電圧信号です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>電圧レベルは固定されていて代表的なものに<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">TTL規格</span></strong>と<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">CMOS規格</span></strong>がありますので仕様にあわせて使用します。TTL規格はバイポーラトランジスタで構成したロジック回路のことをいいますが単に5V信号電圧のことを指していうことも多いです。</p>
</div></div></div>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;TTL規格&nbsp;</span></p>



<p>■　<strong>TTLの一般的な1(High)/0(Low)レベル</strong><br>　　　V<sub>IH</sub>(Highとみなす最低電圧)約2.0V<br>　　　V<sub>IL</sub>(Lowとみなす最大電圧)約0.8V&nbsp;<br>つまり、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">2.0V以上で1(High)</span></strong>、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">0.8V以下で0(Low)</span></strong>のロジックです。</p>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;CMOS規格&nbsp;</span></p>



<p>■　<strong>CMOSの一般的の1(High)/0(Low)レベル</strong><br>　　　V<sub>IH</sub>(Highとみなす最低電圧)0.5-0.7 x Vdd (Vdd=3.3の時は1.65-2.3V )<br>　　　V<sub>IL</sub>(Lowとみなす最大電圧)0.2 x Vdd (Vdd=3.3の時は0.66V )<br><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電源電圧Vddにより1(High)/0(Low)レベルのしきい値が変わる</span></strong>ので注意が必要です。</p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>&nbsp;現在のマイコン電圧Vddは3.3Vが主流ですが1.8V, 0.9Vと低電圧のものがでてきています。<br>仕様電圧レベルを超えたものを与えると壊れる危険性があるため、よく理解して使用する必要があります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ラインドライバ</span></strong>とは伝送ノイズの影響を避けるために使われる<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">平衡信号（差動信号）</span></strong>のことで<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">互いに逆の極性のロジック信号</span></strong>を出力します。信号入力側には平衡型入力回路が必要ですが比較的長い距離でも安定して動作するのが特徴です。制御機器にはよく使われる仕様ですが、ラインドライバパルスはマイコンの入出力で直接つかうものではなく専用ラインドライバICで使えるようにすればよいのでここでは割愛します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>有電圧信号のうち<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">トランジスタ素子をスイッチとした有電圧パルス</span></strong>はマイコンでよく使われます。<br>オープンコレクタ方式の無電圧信号にプルアップ抵抗やプルダウン抵抗で電圧パルスに変換するのは前述したとおりです。</p>
</div></div></div>



<h2 class="wp-block-heading">パルス幅変調（PWM:Pulse Width Modulation)</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>パルス幅変調</strong></span>はパルスの幅（パルスがON/OFFの期間：デューティ比）を長くしたり、短くしたりして<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">事実上の平均値を調整するもの</span></strong>です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>例えばDCモータの速度コントロールはモータ電源電圧を調整すると電圧に比例して速度も調整できるのですが、電圧を変更するのに負荷に可変抵抗を直列につなぎ、抵抗値を変更するのが最も簡単な方法です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>この方法では可変抵抗を変更することでモータ電流もかわるのですが、<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>抵抗器Rと電流Iとで大きな損失（＝I<sup>2</sup>R）が発生</strong></span>してしまいます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これに対して、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">PWMとよばれるパルス幅変調方式</span></strong>では抵抗値により電圧値（振幅）を変更するのではなく、電圧の振幅は一定でON・OFFしている期間つまり<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">パルス幅を調整</span></strong>することで<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>平均値を調整</strong></span>することになるのです。したがって、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">抵</span></strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>抗器Rによる電圧制御に比べて損失が小さいのが特徴</strong></span>です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">スイッチング回路</span></strong>と呼ばれる<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">パワーエレクトロニクス回路</span></strong>により入力電圧をスイッチ、つまりON/OFFをコントロールすることで所望の出力電圧が得られます。よく耳にする<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">インバータ</span></strong>は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">PWMの応用</span></strong>です。</p>
</div></div></div>



<figure class="wp-block-image size-full"><a href="https://depfields.com/wp-content/uploads/2020/06/pwm_jp.jpg"><img decoding="async" width="599" height="199" src="https://depfields.com/wp-content/uploads/2020/06/pwm_jp.jpg" alt="" class="wp-image-11619" srcset="https://depfields.com/wp-content/uploads/2020/06/pwm_jp.jpg 599w, https://depfields.com/wp-content/uploads/2020/06/pwm_jp-300x100.jpg 300w" sizes="(max-width: 599px) 100vw, 599px" /></a><figcaption class="wp-element-caption">パルス幅変調と平均電圧</figcaption></figure>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>スイッチング回路に使われる半導体デバイスにはサイリスタ、GTO、<strong>パワートランジスタ</strong>、<strong>MOSFET</strong>、<strong>IGBT</strong>などがあり使用する電力の大きさやスイッチング速度などにより使い分けられます。最近、次世代のデバイスとしてこれまでのシリコンベースデバイスから<strong>SiC</strong>(シリコンカーバイド)や<strong>GaN</strong>(ガリウムナイトライド)といったものが登場してきています。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/digital-pulse/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/5189ddd6080e68f5b4789b94c8b9111d9416739ae6d373a39e3752a0231f0239.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">About pulses used in MCUs [essential in control systems] | Most Powerful Bibl...</div><div class="lkc-url" title="https://en.depfields.com/digital-pulse/">https://en.depfields.com/digital-pulse/</div><div class="lkc-excerpt">Hardware and PulsePulse is a technology closely related to hardware circuits. Embedded engineers who work with control systems have many opportunities to handle pulse signals in particular, so it is important to understand how t</div></div><div class="clear">
							</div>
						</div></a></div></div><p>The post <a href="https://depfields.com/digital-pulse/">マイコンで使うパルスについて【制御系では必須】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>マイコン周辺のハードウェア基本回路【初心者・未経験者必見】</title>
		<link>https://depfields.com/mc-circuit/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mc-circuit</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Sun, 31 May 2020 15:40:09 +0000</pubDate>
				<category><![CDATA[組み込み技術の基本]]></category>
		<category><![CDATA[基礎知識]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=1726</guid>

					<description><![CDATA[<p>マイコンの入出力回路を取り扱うのに必須の基礎知識をまとめています。 電気回路とオームの法則 分圧回路 デジタル基本回路 コラム 電気回路では負荷抵抗Rというものが必要です。上図の場合、負荷がなければスイッチをONにした瞬 [&#8230;]</p>
<p>The post <a href="https://depfields.com/mc-circuit/">マイコン周辺のハードウェア基本回路【初心者・未経験者必見】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img decoding="async" width="1024" height="685" src="https://depfields.com/wp-content/uploads/2020/06/testing-circuit-1468062_1920-1024x685.jpg" class="attachment-large size-large wp-post-image" alt="" srcset="https://depfields.com/wp-content/uploads/2020/06/testing-circuit-1468062_1920-1024x685.jpg 1024w, https://depfields.com/wp-content/uploads/2020/06/testing-circuit-1468062_1920-300x201.jpg 300w, https://depfields.com/wp-content/uploads/2020/06/testing-circuit-1468062_1920-768x514.jpg 768w, https://depfields.com/wp-content/uploads/2020/06/testing-circuit-1468062_1920-1536x1028.jpg 1536w, https://depfields.com/wp-content/uploads/2020/06/testing-circuit-1468062_1920.jpg 780w" sizes="(max-width: 1024px) 100vw, 1024px" /></div>


<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong><a href="https://depfields.com/gpio/" target="_blank" rel="noreferrer noopener">マイコンの入出力回路</a></strong>を取り扱うのに必須の基礎知識をまとめています。</p>







<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h2 class="wp-block-heading">電気回路とオームの法則</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコン周辺で使用する電気回路は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">直流回路</span></strong>ですのでそれほど難しくなく、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オームの法則を知っていれば理解できる</span></strong>ものです。ただし、教科書に記載している回路とは多少表記の仕方が違うためまず慣れる必要はあります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>回路は当然すべてつながっているのですが、表記では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電源電圧とグランド(GND)を分離した略図で表記</span></strong>しています。電源電圧から何らかの回路（負荷）を通ってグランド（GND）に戻っていくのを連続で繰り返しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>下図左が教科書などにある回路図というより配線図です。実際の回路を扱う上では<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>グランド(GND）の考えが必要</strong></span>となり、下図真ん中の形になります。実際の図面ではこれを簡略化して下図右のように表します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/circuit-diagram-1.jpg" alt="" class="wp-image-1828" width="599" height="289" srcset="https://depfields.com/wp-content/uploads/2020/05/circuit-diagram-1.jpg 752w, https://depfields.com/wp-content/uploads/2020/05/circuit-diagram-1-300x145.jpg 300w" sizes="(max-width: 599px) 100vw, 599px" /><figcaption>電気回路図</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ここで<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">グランド（GND）という概念</span></strong>がでてきました。マイコン回路では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">グランド（GND）は回路の基準電位</span></strong>となります。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電位</span></strong>とは基準に対して電気的にどれくらい高いか低いかを表すもので単位はVです。2点の電位の差を<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電位差</span></strong>あるいは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電圧</span></strong>といいます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>電源電圧などはこのグランド（GND）の基準電位に対する電位差のことですので、グランド（GND）の電位を基準値0Vと定義するとわかりやすいです。ただし<strong>、<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">グランドの電位は絶対的な電位0Vではなくあくまで基準値としての相対的な0Vである</span></strong>ことを頭のすみに置いておいてください。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>グランドとかアースといった概念はとても奥が深いのですが、実際のマイコン周辺の回路設計においては実用的な機器を構成するためにはとても重要なポイントです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコン周辺の回路図では電源とグランドを分離して表記することが多いです。マイコンはデジタル回路なので電気信号は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電源電圧レベルのVdd（デジタル回路での一般表記）</span></strong>とグランドレベルの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Vss(デジタル回路での一般表記)</span></strong>かのどちらかです。また、デジタル論理では信号レベルがVddの場合<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>1またはHレベル</strong></span>(High)で、Vssの場合<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>0またはLレベル</strong></span>(Low)であるといいます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/sysmbol.jpg" alt="" class="wp-image-1829" width="195" height="91"/><figcaption>電源、GND記号</figcaption></figure>



<h2 class="wp-block-heading">分圧回路</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>簡略化した回路では抵抗による分圧も理解しやすいでしょう。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/voltage-divider.jpg" alt="" class="wp-image-1830" width="326" height="312" srcset="https://depfields.com/wp-content/uploads/2020/05/voltage-divider.jpg 362w, https://depfields.com/wp-content/uploads/2020/05/voltage-divider-300x287.jpg 300w" sizes="(max-width: 326px) 100vw, 326px" /><figcaption>分圧回路</figcaption></figure>



<h2 class="wp-block-heading">デジタル基本回路</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>次のデジタル基本回路で動作を見てみましょう。<br>基本回路1では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電源側（Vdd）に負荷抵抗R</span></strong>が、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">グランド側(Vss)にスイッチ</span></strong>が接続した構成です。スイッチON/OFFの状態で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">回路中間点の電位がどのように変化するでしょうか</span></strong>。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>スイッチがOFFの場合は負荷抵抗には電流は流れません。したがって抵抗の両端には電圧はかかっておらず中間点の電位は電源電圧と同じです。つまり1(Vdd)です。スイッチがONになると負荷抵抗に電流が流れ中間点はスイッチのグランド側(Vss)と等電位になります。つまり0(Vss)です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>基本回路2では基本回路1の負荷抵抗とスイッチの位置が入れ替わった回路です。基本回路1と同様に動作をたどってみるとスイッチがOFFでは中間点の電位は0(Vss)、スイッチがONでは中間点の電位は1(Vdd)となります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/digital-basic-circuit.jpg" alt="" class="wp-image-1831" width="636" height="334" srcset="https://depfields.com/wp-content/uploads/2020/05/digital-basic-circuit.jpg 706w, https://depfields.com/wp-content/uploads/2020/05/digital-basic-circuit-300x158.jpg 300w" sizes="(max-width: 636px) 100vw, 636px" /></figure>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>電気回路では<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">負荷抵抗Rというものが必要</span></strong>です。上図の場合、負荷がなければスイッチをONにした瞬間に短絡（ショート）してしまいます。負荷Rの値は下記「<strong>入力プルアップ・プルダウン回路</strong>」で解説しています。</p>
</div>
<p>&nbsp;</p>



<h2 class="wp-block-heading">汎用入力で使われる回路</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンの入力ポートは端子に入力された0か1の信号を読み取る機能をもっています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>0か1の信号はそれぞれグランドレベルVssと電源電圧レベルVddです。<br>下記の二股スイッチによる回路がデジタル入力を簡易的に表したものです。<br><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電源電圧側で入力１</span></strong>(Vdd)、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">グランド側で入力０</span></strong>(Vss)となります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/digital-input.jpg" alt="" class="wp-image-1832" width="547" height="178" srcset="https://depfields.com/wp-content/uploads/2020/06/digital-input.jpg 694w, https://depfields.com/wp-content/uploads/2020/06/digital-input-300x98.jpg 300w" sizes="(max-width: 547px) 100vw, 547px" /><figcaption>二股スイッチによるデジタル入力回路</figcaption></figure>



<h2 class="wp-block-heading">入力プルアップ・プルダウン回路</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>実際マイコンに入力として接続されるものにはセンサー出力やスイッチの接点などでそのままでは電圧を発生しないものがあり、電源直結の二股スイッチのように接続するだけで入力ポートに0と1の信号を直接与えられません。このような場合はどうすればよいでしょうか。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>入力としてスイッチあるいはセンサー出力の一方がグランドレベルVssである<strong>シンク</strong>出力タイプ（コラム1参照）を接続する場合、スイッチONでは入力ポート状態は0となりますが、なにもしない状態、つまりスイッチOFFではどこにもつながっていないため<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力は不定（浮いている：フローティング）の状態</span></strong>です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>スイッチOFFのときに入力ポート状態を1とするためには<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プルアップ抵抗</span></strong>を使用します。プルアップ抵抗があると入力が<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">何もない状態でも入力ポートへの状態は1に確定</span></strong>されます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/pullup.jpg" alt="" class="wp-image-1834" width="609" height="212" srcset="https://depfields.com/wp-content/uploads/2020/06/pullup.jpg 780w, https://depfields.com/wp-content/uploads/2020/06/pullup-300x105.jpg 300w, https://depfields.com/wp-content/uploads/2020/06/pullup-768x268.jpg 768w" sizes="(max-width: 609px) 100vw, 609px" /><figcaption>プルアップ回路</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>入力としてスイッチあるいはセンサー出力の一方が電源レベルVddである<strong>ソース</strong>出力タイプ（コラム1参照）を接続する場合、スイッチONでは入力ポート状態は1となりますが、なにもしない状態、つまりスイッチOFFではどこにもつながっていないため<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力は不定（浮いている<strong>：フローティング</strong>）</span></strong>の状態です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>スイッチOFFのときに入力ポート状態を0とするためには<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プルダウン抵抗</span></strong>を使用します。プルダウン抵抗があると入力が<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">何もない状態でも入力ポートへの状態は0に確定</span></strong>されます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/pulldown.jpg" alt="" class="wp-image-1835" width="581" height="220" srcset="https://depfields.com/wp-content/uploads/2020/06/pulldown.jpg 756w, https://depfields.com/wp-content/uploads/2020/06/pulldown-300x114.jpg 300w" sizes="(max-width: 581px) 100vw, 581px" /><figcaption>プルダウン回路</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プルアップ・プルダウンの抵抗値は300Ωから100kΩくらい</span></strong>のもので本来はこの値は適当にきめるものではないのですが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">一般的に10kΩ程度</span></strong>をなんとなく使用している人も多いと思います。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>値が大きいと負荷に流れる電流は小さいために消費電力は小さくなる利点があります。ただし値が大きすぎると小さな電流でも抵抗器で電圧降下が発生してしまうために、入力電圧はVddより下がります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコン入力はC-MOSで構成された回路で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">高インピーダンス</span></strong>（コラム2参照）といって電流は発生しにくいためにこの電圧降下は考えなくてもよいので大きめの値でも大丈夫です。ただし、大きすぎると微小な電流の変化で電圧降下の変化分が大きく増幅されるかたちになるのでノイズの影響を受けやすいともいわれます。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力インピーダンス</span></strong>は入力抵抗のようなものでマイコンの仕様書で確認できます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコン以外の回路では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プルアップ・プルダウン抵抗値</span></strong>は次段の回路に必要な駆動電流を考慮して決めます。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">駆動電流が小さすぎると動作しない部品もあるから</span></strong>です。最終的には抵抗値はバランスを考えて決定すればよいのですが、他で実際に使用されているものを参考するのがよいと思います。</p>
</div></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム1</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b"><strong>シンク</strong>と<strong>ソースについて</strong></span><strong><br><em>入力側</em></strong>：<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">ソース入力は負荷が電圧源に接続</span></strong>しているタイプで、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">シンク入力は負荷がグランドに接続</span></strong>しているタイプです。<br><strong>出力側</strong>：<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">ソース出力は電源レベルの出力</span></strong>(PNPトランジスタなど)で<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">シンク入力に接続</span></strong>し、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">シンク出力はグランドレベルの出力</span></strong>(NPNトランジスタなど)で<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">ソース入力に接続</span></strong>します。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム2</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p><strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">インピーダンス</span></strong>とは交流も含めた回路おける抵抗（電流の流れにくさ）です。<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">コイルやコンデンサは周波数によってインピーダンス（電流の流れにくさ）が変わります</span></strong>。専門的になりますが、位相というものも変化します。周波数が大きくなると<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">コイルではインピーダンスは大きく</span></strong>なり、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">コンデンサでは逆に小さく</span></strong>なります。<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">直流回路では抵抗そのもの</span></strong>です。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h2 class="wp-block-heading">汎用出力で使われる回路</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンの出力は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">C-MOS</span></strong>とよばれる<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>半導体のスイッチング素子</strong></span>で構成されています。C-MOSの動作を説明するまえに半導体のスイッチング素子について考察してみましょう。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>半導体スイッチの基本は<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>トランジスタ</strong></span>です。トランジスタは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">微小な信号を増幅して大きな信号にする増幅器</span></strong>として使われてきましたがマイコンを始めとするデジタルの世界では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">スイッチの役割で使用</span></strong>します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>トランジスタは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ベースB、<strong>コレクタC</strong></span></strong>、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">エミッタEなる3つの端子で構成</span></strong>されています。ここでは下図に示す<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">NPN型トランジスタ</span></strong>で話をすすめます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ベースBに適当な負荷抵抗を介して<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ベース電流I<sub>B</sub></span></strong>を流すとコレクタCからエミッタEに<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">コレクタ電流I<sub>C</sub></span></strong>が流れます。ベース電流I<sub>B</sub>に対してコレクタ電流I<sub>C</sub>は数100倍になることがあります。トランジスタが増幅器とよばれる理由はこの微小な電流I<sub>B</sub>を大きな電流I<sub>C</sub>に電流を増幅するからです。（ただし大きな電流を流すコレクタにはそれ相当の電源を接続している必要があります。）</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>微小なベース電流I<sub>B</sub>を細かくコントロールするとその大きさに比例してコレクタ電流I<sub>C</sub>も比例します。ベース電流I<sub>B</sub>があるところまで達するとコレクタ電流I<sub>C</sub>は頭打ちとなってそれ以上は大きくなりません。これを飽和したといいます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>アナログ回路の増幅器では飽和するまでが大事なのですが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">スイッチとしてのトランジスタはこの飽和した状態</span></strong>でコレクタCとエミッタEが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">導通の状態を使用</span></strong>します。つまり、<strong>ベース電流I<sub>B</sub>=0でI<sub>C</sub>=0 の<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">トランジスタOFF状態</span></strong>、<strong>ベース電流I<sub>B</sub>がONにするためのしきい値I<sub>ON</sub>以上で<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">トランジスタON状態</span></strong>の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">2通り</span></strong>を使用します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/transistor-switch.png" alt="" class="wp-image-11350" width="468" height="196" srcset="https://depfields.com/wp-content/uploads/2020/06/transistor-switch.png 468w, https://depfields.com/wp-content/uploads/2020/06/transistor-switch-300x126.png 300w" sizes="(max-width: 468px) 100vw, 468px" /><figcaption>スイッチとしてのトランジスタ</figcaption></figure>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/basic-output-circuit.jpg" alt="" class="wp-image-1884" width="595" height="239"/><figcaption>出力基本回路</figcaption></figure>



<div style="display: inline-block; background: #191970; padding: 5px 10px; color: #ffffff; border-radius: 5px 5px 0px 0px;"><strong>ポイント</strong></div>
<div style="background: #ffffea; border-radius: 0px 10px 10px 10px; padding: 10px; border: 3px solid #191970;">
<p>トランジスタは<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">ベース電流I<sub>B</sub></span>によりON/OFFを切り替える<span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">電流駆動のスイッチ</span></strong>になるのです。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer"><div class="vk_spacer-display-pc" style="height:20px"></div><div class="vk_spacer-display-tablet" style="height:10px"></div><div class="vk_spacer-display-mobile" style="height:5px"></div></div>



<h2 class="wp-block-heading">スイッチとしてのMOSFET</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これまでは半導体スイッチの基本であるトランジスタで説明してきました。<br>実際にマイコンのスイッチにはトランジスタのかわりに<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">MOSFET（電界効果トランジスタ）</span></strong>が使用されています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>トランジスタが電流を増幅する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電流駆動のスイッチ</span></strong>であるのに対して、<strong>MOSFETはゲートに電圧をかけると抵抗値が変化する<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電圧駆動のスイッチ</span></strong>であるものだと理解してください。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>MOSFETのゲート入力インピーダンスは高いために駆動電圧をかけても電流はほとんど流れません。つまり消費電力が小さくマイコン内部のスイッチとしてはこちらの方が<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">集積回路として効率</span></strong>がよいのです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコン用スイッチとしてMOSFETはトランジスタより有利ではあるのですが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">静電気には弱い特性</span></strong>なのが欠点です。マイコンが静電気には弱いICであるのはMOSFETで構成されているからです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>トランジスタとMOSFETは特性の差はあれ<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">半導体スイッチとしての動作はほぼ同じもの</span></strong>としての理解でよいと思います。マイコンに使用されている回路はMOSFETですので今後はこちらで話をすすめていきます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/mosfet-switch.png" alt="" class="wp-image-11352" width="483" height="222" srcset="https://depfields.com/wp-content/uploads/2020/06/mosfet-switch.png 483w, https://depfields.com/wp-content/uploads/2020/06/mosfet-switch-300x138.png 300w" sizes="(max-width: 483px) 100vw, 483px" /><figcaption>スイッチとしてのMOSFET</figcaption></figure>



<h2 class="wp-block-heading">プッシュプル出力（電圧出力）・オープンドレイン出力</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコン汎用出力ポートは1(High)か0(Low)の情報を出力</span></strong>します。<br><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プッシュプル出力タイプ</span></strong>と呼ばれているものはデータ1を出力するときに、出力ピンが1(High)、データ0を出力するときには出力ピンは0(Low)のどちらかの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電圧レベルを出力</span></strong>します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/pushpull-1.jpg" alt="" class="wp-image-1899" width="555" height="205" srcset="https://depfields.com/wp-content/uploads/2020/06/pushpull-1.jpg 719w, https://depfields.com/wp-content/uploads/2020/06/pushpull-1-300x111.jpg 300w" sizes="(max-width: 555px) 100vw, 555px" /></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>対して、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オープンドレイン出力</span></strong>では出力データが0のとき出力ピンは0(Low)となるのですが、出力データが1では出力ピンは電圧不定の浮いた状態のタイプです。<br>汎用出力ではこの2種類が利用できますので、用途に合わせて選択します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>トランジスタの場合は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オープンコレクタ出力</span></strong>といいます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/opendrain-1.jpg" alt="" class="wp-image-1900" width="536" height="212" srcset="https://depfields.com/wp-content/uploads/2020/06/opendrain-1.jpg 642w, https://depfields.com/wp-content/uploads/2020/06/opendrain-1-300x119.jpg 300w" sizes="(max-width: 536px) 100vw, 536px" /></figure>



<h2 class="wp-block-heading">CMOSによる出力構成回路</h2>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;プッシュプル出力回路&nbsp;</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンの出力回路はMOSFETの<strong>P型であるP-MOS</strong>と<strong>N型であるN-MOS</strong>を対称に構成した<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">C-MOS（Complementary　MOS）回路で構成</span></strong>されています。マイコン出力が1(High)のときはP-MOSがONとなり対称のN-MOSはOFFとなります。マイコン出力が0(Low)のときはP-MOSがOFFとなり対称のN-MOSはONとなります。つまり、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プッシュプル出力の回路</span></strong>です。<br></p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/cmos.jpg" alt="" class="wp-image-1842" width="490" height="220" srcset="https://depfields.com/wp-content/uploads/2020/06/cmos.jpg 587w, https://depfields.com/wp-content/uploads/2020/06/cmos-300x135.jpg 300w" sizes="(max-width: 490px) 100vw, 490px" /><figcaption>CMOSによる出力構成回路</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>C-MOSプッシュプル出力回路に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">負荷としてLEDをシンク接続した回路の動作</span></strong>を確認してみます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコン出力が1(High)であると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">P-MOSはON</span></strong>になり<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電源Vddに接続</span></strong>します。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">N-MOSはOFFになって切断</span></strong>されます。その結果、出力ピンは1（High）となるため<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">LEDには電流が流れ点灯</span></strong>します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコン出力が0(Low)であると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">P-MOSはOFF</span></strong>になり<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電源Vddとは切断</span></strong>されます。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">N-MOSはONになってグランドVssに接続</span></strong>されます。その結果、出力ピンは0（Low）となるため<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">LEDは両端がVssに接続したことなり消灯</span></strong>します。<br></p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/pushpullsource-output.jpg" alt="" class="wp-image-1846" width="351" height="195" srcset="https://depfields.com/wp-content/uploads/2020/06/pushpullsource-output.jpg 452w, https://depfields.com/wp-content/uploads/2020/06/pushpullsource-output-300x167.jpg 300w" sizes="(max-width: 351px) 100vw, 351px" /><figcaption>プッシュプルソース出力シンク接続</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>C-MOSプッシュプル出力回路に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">負荷としてLEDをソース接続した回路の動作</span></strong>を確認してみます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコン出力が0(Low)であると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">N-MOS はON</span></strong>になり<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">グランドVssに接続</span></strong>します。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">P-MOSはOFFになって切断</span></strong>されます。その結果、出力ピンは0（Low）となるため<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">LEDには電流が流れ点灯</span></strong>します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコン出力が1(High)であると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">N-MOSはOFF</span></strong>になり<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">グランドVssとは切断</span></strong>されます。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">P-MOSはONになって電源Vddに接続</span></strong>されます。その結果、出力ピンは1（High）となるため<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">LEDは両端がVddに接続したことなり電流が流れないため消灯</span></strong>します。<br></p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/pushpullsink-output.jpg" alt="" class="wp-image-1845" width="366" height="207" srcset="https://depfields.com/wp-content/uploads/2020/06/pushpullsink-output.jpg 431w, https://depfields.com/wp-content/uploads/2020/06/pushpullsink-output-300x170.jpg 300w, https://depfields.com/wp-content/uploads/2020/06/pushpullsink-output-320x180.jpg 320w" sizes="(max-width: 366px) 100vw, 366px" /><figcaption>プッシュプルシンク出力ソース接続</figcaption></figure>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;オープンドレイン出力回路&nbsp;</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">出力にオープンドレイン</span></strong>を選択した場合は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">P-MOSが無効で使用されない</span></strong>と考えればよいです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>このため、<strong>マイコン出力が1(High)であると</strong>N-MOSもOFFで<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">出力ピンはどこにも接続されていない浮いた状態</span></strong>となります。<strong>マイコン出力が0(Low)である</strong>とN-MOS はONになりグランドVssに接続するため<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">出力ピンは0（Low）</span></strong>となります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/opendrainsink-output.jpg" alt="" class="wp-image-1847" width="344" height="223" srcset="https://depfields.com/wp-content/uploads/2020/06/opendrainsink-output.jpg 411w, https://depfields.com/wp-content/uploads/2020/06/opendrainsink-output-300x195.jpg 300w" sizes="(max-width: 344px) 100vw, 344px" /><figcaption>オープンドレインシンク出力</figcaption></figure>



<h2 class="wp-block-heading">出力インターフェース</h2>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;トランジスタをつかったインターフェース&nbsp;</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンの出力ポートはC-MOSで構成されている回路です。この<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">C-MOSの出力ピンには許容可能な最大電流</span></strong>が決められています。STM32マイコンの場合は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">各ポート単位で8mAまで</span></strong>としておいてください。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>負荷に流れる電流がLEDのように小さいものならば出力ピンに直接接続して使うことができますが、出力で駆動したい負荷（出力につないで使いたい負荷）はLEDのような小さな駆動電流で機能する抵抗負荷ばかりではありません。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>例えば、リレー、モーターのような<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">誘導負荷</span></strong>やヒーターのような<em><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>駆動電流の大きな負荷な</strong>ど</span></em>があります。また、一つ当たりの負荷容量が小さいLEDの場合でも個数が多い場合はマイコンの許容電流を超えてしまいます。<br>このような場合は、マイコンと負荷の間に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">インターフェース回路を設けて駆動</span></strong>します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>トランジスタをインターフェースとしてLEDを駆動する回路を見てみましょう。<strong>マイコン出力ポートが1(High)のとき</strong>、トランジスタに<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ベース電流が流れONとなり導通</span></strong>します。その結果<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">LEDに電流が流れON</span></strong>します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>トランジスタには<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電流増幅機能</span></strong>がありますのでベース電流に対して負荷LEDに流せるコレクタ電流は電源容量で許される限り大きなものが流せます。つまり、ベース電流は小さいものですむためマイコンの許容電流を気にせず負荷電流を流せるようになります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/transistor-current-amp.jpg" alt="" class="wp-image-1848" width="290" height="286"/><figcaption>トランジスタによる電流増幅</figcaption></figure>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;フォトカプラをつかったインターフェース&nbsp;</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコン出力に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">フォトカプラ</span></strong>というインターフェースを介して負荷を駆動する回路を見てみましょう。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">フォトカプラ</span></strong>は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力側と出力側が電気的に絶縁している素子</span></strong>です。入力側の電源と出力側の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電源を別のもの</span></strong>にすることで、負荷側で発生した<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ノイズを分離してマイコンの誤作動を防ぐことが可能</span></strong>です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>フォトカプラは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力側の発光ダイオードを駆動</span></strong>して、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">出力側のフォトトランジスタをON/OFFするスイッチ</span></strong>です。出力側トランジスタの許容範囲で負荷を駆動することができます。</p>
</div></div></div>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img decoding="async" width="308" height="215" data-id="2644" src="https://depfields.com/wp-content/uploads/2020/06/opt1.jpg" alt="" class="wp-image-2644" srcset="https://depfields.com/wp-content/uploads/2020/06/opt1.jpg 308w, https://depfields.com/wp-content/uploads/2020/06/opt1-300x209.jpg 300w" sizes="(max-width: 308px) 100vw, 308px" /><figcaption>フォトカプラ回路</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="504" height="320" data-id="2645" src="https://depfields.com/wp-content/uploads/2020/06/opt2.jpg" alt="" class="wp-image-2645" srcset="https://depfields.com/wp-content/uploads/2020/06/opt2.jpg 504w, https://depfields.com/wp-content/uploads/2020/06/opt2-300x190.jpg 300w" sizes="(max-width: 504px) 100vw, 504px" /><figcaption>フォトカプラ</figcaption></figure>
</figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>フォトカプラによる出力インターフェースでは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコン出力によりフォトカプラ発光ダイオードを駆動</span></strong>して出力トランジスタをONにします。駆動電流I<sub>F</sub>は抵抗器Rによりを調整します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>フォトカプラによる入力インターフェースでは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">外部スイッチ等</span>によりフォトカプラ発光ダイオードを駆動</strong>して出力トランジスタをONにします。駆動電流I<sub>F</sub>は抵抗器Rにより調整します。</p>
</div></div></div>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image"><img decoding="async" width="361" height="269" data-id="2642" src="https://depfields.com/wp-content/uploads/2020/06/input-optcoupler.jpg" alt="" class="wp-image-2642" srcset="https://depfields.com/wp-content/uploads/2020/06/input-optcoupler.jpg 361w, https://depfields.com/wp-content/uploads/2020/06/input-optcoupler-300x224.jpg 300w" sizes="(max-width: 361px) 100vw, 361px" /><figcaption>入力インターフェース</figcaption></figure>



<figure class="wp-block-image"><img decoding="async" width="321" height="266" data-id="2643" src="https://depfields.com/wp-content/uploads/2020/06/output-optcoupler.jpg" alt="" class="wp-image-2643" srcset="https://depfields.com/wp-content/uploads/2020/06/output-optcoupler.jpg 321w, https://depfields.com/wp-content/uploads/2020/06/output-optcoupler-300x249.jpg 300w" sizes="(max-width: 321px) 100vw, 321px" /><figcaption>出力インターフェース</figcaption></figure>
</figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>トランジスタをインターフェースとした場合と似ていますが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">フォトカプラは入力と出力が電気的に絶縁している</span></strong>ところが異なります。フォトカプラの仕様にもよりますがトランジスタの場合に比べて<strong>電流増幅率はそれほど大きくありません</strong>ので選定時には仕様書で負荷電流をよく調べる必要があります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>産業機器ではセンサー類などの入出力機器とマイコンとは電源を分離して使うこと多いです。高価なセンサーなどの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">機器側の電源とマイコン側の電源は</span></strong>ノイズなどの影響を考慮して<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">分離して使うのが鉄則</span></strong>です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>機械制御に特化した組み込み機器の一種である<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">PLC</span></strong>（Programable Logic Controller）では出力タイプはトランジスタ、リレーなどがあるのですが、内部のマイコンとはフォトカプラで分離しておりノイズに対して堅牢なシステムとなっています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>図では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">フォトカプラを介してリレーを駆動している回路</span></strong>です。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">リレーは入力コイルに与える電圧・電流信号により接点の開閉をおこなうもの</span></strong>です。プログラムで自動的にスイッチを切り替えるなどの電気回路ではリレーを使うと便利です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>リレー入力のコイルは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">誘導負荷</span></strong>というもので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">逆起電力が発生</span></strong>するために、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコン出力で直接駆動することはできません</span></strong>。そこで、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">フォトカプラを介してリレーを駆動</span></strong>します。図では動作を説明するための簡略図で、実際にはコイルで発生する逆起電力のための保護ダイオードなどが必要です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">リレーは有接点</span></strong>と呼ばれ、負荷側の接点を<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">機械的にON/OFF</span></strong>します。そのため、接点の消耗があり、開閉数に応じて交換する必要があります。この機械的に構成されたリレーに対して<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">半導体で構成された無接点リレー</span></strong>が<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">SSR</span></strong>(Solid State Relay)です。機械的な接点ではないため、動作速度が速い、接点が摩耗しないなどの特徴があり、ヒーターなどの制御によく使われます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/optcoupller-drive.jpg" alt="" class="wp-image-1849" width="374" height="259" srcset="https://depfields.com/wp-content/uploads/2020/06/optcoupller-drive.jpg 424w, https://depfields.com/wp-content/uploads/2020/06/optcoupller-drive-300x207.jpg 300w" sizes="(max-width: 374px) 100vw, 374px" /><figcaption>フォトカプラで絶縁したリレー駆動</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>フォトカプラを使った設計の詳細は「<strong><a href="https://depfields.com/hardware-design/" target="_blank" rel="noreferrer noopener" title="組み込みハードウェア設計【具体的な回路を紹介】">組み込みハードウェア設計</a></strong>」で解説しています。</p>
</div></div></div>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;専用ICを使ったインターフェース&nbsp;</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>DCモーター、ステッピングモーターなどを制御する場合、トランジスタなどの半導体スイッチを組み合わせた回路を構成して駆動するのですが、すべて機能がワンパッケージに内蔵された<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><a href="https://depfields.com/dcmotor-pwmcontrol/" target="_blank" rel="noreferrer noopener" title="DCモータのマイコンPWM出力による回転速度制御（オープンループ制御）">専用ドライバーIC</a></span></strong>を使用するのが便利で構成部品も少なく、性能およびコスト面で有利です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ドライバーICの入力側は各ドライバーの仕様に合わせたものを与えればよいだけです。実際の開発にあたっては対象のモーター仕様が決まり次第、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">性能、価格そして流通性（取得のしやすさ）を踏まえて市販のドライバーICを選択</span></strong>します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/motor-drive-output.jpg" alt="" class="wp-image-1850" width="365" height="242" srcset="https://depfields.com/wp-content/uploads/2020/06/motor-drive-output.jpg 365w, https://depfields.com/wp-content/uploads/2020/06/motor-drive-output-300x199.jpg 300w" sizes="(max-width: 365px) 100vw, 365px" /><figcaption>ドライバによるモータ駆動</figcaption></figure>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;マイコン保護ダイオード&nbsp;</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンのIOポートには<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">保護ダイオードが内蔵</span></strong>されていますが、これは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">クランプ回路</span></strong>と呼ばれています。信号の過電圧（サージ電圧など）や静電気放電(ESD)などから回路を保護します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ダイオードが図のような構成であることで、IOポートの信号電圧はVss(GND)からVdd(電源電圧)の範囲をこえたものであっても範囲内に制限されます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/diode-protection.jpg" alt="" class="wp-image-1851" width="440" height="342" srcset="https://depfields.com/wp-content/uploads/2020/06/diode-protection.jpg 594w, https://depfields.com/wp-content/uploads/2020/06/diode-protection-300x233.jpg 300w" sizes="(max-width: 440px) 100vw, 440px" /><figcaption>保護ダイオード</figcaption></figure>



<h2 class="wp-block-heading">スイッチについて（モーメンタリ・オルタネイト）</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>操作用スイッチの動作には<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">モーメンタリ</span></strong>と<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オルタネイト</span></strong>の2種類があります。</p>
</div></div></div>



<p><span style="color: #ffffff;"><span style="background-color: #003300;">&nbsp;モーメンタリ動作&nbsp;</span> </span>：</p>



<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">モーメンタリ</span></strong>はスイッチの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ボタンを押している間だけ、ON状態</span></strong>になりボタンから手を離すとOFF状態に戻ります。モーメンタリ”Momentary”は「一時的」や「瞬間的」といった意味です。</p>



<p><span style="color: #ffffff;"><span style="background-color: #003300;">&nbsp;オルタネイト動作&nbsp;</span> </span>：</p>



<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オルタネイト</span></strong>はボタンを一度押すとON状態になり、<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>手を放してもON状態を保持</strong></span>します。もう一度ボタンを押すとOFF状態になります。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">自己保持タイプのスイッチ</span></strong>といいます。オルタネート“Alternate”とは「交互」や「かわるがわる」といった意味です。</p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンの入力ピンに接続するスイッチはモーメンタリ動作するタイプであれば、カウンタ、タイマーと組み合わせていろいろな機能をもたせることができるようになります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/mc-circuit/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/66ef893ab508b12e94408db3e4888b1067a70aa39369dcb25b7239f66b074dae.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">Basic hardware circuits around Microcontroller [Must-see for beginners] | Mos...</div><div class="lkc-url" title="https://en.depfields.com/mc-circuit/">https://en.depfields.com/mc-circuit/</div><div class="lkc-excerpt">Electric Circuits and Ohm&#039;s LawThe electrical circuits used around MCUs are DC circuits, so they are not so difficult to understand if you know Ohm&#039;s law. However, it is necessary to familiarize yourself with the circuit becau</div></div><div class="clear">
							</div>
						</div></a></div></div><p>The post <a href="https://depfields.com/mc-circuit/">マイコン周辺のハードウェア基本回路【初心者・未経験者必見】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ビット、バイト、ワードとデジタル論理【マイコンプログラミングに必須】</title>
		<link>https://depfields.com/digital-logic/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=digital-logic</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Sun, 31 May 2020 12:25:57 +0000</pubDate>
				<category><![CDATA[組み込み技術の基本]]></category>
		<category><![CDATA[基礎知識]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=1724</guid>

					<description><![CDATA[<p>マイコンプログラミングにおいてはデータの四則演算以外にビット演算をよく使います。マイコンスキルが上達してマイコンのレジスタを直接設定する場合には特にビット、バイト、ワードの概念は欠かせません。この章ではデジタル論理につい [&#8230;]</p>
<p>The post <a href="https://depfields.com/digital-logic/">ビット、バイト、ワードとデジタル論理【マイコンプログラミングに必須】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img decoding="async" width="640" height="443" src="https://depfields.com/wp-content/uploads/2020/06/1140762_s.jpg" class="attachment-large size-large wp-post-image" alt="" srcset="https://depfields.com/wp-content/uploads/2020/06/1140762_s.jpg 640w, https://depfields.com/wp-content/uploads/2020/06/1140762_s-300x208.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></div>
<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">マイコンプログラミングにおいてはデータの四則演算以外にビット演算をよく使います。マイコンスキルが上達してマイコンのレジスタを直接設定する場合には特にビット、バイト、ワードの概念は欠かせません。この章ではデジタル論理についての基礎的な解説をおこなっていますのでしっかり理解してください。</p>







<h2 class="wp-block-heading">ビット、バイト、ワード</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ビット</span></strong>とは2種類の状態（0と1）によって区別する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">データ量の単位</span></strong>で、1ビットデータは0と1でOFFとON状態の区別表現ができます。&nbsp;<br><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコン内部では数値は2進数</span></strong>で扱われます。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">2進数の桁数のことをビット数</span></strong>と呼びます。</p>
</div></div></div>



<ul class="wp-block-list"><li><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ビット数が1の場合1ビット</span></strong>といい、0か1の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">2通り</span></strong>(2<sup>1</sup>)の数しか扱えません。</li><li><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ビット数が2の場合2ビット</span></strong>といい、2進数では00/01/10/11の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">4通り</span></strong>(2<sup>2</sup>)で10進数では0から3まで扱えます。</li><li><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ビット数が8の場合8ビット</span></strong>といい、2進数では00000000から11111111の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">256通り</span></strong>(2<sup>8</sup>)、10進数では0から255まで扱えます。</li><li><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ビット数が16の場合16ビット</span></strong>といい、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">65536通り</span></strong>(2<sup>16</sup>)、0から65535まで扱えます。</li></ul>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">1バイトは8ビット</span></strong>のことです。同様に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">16ビットを1ワード</span></strong>、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">32ビットをロングワード</span></strong>と呼びます。<br>バイトはBと表すため、例えば16kバイトは16kBと表現します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/table1.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/table1.jpg" alt="" class="wp-image-1793" width="509" height="141"/></a><figcaption>ビットと数値範囲</figcaption></figure>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/bit-byte-word.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/bit-byte-word.jpg" alt="" class="wp-image-1794" width="578" height="149" srcset="https://depfields.com/wp-content/uploads/2020/05/bit-byte-word.jpg 780w, https://depfields.com/wp-content/uploads/2020/05/bit-byte-word-300x78.jpg 300w" sizes="(max-width: 578px) 100vw, 578px" /></a><figcaption>ビット、バイト、ワード</figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<h2 class="wp-block-heading">デジタル論理</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">デジタル論理</span></strong>の考え方はプログラミングにおいても必須でソフトウェア的なものはあえてここでは説明しませんが、最低理解しておいてほしい基礎だけをあげておきます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>AND（アンド：論理積）、OR（オア：論理和）、NOT（ノット：否定）、NAND（ナンド）、NOR（ノア：）,XOR（エクスクルーシブオア：排他的論理和）のうち<strong>特に<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">AND</span>、<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">OR</span></strong>の真理値表、演算と<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">NOT</span></strong>は覚えずとも<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">理解はしておいてください</span></strong>。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ここで取り上げたいことは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコン周辺回路内で使われるデジタル論理</span></strong>です。マイコンはデジタル回路なので電気信号は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電源電圧レベルのVdd</span></strong>（デジタル回路での一般表記）と<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">グランドレベルのVss</span></strong>(デジタル回路での一般表記)かのどちらかです。デジタル論理では信号レベルが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Vddの場合1またはHレベル(High)</span></strong>で、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Vssの場合0またはLレベル(Low)</span></strong>であるといいます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>実際に回路を組むにあたって、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ANDは直列接続</span></strong>に相当し、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ORは並列接続</span></strong>に相当します。<br>また、出力回路のインターフェースを設計する際に必要な知識なのですが、デジタル1をマイコン出力する場合に実際の出力の電圧レベルを1のレベルにするのか0のレベルにするのかで反転したい場合がでてきます。このときに使われるのが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">論理を反転するNOT</span></strong>です。回路においては<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">トランジスタなどスイッチ素子を一つ介すると実現</span></strong>できます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコン出力が1の場合、スイッチ素子であるトランジスタのベースにI<sub>B</sub>が流れ、トランジスタがONします。<br>ONしますとトランジスタにコレクタ電流I<sub>C</sub>が流れ、結果出力はほぼ0V（厳密には電圧降下分Vceがあり0ではない）となりマイコン出力とは反転しています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/toransistor-not.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/toransistor-not.jpg" alt="" class="wp-image-1798" width="254" height="222"/></a><figcaption>トランジスタによるNOT回路</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>トランジスタの働きに関しては「<strong><a href="https://depfields.com/mc-circuit/" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener">マイコン周辺のハードウェア基本回路</a></strong>」で詳細を解説しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>スイッチで構成したAND, OR, NOT回路をみてみましょう。<br>スイッチがONで1、OFFで0であると定義すると、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">AND回路の入力はスイッチが直列</span></strong>につながれていますので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">すべてのスイッチSW1,SW2,SW3がON</span></strong>であるとき出力OUTは1つまりONします。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/and.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/and.jpg" alt="" class="wp-image-1795" width="405" height="93" srcset="https://depfields.com/wp-content/uploads/2020/05/and.jpg 401w, https://depfields.com/wp-content/uploads/2020/05/and-300x69.jpg 300w" sizes="(max-width: 405px) 100vw, 405px" /></a><figcaption>AND回路</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">OR回路ではスイッチが並列</span></strong>につながれていますので、SW1,SW2,SW3の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">いずれかのスイッチがON</span></strong>であれば出力は1となります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/or.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/or.jpg" alt="" class="wp-image-1816" width="239" height="138"/></a><figcaption>OR回路</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">NOT回路では</span></strong>入力が1のとき、OUT1は1ですがOUT2は0で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">反転出力</span></strong>となっているためNOT回路です。NOTを入れることは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">論理を反転</span></strong>するともいいます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/not.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/not.jpg" alt="" class="wp-image-1796" width="195" height="85"/></a><figcaption>NOT回路</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>論理の考えは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プログラム内のみならず、回路周辺にも使用する重要な概念</span></strong>ですので理解しておいてください。</p>
</div></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/digital-logic/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/0cbe20cfe2c6e7536d25330ecd6c8f18de918c93c563f2d350cb6d9f7a28aa5b.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">Bits, bytes, words and digital logic [essential for Microcontroller] | Most P...</div><div class="lkc-url" title="https://en.depfields.com/digital-logic/">https://en.depfields.com/digital-logic/</div><div class="lkc-excerpt">In MCU programming, bit operations are often used in addition to the four arithmetic operations on data. The concepts of bits, bytes, and words are indispensable, especially when MCU skills improve and MCU registers are set directly. This</div></div><div class="clear">
							</div>
						</div></a></div></div><p>The post <a href="https://depfields.com/digital-logic/">ビット、バイト、ワードとデジタル論理【マイコンプログラミングに必須】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>マイコンのビット数と使い分け</title>
		<link>https://depfields.com/mc-bit/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mc-bit</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Sun, 31 May 2020 02:30:34 +0000</pubDate>
				<category><![CDATA[組み込み技術の基本]]></category>
		<category><![CDATA[基礎知識]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=1722</guid>

					<description><![CDATA[<p>マイコンのビットとは ビット数によるマイコンの使い分け ポイント これから趣味のみならずプロとして組み込みエンジニアを目指すひとは性能、機能も充実している32ビットマイコンから一気に始めることをおすすめします。</p>
<p>The post <a href="https://depfields.com/mc-bit/">マイコンのビット数と使い分け</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img decoding="async" width="640" height="443" src="https://depfields.com/wp-content/uploads/2020/05/797484_s.jpg" class="attachment-large size-large wp-post-image" alt="" srcset="https://depfields.com/wp-content/uploads/2020/05/797484_s.jpg 640w, https://depfields.com/wp-content/uploads/2020/05/797484_s-300x208.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></div>




<h2 class="wp-block-heading">マイコンのビットとは</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンには８ビットでは現ルネサス社のH8シリーズ、16ビットでは電子工作で人気のMicrochip社のPIC24Fシリーズ、そして32ビットではARMコアのをもつST社のSTM32シリーズなどがあります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>8ビットマイコン、16ビットマイコン、32ビットマイコンとありますが、このビットはなにを意味しているのでしょうか。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>一言でいうと<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">一度に処理できるデータ（バス）の幅のこと</span></strong>です。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/mc-bit.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/mc-bit.jpg" alt="" class="wp-image-1769" width="378" height="278" srcset="https://depfields.com/wp-content/uploads/2020/05/mc-bit.jpg 447w, https://depfields.com/wp-content/uploads/2020/05/mc-bit-300x220.jpg 300w" sizes="(max-width: 378px) 100vw, 378px" /></a><figcaption>マイコンのビット数</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンを構成している大要素としてCPU、メモリ、I/Oがあります。このうち頭脳部分にあたるCPU(中央演算装置）はメモリに記録されているプログラムを読み込んで、その指示通りに処理や計算を行います。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>メモリは記憶装置のことでプログラムを格納するROM、一時的な変数などを格納するRAM、RAMやROMなどのメインメモリを読み書きする際のアドレスを保持したり、CPUや周辺機器の動作状態を保持・変更したりするレジスタという特殊なメモリがあります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>I/Oは入出力ポートのことで、マイコン内のI/Oはマイコン内蔵の周辺機能（AD、DA、タイマ、通信など）との橋渡しする部分のことです。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/micon_architecture.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/micon_architecture.jpg" alt="" class="wp-image-1076" width="422" height="422" srcset="https://depfields.com/wp-content/uploads/2020/05/micon_architecture.jpg 520w, https://depfields.com/wp-content/uploads/2020/05/micon_architecture-300x300.jpg 300w, https://depfields.com/wp-content/uploads/2020/05/micon_architecture-150x150.jpg 150w" sizes="(max-width: 422px) 100vw, 422px" /></a><figcaption>マイコン構成</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>CPUを中心としてデータがメモリやI/O間で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">バスとよばれる通路間</span></strong>でやり取りされるのですが、このデータの大きさがCPUのビット（ビット幅、ビット長）で決まっています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>CPUが一回の処理で8ビットマイコンであれば8ビットの大きさのデータが、32ビットマイコンであれば32ビットの大きさのデータがやり取りされます。<br>ビットが大きいほうが一度に処理されるデータが大きい、つまり処理速度が速いことになります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ビットが大きいマイコンのほうが小さいマイコンよりも処理速度は早く高性能ですが、その分<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">設定も回路も複雑になります</span></strong>。</p>
</div></div></div>



<h2 class="wp-block-heading">ビット数によるマイコンの使い分け</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>単純な機能であれば8ビットマイコンで十分であろうし、高機能な機器には高性能なビット数の大きいマイコンが必要です。一つの製品をシステムとして複数のマイコンで構成されている製品も多いです。例えば、家電の洗濯機では表示のみの単機能には8ビットマイコンの担当、高度な性能を要するモータ制御部には32ビットマイコンを担当させるなど、適材適所的に応用されています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンの歴史を振り返ると電卓向けに4ビットマイコンが登場したのが始まりです。文字コードを扱う用途では4ビットマイコンでは役不足で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">8ビットマイコン</span></strong>が広く使われるようになりました。データは０~255,または-128~ +128の範囲のものを演算できます。8ビットマイコンは汎用性の高く、現在でも簡易な用途では現役で使われています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>用途が多岐にわたり、多量の数値データや文字データを扱うアプリケーションには8ビットマイコンでも効率が悪く、特に漢字を含む16ビットの日本語コード（シフトJISなど）を扱うには<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">16ビットマイコンが</span></strong>必要とされます。扱うデータも０~65535,または-32768~ +32768の範囲のものに広がりました。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>実用レベルでは16ビットで十分なようですが、さらに高性能に進化してその後、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">32ビットマイコン</span></strong>が登場しました。特に多くのメモリを扱うためのアドレス空間を拡張するのに32ビットを使う理由があります。PCの世界では64ビットのCPUが主流です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>実用的なレベルで32ビットマイコンは多岐のアプリケーションで使われるようになった現在の状況を踏まえて32ビットのARMコアを持つマイコンは中心的な存在と言えるでしょう。</p>
</div></div></div>



<div style="display: inline-block; background: #191970; padding: 5px 10px; color: #ffffff; border-radius: 5px 5px 0px 0px;"><strong>ポイント</strong></div>
<div style="background: #ffffea; border-radius: 0px 10px 10px 10px; padding: 10px; border: 3px solid #191970;">
<p>これから趣味のみならずプロとして組み込みエンジニアを目指すひとは性能、機能も充実している32ビットマイコンから一気に始めることをおすすめします。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/mc-bit/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/f7a1e992f036d3901dffc9f74a5a8b6ea55f9e9f70b7f12891658755a40d338c.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">Number of bits and usage of Microcontroller | Most Powerful Bible to Become a...</div><div class="lkc-url" title="https://en.depfields.com/mc-bit/">https://en.depfields.com/mc-bit/</div><div class="lkc-excerpt">What are microcontroller bits?MCUs include the 8-bit H8 series from Renesas, the 16-bit PIC24F series from Microchip, which is popular for electronic construction, and the 32-bit STM32 series from ST, which has an ARM core.T</div></div><div class="clear">
							</div>
						</div></a></div></div><p>The post <a href="https://depfields.com/mc-bit/">マイコンのビット数と使い分け</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>デジタルの詳細【マイコンプログラミングに必須】</title>
		<link>https://depfields.com/digital-basics/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=digital-basics</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Sat, 30 May 2020 13:50:24 +0000</pubDate>
				<category><![CDATA[組み込み技術の基本]]></category>
		<category><![CDATA[基礎知識]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=1720</guid>

					<description><![CDATA[<p>デジタルの基本 標本化 時間方向でとびとびの値をとることをサンプリング（標本化）といいます。サンプリングは時間で表す場合はサンプリング周期T、周波数で表す場合はサンプリング周波数fといわれます。サンプリング周期Tは周波数 [&#8230;]</p>
<p>The post <a href="https://depfields.com/digital-basics/">デジタルの詳細【マイコンプログラミングに必須】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img decoding="async" width="400" height="282" src="https://depfields.com/wp-content/uploads/2020/05/compact-disc.jpg" class="attachment-large size-large wp-post-image" alt="" srcset="https://depfields.com/wp-content/uploads/2020/05/compact-disc.jpg 400w, https://depfields.com/wp-content/uploads/2020/05/compact-disc-300x212.jpg 300w" sizes="(max-width: 400px) 100vw, 400px" /></div>




<h2 class="wp-block-heading">デジタルの基本</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>さきほどデジタルの話で標本化、量子化、符号化の話がでてきました。ここでは詳細を解説します。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">デジタル</span></strong>とは端的に表現すると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">情報</span></strong>をとびとびの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">離散した値による符号にして表現したもの</span></strong>です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>アナログ信号からデジタル信号をつくるためにはAD（Analog-Digital）変換を通して数値を時間軸で刻んでサンプリング（<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">標本化</span></strong>ともいう）し、信号の大きさ（信号の振幅）を離散的な数値に刻むことを<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">量子化</span></strong>といいます。<br>その数値を2進数の0と1に変換することを<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">符号化</span></strong>といいます。</p>
</div></div></div>



<h2 class="wp-block-heading">標本化</h2>



<p>時間方向でとびとびの値をとることを<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">サンプリング（標本化）</span></strong>といいます。サンプリングは時間で表す場合はサンプリング周期T、周波数で表す場合はサンプリング周波数fといわれます。<br>サンプリング周期Tは周波数の逆数です。T=1/f</p>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>例えばオーディオCDのサンプリング周波数fは44.1kHzですのでサンプリング周期Tは　T=1/(44.1x1000)=22.676usとなります。<br>ちなみに<strong>サンプリング周波数がfの場合、デジタル信号はその半分の周波数f/2まで表現</strong>できます。（詳しくはサンプリング定理を調べてください）。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>通常の人間が知覚できるといわれている周波数上限は約20kHzといわれているためCDの音質はほとんどの領域を満たしていると言えます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/sampling-1.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/sampling-1.jpg" alt="" class="wp-image-1733" width="480" height="273" srcset="https://depfields.com/wp-content/uploads/2020/05/sampling-1.jpg 516w, https://depfields.com/wp-content/uploads/2020/05/sampling-1-300x170.jpg 300w" sizes="(max-width: 480px) 100vw, 480px" /></a><figcaption>サンプリング（標本化）</figcaption></figure>



<h2 class="wp-block-heading">量子化</h2>



<p>振幅方向を何段階かに分割することを<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">量子化</span></strong>といい、その分割量を<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">量子化ビット</span></strong>といいます。この量子化ビットが大きくなる、つまり<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">量子化ビットの分解能が高くなるほど信号の振幅を細かく表せます</span></strong>。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/quantization.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/quantization.jpg" alt="" class="wp-image-1734" width="589" height="269" srcset="https://depfields.com/wp-content/uploads/2020/05/quantization.jpg 624w, https://depfields.com/wp-content/uploads/2020/05/quantization-300x137.jpg 300w" sizes="(max-width: 589px) 100vw, 589px" /></a><figcaption>量子化</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>量子化ビットが2ビットでは4段階（2の2乗)、4ビットで16段階（2の4乗)、nビットでは2<sup>n</sup>段階となります。例えばオーディオCDの量子化ビット数は16ビットですので65,536段階（2<sup>16</sup>）です。<br>マイコンのADコンバータ（アナログ-デジタル変換）で量子化ビットが8ビット（256段階）の場合、例えばアナログ信号最大値5Vのマイコンでは量子化ビット256で分解するので分解能は5/256=0.0195Vです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>イメージスキャナなどで画像データを取り込むときに各色（RGB)8ビット256段階で取り込むことが多いですが、この場合は24ビットカラー（8ビットx 3色）と呼ばれ約1677万段階の色を表現できます。<br>ただし、色の表現としては各色（RGB)8ビット256段階は単色の場合には表現力があまりよくないために、各色12ビット4096段階や各色16ビットに対応しているものもあります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>サンプリング周波数が高く、量子化ビットが大きくなるにつれて、信号はより連続のものに近づいていくことになります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">量子化ビット</span></strong>は組み込み技術においては<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">アナログ信号を扱ううえで重要な概念</span></strong>です。</p>
</div></div></div>



<h2 class="wp-block-heading">符号化</h2>



<p>量子化で得られたデータを<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">2進数のデジタルデータに変換することを符号化</span></strong>といいます。符号化により0と1だけのコンピュータが扱えるデータとなります。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/coding.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/coding.jpg" alt="" class="wp-image-2304" width="506" height="285" srcset="https://depfields.com/wp-content/uploads/2020/06/coding.jpg 518w, https://depfields.com/wp-content/uploads/2020/06/coding-300x169.jpg 300w, https://depfields.com/wp-content/uploads/2020/06/coding-320x180.jpg 320w" sizes="(max-width: 506px) 100vw, 506px" /></a><figcaption>符号化（4ビット）</figcaption></figure>



<div style="display: inline-block; background: #191970; padding: 5px 10px; color: #ffffff; border-radius: 5px 5px 0px 0px;"><strong>ポイント</strong></div>
<div style="background: #ffffea; border-radius: 0px 10px 10px 10px; padding: 10px; border: 3px solid #191970;">
<p>コンピュータは符号化された2進数データを扱います。身の回りの音声、映像、光などアナログ的な物理量はコンピュータ内ではすべて符号化されたデジタル量です。メモリ等に保存された音声データも画像データも中身はすべて符号化した0と1のデジタルデータです。データ種類は規格（フォーマット）にしたがって区別しています。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/digital-basics/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/8c6215b111b62cb4a74f5b282145fe0cd36c0590830b56395f8f3b37ab14cf1e.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">Digital Details [Required for Microcontroller programming] | Most Powerful Bi...</div><div class="lkc-url" title="https://en.depfields.com/digital-basics/">https://en.depfields.com/digital-basics/</div><div class="lkc-excerpt">Digital BasicsEarlier in the digital discussion, I talked about sampling, quantization, and coding. Here, I will explain the details. Digital is simply the expression of information in the form of a code of discrete values.T</div></div><div class="clear">
							</div>
						</div></a></div></div><p>The post <a href="https://depfields.com/digital-basics/">デジタルの詳細【マイコンプログラミングに必須】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>マイコンで扱うアナログとは？デジタルとは？【まずはここから】</title>
		<link>https://depfields.com/analog-digital/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=analog-digital</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Sat, 30 May 2020 11:55:28 +0000</pubDate>
				<category><![CDATA[組み込み技術の基本]]></category>
		<category><![CDATA[基礎知識]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=1693</guid>

					<description><![CDATA[<p>マイコンを扱ううえでまず始めに理解したい概念がアナログとデジタルです。アナログとデジタルは何がどうちがうのか、意外と説明できないひとも多いのではないのでしょうか。この章ではマイコンを扱う上でもとても大切な両者の概念をわか [&#8230;]</p>
<p>The post <a href="https://depfields.com/analog-digital/">マイコンで扱うアナログとは？デジタルとは？【まずはここから】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img decoding="async" width="400" height="250" src="https://depfields.com/wp-content/uploads/2020/05/record-player.jpg" class="attachment-large size-large wp-post-image" alt="" srcset="https://depfields.com/wp-content/uploads/2020/05/record-player.jpg 400w, https://depfields.com/wp-content/uploads/2020/05/record-player-300x188.jpg 300w" sizes="(max-width: 400px) 100vw, 400px" /></div>
<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">マイコンを扱ううえでまず始めに理解したい概念がアナログとデジタルです。アナログとデジタルは何がどうちがうのか、意外と説明できないひとも多いのではないのでしょうか。この章ではマイコンを扱う上でもとても大切な両者の概念をわかりやすく解説しています。</p>







<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<h2 class="wp-block-heading">アナログとは</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">アナログ</span></strong>とは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">連続した物理的な量</span></strong>のことをいいます。例えば自然界の音や光の強さなどは連続したアナログ量です。これらの量を電気的に変換して観測すると連続した波形となっています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>一昔前の<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>レコードやカセットテープはアナログの典型</strong></span>的なもので、原音から録音時にレコード盤では溝の形状に情報として再現できるように記録したもので、カセットテープは磁気により情報を記録したものです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これらのメディアと呼ばれる媒体はアナログの情報で記録されているので、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">時間が経つと劣化</span></strong>します。ノイズが入るともいいます。レコードの場合は音がとんだり、カセットテープの場合はテープ自体の伸びなどで音が伸びたり縮んだりします。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/record-player-and-wave.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/record-player-and-wave.jpg" alt="" class="wp-image-1695" width="521" height="205" srcset="https://depfields.com/wp-content/uploads/2020/05/record-player-and-wave.jpg 531w, https://depfields.com/wp-content/uploads/2020/05/record-player-and-wave-300x118.jpg 300w" sizes="(max-width: 521px) 100vw, 521px" /></a><figcaption>レコードと音声波形</figcaption></figure>



<h2 class="wp-block-heading">デジタルとは</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>コンピュータの出現とともに普及したデジタルの概念は、自然界の物理的な連続した量に対して<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">離散的な数値で表現する方式</span></strong>です。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/analog-and-digital.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/analog-and-digital.jpg" alt="" class="wp-image-1696" width="561" height="228" srcset="https://depfields.com/wp-content/uploads/2020/05/analog-and-digital.jpg 667w, https://depfields.com/wp-content/uploads/2020/05/analog-and-digital-300x122.jpg 300w" sizes="(max-width: 561px) 100vw, 561px" /></a><figcaption>アナログとデジタル</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">離散的な数値</span></strong>とはある量を短い一定期間（<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">サンプリング期間</span></strong>）で区切って表す数値のことです。時間軸で刻むことを<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">標本化</span></strong>(<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">サンプリング</span></strong>)といい、ある量の大きさを離散的な数値に刻むことを<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">量子化</span></strong>といいます。<br>この数値の大きさを2進数の0と1で表現することを<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">符号化</span></strong>といいます。デジタルは0と1だけの世界だというのはこの符号化したものを意味しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>また、サンプリング期間は短くなればなるほど連続したものに近づくため、例えば音であれば自然に近づき音質がよくなります。<br>サンプリング期間を表すものに<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">サンプリング周波数</span></strong>といい、例えばCD音質は44.1kHzであるといった表現をします。CDの音は1秒間に44,100回に区切られて処理されたものであるため<strong>人間の耳には連続</strong>にしか聞こえません。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>アナログ情報は劣化するのに対して、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">デジタル情報は劣化しません</span></strong>。<br>例えばCDは符号化した数値をCDというメディアに記録しているので、音の再現ではこの符号化した数値を44.1kHzのサンプリング周波数でデジタル値として取り出し、このデジタル値をDA（Digital-Analog）コンバータという機能を用いてアナログ値に変換して音として表現するのです。</p>
</div></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>この<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">デジタルの劣化</span></strong>に関しては誤解が大いにあるようですが、デジタルの本質を考えるとおのずと答えはわかるでしょう。画像、音源などはコピー時の圧縮などにより劣化することはありますが、これは<span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b"><strong>データ変換の問題</strong>であって<strong>デジタル自体がコピーにより劣化することではありません</strong>。</span></p>
</div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/digital-reshapable.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/digital-reshapable.jpg" alt="" class="wp-image-4694" width="469" height="330"/></a><figcaption>デジタルはコピーしても劣化しない</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ここで大事なところは、マイコン内部で扱える情報はデジタル値のみですが、この世の中はアナログ的なもので成り立っているため<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>最終的にはすべてアナログ</strong></span>であるということです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>例えばマイコン内部で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">デジタル音源はDAコンバータでアナログ音源に変換</span></strong>されますがこの音源はアナログ電圧信号の状態ですのでこのままでは何も聞こえません。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>人の耳に聞こえるようになるまでは微小なアナログ信号をできるだけ忠実に増幅するアナログ電子回路（増幅回路）、増幅したアナログ信号をできるだけ良い音質に再現するヘッドホンなど<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">アナログ技術のインターフェースが必要</span></strong>なのです。</p>
</div></div></div>



<div style="display: inline-block; background: #191970; padding: 5px 10px; color: #ffffff; border-radius: 5px 5px 0px 0px;"><strong>ポイント</strong></div>
<div style="background: #ffffea; border-radius: 0px 10px 10px 10px; padding: 10px; border: 3px solid #191970;">
<p>組み込みの技術者はデジタルとアナログのつなぎ部分である<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">インターフェースに関しても基本的な理解をしておくことが重要</span></strong>です。</p>
</div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/digital-to-analog.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/digital-to-analog.jpg" alt="" class="wp-image-1698" width="363" height="218" srcset="https://depfields.com/wp-content/uploads/2020/05/digital-to-analog.jpg 372w, https://depfields.com/wp-content/uploads/2020/05/digital-to-analog-300x180.jpg 300w" sizes="(max-width: 363px) 100vw, 363px" /></a><figcaption>デジタルからアナログへ</figcaption></figure>



<h2 class="wp-block-heading">マイコンで扱うアナログ・デジタル入出力</h2>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/07/io-signal.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/07/io-signal.jpg" alt="" class="wp-image-4752" width="516" height="203" srcset="https://depfields.com/wp-content/uploads/2020/07/io-signal.jpg 665w, https://depfields.com/wp-content/uploads/2020/07/io-signal-300x118.jpg 300w" sizes="(max-width: 516px) 100vw, 516px" /></a><figcaption>マイコンの入出力</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンへの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力と出力にはアナログとデジタルの2種類があります</span></strong>。自然界のさまざまな物理量をセンサで電気信号に変換したものがアナログ入力となります。アナログ入力の場合はマイコンが処理できるようにするために<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">AD変換とよばれるアナログからデジタルに変換する工程が必要</span></strong>です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>対して、スイッチの状態やON/OFF（０と１）の繰り返しであるパルスまたはさまざまな通信規格にしたがった信号はデジタル入力でマイコンは直接処理することができます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンはとりこんだ入力をプログラミングされたデジタル処理を施して電気信号として出力するものですが、これにもアナログとデジタルがあります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>アナログ信号として出力する場合はマイコンで処理した情報を<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">DA変換と呼ばれるデジタルからアナログに変換する工程が必要</span></strong>です。アナログ信号として出力された電気信号は目的に応じた変換装置（アンプ）で所望の物理量に変換します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>対して、ON/OFFを切り替える状態出力や、所望の周波数パルスまた通信規格に従った出力はデジタル出力とよばれます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>アナログとデジタルがマイコンを扱ううえでとても重要な概念であることが理解できたと思います。</p>
</div></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>アナログは古く時代遅れ、デジタルは新しいといったイメージは本来の意味からはかけ離れた誤用なのですが、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">もともと自然界にあるアナログの世界にデジタルが後発で登場しただけ</span></strong>のことで、古いと新しいを比較する次元のものではないことを理解していただけたと思います。<br>デジタル技術のなかでも特に<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">マイコン</span></strong>の登場で、従来では<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">センスも経験も必要なアナログ回路（ハードウェア）</span></strong>で構成していたところを<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">身近なプログラミング（ソフトウェア）</span></strong>で構成できることから<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">高機能な機器がより低コスト、省サイズで実現</span></strong>できるようになりました。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/analog-digital/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/4a54a779e6bbe37a1d32f47a1e2a1d1437aed37085d0e5ff59216826a45cfd56.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">What is analog handled by Microcontroller? What is digital? [Let&#039;s start...</div><div class="lkc-url" title="https://en.depfields.com/analog-digital/">https://en.depfields.com/analog-digital/</div><div class="lkc-excerpt">The first concepts to understand when dealing with MCUs are analog and digital. Many people may be surprised that they cannot explain what the difference is between analog and digital. This chapter explains both concepts in an easy-to-unde</div></div><div class="clear">
							</div>
						</div></a></div></div><p>The post <a href="https://depfields.com/analog-digital/">マイコンで扱うアナログとは？デジタルとは？【まずはここから】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ARMマイコンと組み込みプログラミングにおけるC言語のツボ</title>
		<link>https://depfields.com/c-language/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=c-language</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Fri, 29 May 2020 06:46:48 +0000</pubDate>
				<category><![CDATA[組み込みに使われるマイコン]]></category>
		<category><![CDATA[基礎知識]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=1543</guid>

					<description><![CDATA[<p>C言語はやさしい！？ CMSISインターフェース規格に準じた仕様 ポイント 変数の中でも定数の場合はconst修飾子のついた変数として宣言します。組み込みの場合はROMに配置されますので、値の変更はできなくなります。値の [&#8230;]</p>
<p>The post <a href="https://depfields.com/c-language/">ARMマイコンと組み込みプログラミングにおけるC言語のツボ</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img decoding="async" width="1024" height="683" src="https://depfields.com/wp-content/uploads/2020/05/coding-1853305_1920-1024x683.jpg" class="attachment-large size-large wp-post-image" alt="" srcset="https://depfields.com/wp-content/uploads/2020/05/coding-1853305_1920-1024x683.jpg 1024w, https://depfields.com/wp-content/uploads/2020/05/coding-1853305_1920-300x200.jpg 300w, https://depfields.com/wp-content/uploads/2020/05/coding-1853305_1920-768x512.jpg 768w, https://depfields.com/wp-content/uploads/2020/05/coding-1853305_1920-1536x1024.jpg 1536w, https://depfields.com/wp-content/uploads/2020/05/coding-1853305_1920.jpg 780w" sizes="(max-width: 1024px) 100vw, 1024px" /></div>




<h2 class="wp-block-heading">C言語はやさしい！？</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>今の世の中ではさまざまなプログラミング言語が存在しています。その中でC言語は比較的歴史が長いのですが、廃れることなくいまでも組み込みでの開発言語として現役で使用されています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>他のプログラム言語に比べて、コードが軽くリアルタイムの制御に向いているなどの利点に加え、歴史が長い分、これまでの資産が豊富にあることもいまでの現役である理由でしょう。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/07/3250120_s.jpg" alt="" class="wp-image-4728" width="501" height="334" srcset="https://depfields.com/wp-content/uploads/2020/07/3250120_s.jpg 640w, https://depfields.com/wp-content/uploads/2020/07/3250120_s-300x200.jpg 300w" sizes="(max-width: 501px) 100vw, 501px" /></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ARMマイコンにはC言語は必須です。総合開発環境にもC言語やC++が標準です。C言語の歴史は古い分、成熟したプログラム言語でそれだけ書籍も豊富で自分にあったものも見つけやすいでしょう。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">抽象的なプログラミングだけの学習ではなく、マイコンを操作しながらの具体的に学習であれば独学でも短期間で習得できる</span></strong>でしょう。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>C言語に限らずどの言語でも文法上の最低限のルールや言語開発環境ツールに一度慣れるとあとは独学でもどんどん学習をすすめていけるものです。はじめのきっかけの一歩をどうするかが問題なわけですが、このサイトでは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">できるだけ早い段階で組み込み開発の環境でマイコンとC言語の学習を同時に行うことをおすすめします</span></strong>。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>C言語はプログラミング言語のなかでも古典的な分類にはいるわけですが、その分、文法的なクセに慣れさえすれば、例えばWindowsアプリ開発プログラム言語のC＃に比べて最新の知識やオブジェクト指向プログラミングをあえて意識する必要はないため<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">むしろ単純ですっきりしている</span></strong>と思います。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>C言語は高級言語ではあるのですが、汎用言語なのでなんでもかんでも既成の便利関数が用意されているわけでもなく、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">基本的な標準関数を利用してちょっとした機能を自作の関数という概念で作り上げていくことでスキルアップ</span></strong>してくこともC言語の醍醐味です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>C言語らしい構造のプログラミングをはじめから意識する必要はまったくなく、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">初心者のうちは演算子と制御文の組み合わせだけの記述</span></strong>で動作するのであればそれいいと思います。ただし、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">変数関連の概念（ローカル変数、グローバル変数、static修飾子等）は最重要で初心者のうちからしっかり学習</span></strong>しておいてください。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>C言語特有のポインタ、構造体および共用体といったものを駆使した複雑なプログラミングはさておき、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">基本演算(四則、論理、ビット演算等）</span></strong>や<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">制御構造(ifやswitch文）</span></strong>といった基礎的なプログラムであればある程度使いこなせるようになるまではそんなに時間はかからないでしょう。マイコンで<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">特に大事なところはデジタル値を扱うための演算子を使いこなすところ</span></strong>ですので、このあたりは重点的に理解しておいたほうがよいでしょう。そう割り切ってC言語と付き合うと、むしろやさしい分類にはいるのではないでしょうか。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>慣れてくるにしたがって、文字列を自由に扱うなどより高度なことに挑戦したくなるので、その段階になってポインタや構造体などを意識してC言語らしいプログラミングを求めればよいのではないでしょうか。<br>C言語は奥が深いのでいくらでも<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">難解なもの</span></strong>にはできますがそれは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実用的に好ましくはありません</span></strong>。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>まずは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">自分が見やすく整理されたプログラミング</span></strong>を心がければいいと思います。</p>
</div></div></div>



<h2 class="wp-block-heading">CMSISインターフェース規格に準じた仕様</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>一言でC言語といっても、言語の文法は共通なのですが、組み込みで使用するものはマイコンの仕様により多少異なりますので合わせる必要があります。言葉でいえば方言のようなものです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>方言のなかでも仕様が異なるのは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">変数の宣言の仕方</span></strong>のところくらいのものです。STM32マイコンのコンパイラは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ARM社が定めたCortex-Mシリーズで標準化されたCMSISインターフェース規格</span></strong>に準じています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/variable_declaration1.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/variable_declaration1.jpg" alt="" class="wp-image-1625" width="423" height="196" srcset="https://depfields.com/wp-content/uploads/2020/05/variable_declaration1.jpg 465w, https://depfields.com/wp-content/uploads/2020/05/variable_declaration1-300x139.jpg 300w" sizes="(max-width: 423px) 100vw, 423px" /></a><figcaption class="wp-element-caption">通常変数</figcaption></figure>



<div style="display: inline-block; background: #191970; padding: 5px 10px; color: #ffffff; border-radius: 5px 5px 0px 0px;"><strong>ポイント</strong></div>
<div style="background: #ffffea; border-radius: 0px 10px 10px 10px; padding: 10px; border: 3px solid #191970;">
<p>変数の中でも<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">定数の場合はconst修飾子のついた変数として宣言</span></strong>します。組み込みの場合は<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">ROMに配置</span></strong>されますので、値の変更はできなくなります。値の変更する必要のない変数は定数として<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">RAM節約のためにconst修飾子をつけてROMに割り当て</span></strong>ます。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/variable_declaration2.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/variable_declaration2.jpg" alt="" class="wp-image-1626" width="424" height="191" srcset="https://depfields.com/wp-content/uploads/2020/05/variable_declaration2.jpg 460w, https://depfields.com/wp-content/uploads/2020/05/variable_declaration2-300x135.jpg 300w" sizes="(max-width: 424px) 100vw, 424px" /></a><figcaption class="wp-element-caption">const修飾子変数</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>小数点を扱う場合は浮動小数点型を使用します。Cortex-M3搭載のSTM32は演算をソフトウェアで行うので超高速ではありませんが32マイコンですので十分可能です。変数の型は単精度4バイトではfloatを、倍精度8バイトではdoubleを指定します。これらは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ARM特有ではなく、標準的なもの</span></strong>です。</p>
</div></div></div>



<h2 class="wp-block-heading">組み込みに特有な部分</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>C言語で<strong>組み込み特有のもの</strong>といえば"<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">volatile</span></strong>"修飾子のついた変数を使うことです。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/variable_declaration3-1.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/variable_declaration3-1.jpg" alt="" class="wp-image-1782" width="421" height="189" srcset="https://depfields.com/wp-content/uploads/2020/05/variable_declaration3-1.jpg 460w, https://depfields.com/wp-content/uploads/2020/05/variable_declaration3-1-300x134.jpg 300w" sizes="(max-width: 421px) 100vw, 421px" /></a><figcaption class="wp-element-caption">volatile修飾子変数</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>volatile修飾子をつけて変数を宣言すると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">コンパイル時に最適化を抑止</span></strong>します。組み込み系では下記の例のように変数はCPUが常に関わっているものばかりではありません。</p>
</div></div></div>



<ul class="wp-block-list">
<li><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">値の変化をプログラム（CPU)が予測できない</span>変数</strong></li>



<li><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">割り込みなどで値が変わりうる</span>変数</strong></li>



<li><strong>ハードウェアと密接に関わっていて<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">CPUとは無関係に更新</span>される変数</strong></li>
</ul>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>コンパイル時に最適化されると、コード自体は無駄を削られたり処理速度が向上するのですが組み込み系特有の変数でCPUとは関連なしにハードウェアと密接に関わっている変数などは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">最適化により想定外の動作をしてバグを発生させる</span></strong>ことがあります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>このため、変数により<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">"volatile"修飾子をつけて宣言</span></strong>して<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">コンパイル時に最適化させない</span></strong>ようにします。ARM系コアでは修飾子として "__IO"をつけます。</p>
</div></div></div>



<div style="display: inline-block; background: #191970; padding: 5px 10px; color: #ffffff; border-radius: 5px 5px 0px 0px;"><strong>ポイント</strong></div>
<div style="background: #ffffea; border-radius: 0px 10px 10px 10px; padding: 10px; border: 3px solid #191970;">
<p>アプリケーションで<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">割り込み処理内で使用する変数</span></strong>、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">周辺機能（ペリフェラル）により処理される変数</span></strong>は修飾子"__IO"をつけて"volatile"変数として宣言しておきます。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h2 class="wp-block-heading">まとめ</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>この章ではマイコンの開発プログラミングに必須なC言語について解説してきました。プログラマーの間ではC言語は難易度が高く、敬遠されがちなところもあるようですが、プログラミング言語としてC言語そのものが難しいのではなく、初心者には難しい側面があるだけです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>組み込み初心者としては、比較的単純な構造のプログラミングでマイコンを操作することで慣れていくことをおすすめします。C言語特有の難解な概念のものは後回しにして、基本の演算や制御を操作しながら、変数の概念をしっかりおさえることが上達のツボであることを解説しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ARMマイコンの開発するC言語の仕様はARMの規格にしたがっており、変数表記が汎用C言語と多少異なりますが、違いはその部分だけです。</p>
</div></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>C言語の兄貴分の言語として、オブジェクト指向に対応したC++がありますが、プログラミングに慣れていないうちはC言語から始めることをお勧めします。オブジェクト指向の考え方自体は重要なのですが、慣れないうちにオブジェクト指向から入ると抽象的なため本来の目的を見失ってしまう恐れがあります。まずは、組み込みプログラミングというものに慣れて、ゆとりがあれば次のステップでオブジェクト指向のC++に挑戦してみればよいでしょう。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<p>教材ボードを使用したクロス環境でのC言語学習方法について</p>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/guidance" target="_blank"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">1 Pocket</div></div><div class="lkc-date">2020.05.04</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/05/cog-wheels-1920_rev-150x150.jpg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">ARMマイコンをつかった組み込み技術習得のスキルアップ学習カリキュラム</div><div class="lkc-url" title="https://depfields.com/guidance">https://depfields.com/guidance</div><div class="lkc-excerpt">組み込みエンジニアになるために必要な資質および技能組み込み技術に興味はあるけど、どこから手をつければよいかわからない...めかのとろといったひとに組み込み技術を習得するうえでのカリキュラムにて準備するべきものを解説します。各個人によって、何から手をつければよいかは異なります。そのまえに、知っておいて欲しい組み込み世界の奥深さ...めかのとろ組み込み技術を身につけるには幅広い知識・経験を必要とします。その中でも特に初心者・未経験者にはとりわけコア部分であるマイコンの学習を始める前に電気・電子回路の知...</div></div><div class="clear">
							</div>
						</div></a></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<p>C言語学習におけるモニター出力について</p>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/monitor-debug-apl" target="_blank"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.06.16</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/05/arif-riyanto-1DRq1ZsE2N0-unsplash-1-150x150.jpg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">シリアルモニター【STM32シリアル通信】</div><div class="lkc-url" title="https://depfields.com/monitor-debug-apl">https://depfields.com/monitor-debug-apl</div><div class="lkc-excerpt">STM32マイコンのシリアル通信機能を利用してプログラミングのデバッグを行います。プログラム内の任意の箇所に数値を表示するマイコン専用tsprintf文を挿入してPCの汎用ターミナルソフトでデータを表示することでデバッグを実現します。めかのとろプログラム内部の演算結果データや、分岐場所など特定するのに便利なモニターデバッグ用シリアルモニターアプリを紹介します。めかのとろ割り込みを使用した文字列送信（バッファ付き）をベースにしており、サンプルプログラムではシリアル通信USART3をシリアルモニター用に設定し、送信関...</div></div><div class="clear">
							</div>
						</div></a></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/c-language/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/ce21e6f2a06f40b2785d359686c4f50965365435bd5b16902d639767da26da34.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">C Language points in ARM Microcontrollers and Embedded programming | Most Pow...</div><div class="lkc-url" title="https://en.depfields.com/c-language/">https://en.depfields.com/c-language/</div><div class="lkc-excerpt">C language is easy!?There are many different programming languages in the world today. Among them, C has a relatively long history and is still in use as a development language for embedded systems.In addition to its advanta</div></div><div class="clear">
							</div>
						</div></a></div></div><p>The post <a href="https://depfields.com/c-language/">ARMマイコンと組み込みプログラミングにおけるC言語のツボ</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>組み込みエンジニアのためのマイコン周辺の基礎知識【初心者必見】</title>
		<link>https://depfields.com/background/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=background</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Sun, 24 May 2020 13:58:52 +0000</pubDate>
				<category><![CDATA[組み込みに使われるマイコン]]></category>
		<category><![CDATA[基礎知識]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=1201</guid>

					<description><![CDATA[<p>マイコン周辺のハードとソフト マイコン自体はどんな構成でどのような機能をもったものでしょうか。 マイコン（マイクロコントローラ）はコンピュータの中でも電気機器を制御するのに特化したコンピュータで頭脳の役割であるCPUのほ [&#8230;]</p>
<p>The post <a href="https://depfields.com/background/">組み込みエンジニアのためのマイコン周辺の基礎知識【初心者必見】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img decoding="async" width="693" height="529" src="https://depfields.com/wp-content/uploads/2020/05/stm32_board-1.jpg" class="attachment-large size-large wp-post-image" alt="" srcset="https://depfields.com/wp-content/uploads/2020/05/stm32_board-1.jpg 693w, https://depfields.com/wp-content/uploads/2020/05/stm32_board-1-300x229.jpg 300w" sizes="(max-width: 693px) 100vw, 693px" /></div>




<h2 class="wp-block-heading">マイコン周辺のハードとソフト</h2>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">マイコン自体はどんな構成でどのような機能をもったものでしょうか。</p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>コンピュータが存在する以前の世界は身の回りはハードウェアばかりでした。電気製品においてもテレビなどは機能をすべて電気・電子回路のハードウェアで構成していました。自動車においてもそうです。すべて機械部品の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ハードウェア</span></strong>で構成されていました。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>コンピュータが登場して、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ソフトウェア</span></strong>という概念ができました。コンピュータは自然界のアナログ的（物理的）なもの、例えば光の強さや音の大きさなどをセンサーなどの入力機器を介して取り込み、内部でデジタルに変換してからコンピュータプログラムによりさまざまな機能を付加して求められている形態で出力するものです。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/hard-and-soft.jpg" alt="" class="wp-image-1205" width="333" height="219" srcset="https://depfields.com/wp-content/uploads/2020/05/hard-and-soft.jpg 333w, https://depfields.com/wp-content/uploads/2020/05/hard-and-soft-300x197.jpg 300w" sizes="(max-width: 333px) 100vw, 333px" /><figcaption class="wp-element-caption"><strong>ハードウェアとソフトウェア</strong></figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>この<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">コンピュータプログラムがソフトウェアと呼ばれているもの</span></strong>です。ハードウェアのような形はありません。<br>そのため、コンピュータのサイズが小さくなればなるほど、同じ機能をもったハードウェアだけで構成されていたものより小型になり機械的な部品点数が減るため、故障も少なくなり量産しやすく価格も下がるのです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer"><div class="vk_spacer-display-pc" style="height:20px"></div><div class="vk_spacer-display-tablet" style="height:10px"></div><div class="vk_spacer-display-mobile" style="height:5px"></div></div>



<div class="wp-block-media-text is-stacked-on-mobile is-vertically-aligned-top" style="grid-template-columns:35% auto"><figure class="wp-block-media-text__media"><img decoding="async" width="408" height="277" src="https://depfields.com/wp-content/uploads/2020/05/マイコン3.jpg" alt="" class="wp-image-1208 size-full" srcset="https://depfields.com/wp-content/uploads/2020/05/マイコン3.jpg 408w, https://depfields.com/wp-content/uploads/2020/05/マイコン3-300x204.jpg 300w" sizes="(max-width: 408px) 100vw, 408px" /></figure><div class="wp-block-media-text__content">
<p class="has-normal-font-size"><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコン（マイクロコントローラ）はコンピュータの中でも電気機器を制御するのに特化したコンピュータ</span></strong>で頭脳の役割である<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">CPUのほか、アナログ、デジタル的な信号の入出力、タイマ・カウンタ、シリアル通信機能などが内蔵されており</span></strong>、開発者は実際の入出力の信号との間に必要最低限のインターフェース回路を付加するだけで簡単に高機能な電気機器を開発できるようになりました。</p>
</div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none vk_block-margin-sm--margin-top"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>機能はソフトウェアと呼ばれるプログラムにより作成されます。プログラマーの腕のみせどころです。<br>ゆえに<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコンのプログラマーはプログラム言語の知識のみならず、マイコンの機能、周辺回路（インターフェース）などハードウェアの知識・経験が必要</span></strong>となってきます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ハードウェアの知識も一昔前とは違い、インターネットを活用するとかなりの情報が得られます。この知識を活かして<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実際にハードウェアなる回路を自分で組むことは理解を深めることへの近道</span></strong>です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>組み込み技能はソフトウェア（プログラミング）だけを扱って実物（ハードウェア）を知らなければまったく身につきませんし、役にもたたないでしょう。実際にプログラミングしながら、入力や出力を計測しながら完成度を高めていくことが組み込みの醍醐味、魅力なのです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<h2 class="wp-block-heading">マイコンの基本構造</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンはCPU, ROM, RAM, I/Oポート その他各種機能で構成されています。</p>
</div></div></div>



<p><span style="background-color: #003300; color: #ffffff;">　　CPU　　<span style="background-color: #ffffff; color: #000000;">：<br></span></span><span style="color: #ffffff;"><span style="color: #000000;"><strong>マイコンの頭脳</strong></span></span><span style="background-color: #003300; color: #ffffff;"><span style="background-color: #ffffff; color: #000000;">にあたる部分でプログラムの命令を実行して演算したり機能を実現したりします。</span></span></p>



<p><span style="background-color: #003300; color: #ffffff;">　　ROM　　<span style="background-color: #ffffff; color: #000000;">：<br></span></span>記憶部分であるメモリのうち、<strong>読み出し専用</strong>（<strong>R</strong>ead <strong>O</strong>nly <strong>M</strong>emory）で<strong>プログラム</strong>や<strong>実行中に変更する必要のない定数</strong>などのデータを格納するところです。電源を切ってもデータは消えず、マイコンが起動してからプログラムを読み出して実行します。</p>



<p><span style="background-color: #003300; color: #ffffff;">　　RAM　　<span style="background-color: #ffffff; color: #000000;">：<br></span></span>記憶部分であるメモリのうち、<strong>読み書き可能</strong>（<strong>R</strong>andam <strong>A</strong>ccessy <strong>M</strong>emory）でデータ（変数）を<strong>一時的に保管する場所</strong>。電源を切ったら内容も消えてしまいます。</p>



<p><span style="background-color: #003300; color: #ffffff;">　IOポート　<span style="background-color: #ffffff; color: #000000;">：<br></span></span>マイコンと外部部品との信号を読み取る機能を行う部分（端子）です。<strong>I</strong>が入力(Input)、<strong>O</strong>が出力(Output)です。</p>



<p><span style="background-color: #003300; color: #ffffff;">　周辺機能　<span style="background-color: #ffffff; color: #000000;">：<br></span></span>マイコンには<strong>AD/DAコンバータ</strong>、<strong>タイマ・カウンタ</strong>、<strong>シリアル通信</strong>などアプリケーションで使用する<strong>さまざまな機能（ハードウェア回路）が内蔵</strong>されています。<a title="マイコン周辺機能（ペリフェラル）とは" href="https://depfields.com/category/learning/embedded/peripheral/" target="_blank" rel="noopener"><strong><span class="vk_highlighter" data-color="#fffd6b">ペリフェラル</span></strong></a>と呼ばれます。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/micon_structure.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/micon_structure.jpg" alt="" class="wp-image-1212" width="399" height="228" srcset="https://depfields.com/wp-content/uploads/2020/05/micon_structure.jpg 496w, https://depfields.com/wp-content/uploads/2020/05/micon_structure-300x171.jpg 300w" sizes="(max-width: 399px) 100vw, 399px" /></a><figcaption class="wp-element-caption"><strong>マイコン基本構造</strong></figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<h2 class="wp-block-heading">レジスタとメモリ（少し専門的な話）</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">レジスタは主にマイコンの状態を保存および確認するための特殊なメモリ</span></strong>です。CPUのレジスタではCPUの状態を保存および確認するのに使われます。具体的には演算途中のデータ、割り込みやサブルーチンでプログラムが分岐した時の戻り先アドレス、演算結果が負値、ゼロになった場合の情報や桁上がり値などです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">CPUの汎用レジスタ</span></strong>はハードウェアでCPUに直結しているので、内部バスを経由してデータにアクセスするRAMよりも高速アクセスできます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">周辺機能の制御レジスタ</span></strong>では汎用入出力GPIOとよばれるI/Oポート、タイマ、シリアル通信、ADコンバータ、DAコンバータなどの周辺機能を設定するのに使われます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">周辺機能の状態を示すステータスレジスタ</span></strong>やADコンバータの変換結果を保存しておく<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">結果レジスタ</span></strong>や通信機能では送受信データを保存する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">送受信データレジスタ</span></strong>などがあります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>直接プログラムからレジスタを設定することもできますが、通常はメーカーから提供されている<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>ファームウェアライブラリ（デバイスドライバ）</strong></span>を使用しますので<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>レジスタは直接意識せず、間接的に設定する</strong></span>ことになります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ただし、<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>ある程度理解ができたところで仕様書などにかかれている各レジスタに目を通しておくことは理解を深める上でおすすめします</strong>。</span>「<strong><a href="https://depfields.com/register-map/" target="_blank" rel="noreferrer noopener" title="ARMマイコンSTM32レジスタマップの見方【上級者向け】">ARMマイコンSTM32レジスタマップの見方</a></strong>」を参照してください。</p>
</div></div></div>



<h2 class="wp-block-heading">マイコンに内蔵されている周辺機能の紹介</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンにはたくさんの足（ピン）があります。マイコンのデータシートをみると各ピンにいろいろな機能が割り当てられているのが確認できます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>いろいろな機能とはアプリケーションで使用する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">汎用I/Oポート、AD/DAコンバータ、タイマ・カウンタ、シリアル通信などの便利な機能</span></strong>のことです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンのピン数は限られているので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">一つのピンに複数の機能を割り当てられていてソフトウェアで使用する機能を選択できる</span></strong>ようになっています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>各種機能を以下に紹介しますのでここで<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">それぞれの概念を理解</span></strong>してください。</p>
</div></div></div>



<p><span style="background-color: #003300; color: #ffffff;">　汎用I/Oポート(GPIO)　<span style="background-color: #ffffff; color: #000000;">：</span></span></p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">スイッチ、センサーなど<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">なんらかの信号を入力するのが入力(I)ポート</span></strong>で、LEDなどの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">負荷を駆動する出力をあたえるのが出力(O)ポート</span></strong>です。ポートとは入出力の窓口であるピン（端子）のことです。<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>GPIO</strong></span>（General Purpose Input/Output）とも呼ばれます。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">GPIOはリファレンス・マニュアルや図面上では「PA1」で略記されていることがあります。<strong>PA1は「GPIOポートAの1番目のピン」</strong>を意味します。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力ポートと出力ポートは兼用されていることが多く、レジスタ設定により切り替える</span></strong>ことができます。GPIOはデジタル方式の入出力ポートですので入力の場合、入力された電圧に応じて0か1を判別し、出力であれば0か1の状態を与えます。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">電源電圧が3.3Vのマイコンであれば上基準値約2V以上でHレベル、下基準値約0.8V以下でLレベルとなります。通常、<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>マイコン内部ではHレベルを1</strong>、<strong>Lレベルを0</strong></span>として表現します。Hレベルで1、Lレベルで0を<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">正論理</span></strong>、Hレベルで0、Lレベルで1を<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">負論理</span></strong>といいます。プログラムを作成にあたっては出力などではこの論理を反転して使うことも多いです。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">入出力ポートの一部にアナログ信号を扱えるものもあります。使用できるポート（ピン）は限られていますので、設計段階で仕様書をよく確認しながら割当をします。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/GPIO.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/GPIO.jpg" alt="" class="wp-image-1251" width="428" height="187" srcset="https://depfields.com/wp-content/uploads/2020/05/GPIO.jpg 488w, https://depfields.com/wp-content/uploads/2020/05/GPIO-300x131.jpg 300w" sizes="(max-width: 428px) 100vw, 428px" /></a><figcaption class="wp-element-caption"><strong>汎用入出力ポート(GPIO)</strong></figcaption></figure>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">当サイトで採用している<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">STM32のGPIO</span></strong>については「<strong><a href="https://depfields.com/gpio/" target="_blank" rel="noreferrer noopener" title="汎用入出力【STM32のGPIO使い方詳細】">汎用入出力【STM32のGPIO使い方詳細】</a></strong>」を参考にしてください。</p>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<p><span style="background-color: #003300; color: #ffffff;">　タイマ・カウンタ　<span style="background-color: #ffffff; color: #000000;">：</span></span></p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">水晶振動子などの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">クロック発生装置から発生した一定周期の信号をシステムクロック</span></strong>といいます。このシステムクロックを<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">任意に分周したクロック信号とカウンタを組み合わせたものが周辺機能のタイマ・カウンタ</span></strong>です。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">分周</span></strong>とはクロックの周波数が高い場合に例えば１MHzクロックを1/1000に下げて１kHzクロックにすることです。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">クロック</span></strong>(クロックパルス）は単純にHレベルとLレベルを一定周期で繰り返すデジタル信号です。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">クロックを自動的にカウントして設定した経過時間後に通知する機能がマイコンのタイマ・カウンタ機能</span></strong>です。</p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>タイマ・カウンタを利用した信号出力の例を見てみましょう。この例はタイマ用に1kHzに分周したクロックを使って任意の一定間隔の出力を作り出すものです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ここではクロックをカウントするのにアップカウンタを使っています。アップカウンタは0から設定した値まで入力クロック（パルス）を増やす方へカウントし、設定値に達すると0に戻ってまたカウントを繰り返します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>設定値に達した時の通知として出力状態を反転（ここではHレベルとLレベルを入れ替える）する例です。</p>
</div></div></div>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">クロック周期は1msですのでカウンタに50を設定すると50ms毎にカウント値は到達してからリセットされるのを繰り返します。この例ではカウンタリセット毎に出力状態を反転させるため、100msサイクルのパルス出力となります。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/タイマを利用した信号出力.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/タイマを利用した信号出力.jpg" alt="" class="wp-image-1257" width="420" height="251" srcset="https://depfields.com/wp-content/uploads/2020/05/タイマを利用した信号出力.jpg 505w, https://depfields.com/wp-content/uploads/2020/05/タイマを利用した信号出力-300x179.jpg 300w" sizes="(max-width: 420px) 100vw, 420px" /></a><figcaption class="wp-element-caption"><strong>タイマを利用した信号出力</strong></figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ここではタイマ・カウンタを利用した信号出力を例に挙げましたが、作成するアプリケーションにおいて時間にかかわる処理はすべてタイマ・カウンタで実現できます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>タイマ・カウンタは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">CPUとは独立したハードウェア回路による機能</span></strong>なので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">CPUには負担を与えず高度な処理を行う</span></strong>ことができます。タイマ機能の中でも応用用途の広い便利な<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">PWM</span></strong>をもったマイコンもあります（PWMについては後に詳細を解説します）。</p>
</div></div></div>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">当サイトで採用している<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">STM32のタイマ</span></strong>については「<strong><a href="https://depfields.com/timer/" target="_blank" rel="noreferrer noopener" title="当サイトで採用しているSTM32のタイマについては「タイマ・カウンタ【STM32の高機能・汎用タイマ詳細】」を参考にしてください。">タイマ・カウンタ【STM32の高機能・汎用タイマ詳細】</a></strong>」を参考にしてください。</p>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<p><span style="background-color: #003300; color: #ffffff;">　ADコンバータ　<span style="background-color: #ffffff; color: #000000;">：</span></span></p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">GPIOによる入力は通常はデジタルで電圧の1か0の判断だけするのですが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ポートの一部にアナログ信号を扱えるものがありADコンバータ機能を使用することができます</span></strong>。使用できるポート（ピン）は限られていますので、設計段階で仕様書をよく確認しながら割当し、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力ポートの仕様をアナログ信号入力の設定</span></strong>にすればよいだけです。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">ADコンバータ（Analog-Digital変換）は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコン仕様で決められている範囲レベルのアナログ信号電圧を入力ポートから読み込み、マイコン内部で設定された方式でデジタル値に変換するもの</span></strong>です。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">例えば入力最大電圧が5Vで12ビットの分解能を持つADコンバータに0-5Vのアナログ信号を入力する場合は、分解能は4096(2<sup>12</sup>)なので入力が5Vのとき4096のデジタルデータとなります。半分の2.5Vでは2048です。こうして、マイコン内ではアナログ信号が分解能の範囲でデジタル化されましたので数値として扱えるようになります。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/AD.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/AD.jpg" alt="" class="wp-image-1259" width="312" height="215" srcset="https://depfields.com/wp-content/uploads/2020/05/AD.jpg 320w, https://depfields.com/wp-content/uploads/2020/05/AD-300x207.jpg 300w" sizes="(max-width: 312px) 100vw, 312px" /></a><figcaption class="wp-element-caption"><strong>ADコンバータ</strong></figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコン自体はデジタル信号を扱うものですが、アプリケーションにおいては音、光、温度などアナログ的な信号を扱う用途は多々あります。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ADコンバータはアナログ信号をマイコンが処理できるデジタル信号に変換する必要不可欠な機能</span></strong>といえるでしょう。</p>
</div></div></div>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"> 当サイトで採用している<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">STM32のADコンバータ</span></strong>については「<strong><a href="https://depfields.com/adc/" target="_blank" rel="noreferrer noopener" title=" 当サイトで採用しているSTM32のADコンバータについては「ADコンバータ【STM32のADコンバータ詳細】」を参考にしてください。 ">ADコンバータ【STM32のADコンバータ詳細】</a></strong>」を参考にしてください。 </p>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<p><span style="background-color: #003300; color: #ffffff;">　DAコンバータ　<span style="background-color: #ffffff; color: #000000;">：</span></span></p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">DAコンバータ（Digital-Analog変換）は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ADコンバータの逆でマイコン内のデジタル値をアナログ信号に変換して出力するもの</span></strong>です。例えば音声信号を出力したい場合は音声の波形を表現する必要がありますが、波形はまさに連続したアナログ信号です。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">このようなアナログ信号を出力する場合にDAコンバータを使用します。出力基準電圧が5Vで12ビットの分解能を持つDAコンバータでは基準電圧を4096(2<sup>12</sup>)等分していずれかの電圧を出力します。例えば、デジタル値が4096のとき出力は5V、半分の2048では2.5Vです。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">こうして、DAコンバータを使うとマイコン内のデジタル化した数値をアナログ信号として出力できます。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/DA.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/DA.jpg" alt="" class="wp-image-1261" width="310" height="220" srcset="https://depfields.com/wp-content/uploads/2020/05/DA.jpg 311w, https://depfields.com/wp-content/uploads/2020/05/DA-300x213.jpg 300w" sizes="(max-width: 310px) 100vw, 310px" /></a><figcaption class="wp-element-caption"><strong>DAコンバータ</strong></figcaption></figure>



<p><span style="background-color: #003300; color: #ffffff;">　シリアル通信　<span style="background-color: #ffffff; color: #000000;">：</span></span></p>



<p>マイコンでは例えば8ビットデータを複数（8個）の端子で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">一度に伝送するパラレル通信</span></strong>に対してデータを直線に並べて<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">順次伝送する方式のシリアル通信</span></strong>機能をもっています。文字列”ABC”の通信する場合、パラレル通信では各文字を同時に送信するのに対して、シリアル通信では’A’から順に’B’,’C’と1文字ずつ送信するイメージです。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/パラレル通信とシリアル通信.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/パラレル通信とシリアル通信.jpg" alt="" class="wp-image-1262" width="341" height="139" srcset="https://depfields.com/wp-content/uploads/2020/05/パラレル通信とシリアル通信.jpg 380w, https://depfields.com/wp-content/uploads/2020/05/パラレル通信とシリアル通信-300x122.jpg 300w" sizes="(max-width: 341px) 100vw, 341px" /></a><figcaption class="wp-element-caption"><strong>パラレル通信とシリアル通信</strong></figcaption></figure>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">シリアル通信は伝送するデータのビット数によらないため端子数は少なくてすみます。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">シリアル通信のなかで非同期（調歩同期）式と呼ばれる開始を意味する「スタートビット」と終わりを意味する「ストップビット」でデータを挟んで伝送する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">同期信号が不要のUART通信</span></strong>がありモニター用機器や無線LANモジュールなどのインターフェースに一般的に使用されます。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">USART通信はUARTを発展させて同期式通信にも対応したもの</span></strong>でマイコンにはUSART通信がペリフェラルとして内蔵されています。また、産業機器で一般的につかわれているRS232CやRS485,RS422などは信号レベルの規格が異なりますが親戚みたいなものです。レベル変換ICを外付け回路として加えると使用できるようになります。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">同期信号を必要とする<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">クロック同期式シリアル通信にはI<sup>2</sup>CとSPI通信</span></strong>があります。EEPROMなどのインターフェースによく用いられています。</p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>UART-USB変換ケーブルを使用するとPCともつなげてフリーのシリアルターミナルソフトや専用のアプリを作成すると操作やモニターが簡単にできます。このように<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">USART通信は用途がいろいろなアプリケーションに広がるためぜひ習得してほしい機能</span></strong>です。</p>
</div></div></div>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"> 当サイトで採用している<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">STM32のUSART通信</span></strong>については<strong><a href="https://depfields.com/usart/" target="_blank" rel="noreferrer noopener" title="シリアル通信USART【STM32のUSART詳細】">シリアル通信USART【STM32のUSART詳細】</a></strong>、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">I<sup>2</sup>C通信</span></strong>については<strong><a href="https://depfields.com/i2c/" target="_blank" rel="noreferrer noopener" title="シリアル通信I2C【STM32のI2C詳細】">シリアル通信I2C【STM32のI2C詳細】</a></strong>、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">SPI通信</span></strong>については<strong><a href="https://depfields.com/spi/" target="_blank" rel="noreferrer noopener" title="シリアル通信SPC【STM32のSPI詳細】">シリアル通信SPC【STM32のSPI詳細】</a></strong>を参考にしてください。 </p>



<p><span style="background-color: #003300; color: #ffffff;">　割り込み　<span style="background-color: #ffffff; color: #000000;">：</span></span></p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">組み込み制御には割り込みの概念がかかせません。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">例えば<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>不定期に入力される外部からの信号</strong>や<strong>USART通信などで受信完了などの通知</strong></span>を検知するのに<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">割り込み</span></strong>を使用しなければ、常に定期的にその信号の入力や機能終了通知をチェックしなければいけません。割り込みを使うと何らかの処理が発生したとき（イベントが発生）のみ、割り込みとして処理すればよいので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プログラムは無駄がなく簡素化し、消費電力も節約できます</span></strong>。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">タイマ、シリアル通信など各ペリフェラルには<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">割り込みイベント</span></strong>と呼ばれる機能が多数あり、ハードウェアによる割り込みが発生するたびに<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">割り込みハンドラ</span></strong>と呼ばれる処理内容を記載した機能ブロックが呼び出されて割り込み処理が実行されます。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">割り込みを使用しない場合は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ポーリング</span></strong>と呼ばれる方式で発生した<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">イベントを定期的に監視</span></strong>して、必要に応じて処理をするものです。これはソフトウェアだけで実装できる気軽さはあるのですが、どんなタイミングで発生するかわからないようなイベントを定期的に監視するのは効率が悪いことに加え、処理タイミングが遅れるデメリットがあります。また、ポーリング監視期間外で発生したイベントには対応できません。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/割り込みとポーリング.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/割り込みとポーリング.jpg" alt="" class="wp-image-1264" width="446" height="276" srcset="https://depfields.com/wp-content/uploads/2020/05/割り込みとポーリング.jpg 575w, https://depfields.com/wp-content/uploads/2020/05/割り込みとポーリング-300x186.jpg 300w" sizes="(max-width: 446px) 100vw, 446px" /></a><figcaption class="wp-element-caption"><strong>割り込みとポーリング</strong></figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">定期的で頻繁に起こるようなイベントに対してはポーリング処理</span></strong>でよく、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">発生頻度の低いイベントで確実に処理タイミングを厳密に合わせたい場合はハードウェアによる割り込み</span></strong>が向いています。アプリケーションに合わせて使い分けるとバランスのとれたシステムが構築できます。</p>
</div></div></div>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"> 当サイトで採用している<strong>STM32の割り込み</strong>については「<strong><a href="https://depfields.com/interrupt/" target="_blank" rel="noreferrer noopener" title=" 当サイトで採用しているSTM32の割り込みについては「さまざまな割り込み【STM32の割り込み詳細】」を参考にしてください。 ">さまざまな割り込み【STM32の割り込み詳細】</a></strong>」を参考にしてください。 </p>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<p><span style="background-color: #003300; color: #ffffff;">　DMA　<span style="background-color: #ffffff; color: #000000;">：</span></span></p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">DMA</span></strong>は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">D</span></strong>irect <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">M</span></strong>emory <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">A</span></strong>ccessの略で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">CPUを使わずに、バスを通じて周辺機能（ADコンバータ、UART通信など）とメモリ間（ROM、RAM）のデータ転送を直接行う機能のこと</span></strong>です。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">通常、データ転送はCPUが行いますが、DMAを搭載しているマイコンでは、DMAがCPUに代わって、データを転送してくれます。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">そのためCPUは演算などのCPUでしかできない仕事だけすればよくなります。DMAを搭載することで、マイコンの負担（消費電力）を減らし、パフォーマンスを挙げることになります。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">ADコンバータやUART通信などの周辺機能と組み合わせて使うと効果的です。画像や音声転送など大量のデータを通信で扱う場合にはDMA機能を積極的に使用すればよいです。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/DMA.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/DMA.jpg" alt="" class="wp-image-1265" width="321" height="249" srcset="https://depfields.com/wp-content/uploads/2020/05/DMA.jpg 331w, https://depfields.com/wp-content/uploads/2020/05/DMA-300x233.jpg 300w" sizes="(max-width: 321px) 100vw, 321px" /></a><figcaption class="wp-element-caption"><strong>DMA</strong></figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>DMA機能はマイコンアプリケーションを作成する上では必須の機能ではありませんが、CPUの負担を減らし、アプリケーションのパフォーマンスをより向上させたい場合に活用するとよいでしょう。</p>
</div></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム1</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p><strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">ADコンバータ</span></strong>を使用する用途で<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">複数のチャネルで信号を取り込みたい場合などはDMAとの組み合わせは必須</span></strong>です。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<p>当サイトでは 「<strong><a href="https://depfields.com/usart/" target="_blank" rel="noreferrer noopener" title="シリアル通信USART【STM32のUSART詳細】">シリアル通信USART【STM32のUSART詳細】</a></strong>」 および「<strong><a aria-label=" (opens in a new tab)" href="https://depfields.com/adc/" target="_blank" rel="noreferrer noopener">A</a><a href="https://depfields.com/adc/" target="_blank" rel="noreferrer noopener" title="シリアル通信USART【STM32のUSART詳細】">Dコンバータ【STM32のADコンバータ詳細】</a></strong>」それぞれの周辺機能で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><a href="https://depfields.com/dma/" target="_blank" rel="noreferrer noopener" title="DMA(Direct Memory Access)【STM32のDMA詳細】">DMAの使い方を解説</a></span></strong>しています。 </p>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h2 class="wp-block-heading">各ピンの構成する基本回路</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンの機能は色々あるのですが、各ピンを構成する回路はほぼ共通です。I/Oポート（GPIO）のレジスタを設定することで機能を割り当てます。<strong><a href="https://depfields.com/gpio/" target="_blank" rel="noreferrer noopener" title="汎用入出力【STM32のGPIO使い方詳細 】">これら各機能については後ほど詳細に解説</a></strong>しますのでここでは割愛しますが、これらを利用するための基本回路<strong><a href="https://depfields.com/mc-circuit/" target="_blank" rel="noreferrer noopener" title="マイコン周辺のハードウェア基本回路【初心者・未経験者必見】">[詳細はこちら]</a></strong>をとりあげてみます。</p>
</div></div></div>



<p><span style="background-color: #003300; color: #ffffff;">　入力プルアップ・プルダウン抵抗　<span style="background-color: #ffffff; color: #000000;">：</span></span></p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">ピンを汎用入力ポートと定義したとき入力は電源電圧Vddがかかった状態の1（HIGH)、Vss(GND)につながり0Vになった状態が0（LOW)の2通りです。いわゆる<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">デジタル入力</span></strong>です。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力プルアップ・プルダウン抵抗</span></strong>はマイコンにスイッチやセンサーなど外部信号をとしての入力に必要な抵抗です。このとき、プルアップまたはプルダウン抵抗がないと入力が0（L)でも1（H)でもない「<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">浮いている</span></strong>」状態になってしまいます。どっちつかずの場合はノイズなどの影響も受けやすくなるため、誤作動の原因ともなりえます。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/入力が浮いた状態.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/入力が浮いた状態.jpg" alt="" class="wp-image-1317" width="481" height="199" srcset="https://depfields.com/wp-content/uploads/2020/05/入力が浮いた状態.jpg 546w, https://depfields.com/wp-content/uploads/2020/05/入力が浮いた状態-300x124.jpg 300w" sizes="(max-width: 481px) 100vw, 481px" /></a><figcaption class="wp-element-caption"><strong>入力が「浮いている」状態</strong></figcaption></figure>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">入力がなくても <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">1に固定するためのものは入力プルアップ抵抗</span></strong>、 <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">0に固定するものは入力プルダウン抵抗</span></strong>となります。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/プルアップ・プルダウン抵抗簡略図.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/プルアップ・プルダウン抵抗簡略図.jpg" alt="" class="wp-image-1267" width="445" height="226"/></a><figcaption class="wp-element-caption">プルアップ・プルダウン抵抗簡略図</figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer"><div class="vk_spacer-display-pc" style="height:20px"></div><div class="vk_spacer-display-tablet" style="height:10px"></div><div class="vk_spacer-display-mobile" style="height:5px"></div></div>



<p><span style="background-color: #003300; color: #ffffff;">　プッシュプル出力（電圧出力）・オープンドレイン出力　<span style="background-color: #ffffff; color: #000000;">：</span></span></p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">ピンを汎用出力ポートと定義したとき<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">出力はC-MOSとよばれるスイッチング素子で構成される回路に切り替わり</span></strong>ONかOFFの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">デジタル出力</span></strong>で負荷を駆動します。例えば負荷がLEDの場合は点灯、消灯を切り替えます。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">出力には<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プッシュプル</span></strong>タイプと<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オープンドレイン</span></strong>タイプがあります。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">マイコンが出力を0(L)に指定しているとき出力ピンがVss(GND）で、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">1(H)に指定しているとき電源電圧Vddとなるものがプッシュプル</span></strong>タイプです。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">マイコンが出力を0(L)に指定しているとき出力ピンがVss(GND）で、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">1(H)に指定しているとき電源電圧VddでもVss(GND）でもないものがオープンドレイン</span></strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">タイプ</span>です。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/プッシュプル・オープンドレイン出力図.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/プッシュプル・オープンドレイン出力図.jpg" alt="" class="wp-image-1268" width="528" height="176" srcset="https://depfields.com/wp-content/uploads/2020/05/プッシュプル・オープンドレイン出力図.jpg 595w, https://depfields.com/wp-content/uploads/2020/05/プッシュプル・オープンドレイン出力図-300x100.jpg 300w" sizes="(max-width: 528px) 100vw, 528px" /></a><figcaption class="wp-element-caption">プッシュプル出力・オープンドレイン出力図</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">通常はプッシュプル出力</span></strong>を使うことが多いですが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オープンドレインは<a class="aioseop-link">出力ロジックの電圧レベルの変換</a>やワイヤードOR</span></strong>として使われます。C-MOS出力同士の接続はショート防止のため禁止ですが、オープンドレイン出力の場合はショートしませんのでワイヤードORとして接続できます。</p>
</div></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム2</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>オープンドレイン出力に<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">プルアップ抵抗を介して別電源をつなぐ</span></strong>と<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">電圧レベルが別電源のレベルに変換</span></strong>されます。</p>
</div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/出力ロジックの電圧レベル変換.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/出力ロジックの電圧レベル変換.jpg" alt="" class="wp-image-1269" width="396" height="219" srcset="https://depfields.com/wp-content/uploads/2020/05/出力ロジックの電圧レベル変換.jpg 412w, https://depfields.com/wp-content/uploads/2020/05/出力ロジックの電圧レベル変換-300x166.jpg 300w" sizes="(max-width: 396px) 100vw, 396px" /></a><figcaption class="wp-element-caption">出力ロジックの電圧レベル変換の簡略図</figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム3</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>ワイヤードORとは<span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b"><strong>実際の結線で論理回路のORと同じ機能を持ったもの</strong></span>です。</p>
</div>
<p>&nbsp;</p>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/ワイヤードOR簡略図.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/ワイヤードOR簡略図.jpg" alt="" class="wp-image-3326" width="437" height="253" srcset="https://depfields.com/wp-content/uploads/2020/06/ワイヤードOR簡略図.jpg 461w, https://depfields.com/wp-content/uploads/2020/06/ワイヤードOR簡略図-300x174.jpg 300w" sizes="(max-width: 437px) 100vw, 437px" /></a><figcaption class="wp-element-caption">ワイヤードORの簡略図</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ここでC-MOSがでてきましたがこれは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">C</span></strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">omplementary</span><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"> MOS</span></strong>とよばれるもので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">P型MOSFETとN型MOSFETを相補的に組み合わせた論理回路</span></strong>のスイッチング素子の一種です。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/CMOS出力簡略図.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/CMOS出力簡略図.jpg" alt="" class="wp-image-1271" width="465" height="236" srcset="https://depfields.com/wp-content/uploads/2020/05/CMOS出力簡略図.jpg 478w, https://depfields.com/wp-content/uploads/2020/05/CMOS出力簡略図-300x152.jpg 300w" sizes="(max-width: 465px) 100vw, 465px" /></a><figcaption class="wp-element-caption">C-MOS出力簡略図</figcaption></figure>



<p><span style="background-color: #003300; color: #ffffff;">　システムクロック　<span style="background-color: #ffffff; color: #000000;">：</span></span></p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong><a href="https://depfields.com/sysclk/" target="_blank" rel="noreferrer noopener" title="システムクロック【STM32のSYSCLK設定詳細 】">マイコンのクロック信号</a></strong>は水晶振動子などの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">外部発振回路</span></strong>から供給される外部クロックタイプと、マイコンに内蔵されているRC発振回路（<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">内部発振回路</span></strong>）から外付け部品なしで供給される内部クロックタイプがあります。内部クロックタイプは外付け部品が少ない分コスト低減などの利点があります。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">ただし、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">内部発振回路は外部水晶振動子に比べて精度のばらづき</span></strong>などで周波数の安定性は多少さがります。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong>U<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ART通信など外部機器とのタイミングとの整合が必要な機器のシステムを設計する場合には周波数の安定する外部振動子を使用することをおすすめ</span></strong>します。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">実際に設計の段階で水晶振動子を選択する場合は厳密にいうとマイコンとの相性もありますので試作の段階で動作確認をする必要はあります。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/クロック信号源.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/クロック信号源.jpg" alt="" class="wp-image-1272" width="329" height="154" srcset="https://depfields.com/wp-content/uploads/2020/05/クロック信号源.jpg 382w, https://depfields.com/wp-content/uploads/2020/05/クロック信号源-300x141.jpg 300w" sizes="(max-width: 329px) 100vw, 329px" /></a><figcaption class="wp-element-caption">クロック信号源図</figcaption></figure>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">この<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">クロック信号源をベース</span></strong>にタイマ、ADコンバータ、UART通信など各周辺機能には<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">適切に分周した周波数になるクロックを設定</span></strong>します。タイマ、ADコンバータ、UART通信など各周辺機能にはシステムクロック源のままであると高速すぎるために<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">適切に分周した周波数に設定</span></strong>してクロックをコントロールすると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">消費電力を節約</span></strong>することもできます。</p>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<h2 class="wp-block-heading">プログラムの流れ</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンでは電源投入直後、メモリに書き込まれている<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>プログラムを開始位置から順次実行</strong></span>していきます。<br>実行手順として、初期設定たとえば、ポート定義、使用する周辺機器（ペリフェラル）の定義などを行います。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>準備ができたところで、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">メインループ</span></strong>と呼ばれるところで<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">アプリケーションの処理を定期的に繰り返し実行</span></strong>します。この<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">繰り返しの周期をプログラムのサイクルタイム</span></strong>といいます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>様々なアプリケーションに必要な複数の処理を順次実行してサイクルタイム毎に繰り返します。サイクルタイムは処理の内容によりかわってきます。比較的単純なアプリケーションではこれでも問題ありません。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/プログラムの流れ.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/プログラムの流れ.jpg" alt="" class="wp-image-1275" width="271" height="331" srcset="https://depfields.com/wp-content/uploads/2020/05/プログラムの流れ.jpg 271w, https://depfields.com/wp-content/uploads/2020/05/プログラムの流れ-246x300.jpg 246w" sizes="(max-width: 271px) 100vw, 271px" /></a><figcaption class="wp-element-caption">プログラムの流れ</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>割り込み信号を外部から定期的に与えると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">サブルーチ</span>ン</strong>や<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">割り込みハ</span>ンドラ</strong>と呼ばれる処理ブロックを決まった間隔で実行させることができます。後ほど説明するOS（オペレーションシステム）を使用すると、処理ごとにタスクと呼ばれるブロックにわけて定期的に優先順位を設けて実行させることもできます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>モータ制御などの速度を算出する処理などは比較的高速でサイクルタイムは短めであることが必要ですが（10ms以下）、モニター表示などは長めのものでも問題ありません（100ms程度）。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">さまざまな処理が複雑に絡み合うアプリケーションでは<a href="https://depfields.com/category/learning/embedded/os/" target="_blank" rel="noreferrer noopener" title="OS">OS</a>を使用すると効率よくプログラムが構成できる</span></strong>ようになりますのでOSを使用することは組み込みには必須なスキルでしょう。</p>
</div></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/background/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/2768e792dea7e7b25bf273cf8df40c4d4c535f022aa901701c0139671302e3bf.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">Basic knowledge around Microcontroller for Embedded engineers [must-see for b...</div><div class="lkc-url" title="https://en.depfields.com/background/">https://en.depfields.com/background/</div><div class="lkc-excerpt">Hardware and Software around MCUWhat is the configuration of the MCU itself and what functions does it have?Before computers existed, the world around us was all about hardware. In the case of electrical products, such as tele</div></div><div class="clear">
							</div>
						</div></a></div></div><p>The post <a href="https://depfields.com/background/">組み込みエンジニアのためのマイコン周辺の基礎知識【初心者必見】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>組み込みシステムに使われるマイコンとは</title>
		<link>https://depfields.com/what-mc/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=what-mc</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Sat, 23 May 2020 14:25:41 +0000</pubDate>
				<category><![CDATA[組み込みに使われるマイコン]]></category>
		<category><![CDATA[基礎知識]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=1138</guid>

					<description><![CDATA[<p>組み込みシステムを習得するにはそこに使われるマイコンを使いこなす知識・経験を身につけることが大切です。この章ではマイコンの基本構成および用途について解説しています。 マイコンの基本構成 マイコンとは一つのICチップの中に [&#8230;]</p>
<p>The post <a href="https://depfields.com/what-mc/">組み込みシステムに使われるマイコンとは</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img decoding="async" width="278" height="251" src="https://depfields.com/wp-content/uploads/2020/05/マイコン０.jpg" class="attachment-large size-large wp-post-image" alt="" /></div>
<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">組み込みシステムを習得するにはそこに使われるマイコンを使いこなす知識・経験を身につけることが大切です。この章ではマイコンの基本構成および用途について解説しています。</p>







<h2 class="wp-block-heading">マイコンの基本構成</h2>



<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコンとは一つのICチップの中に、CPUをはじめ、メモリ、入出力回路および周辺機能が詰め込まれたもの</span></strong>でワンチップマイコンとも呼ばれています。</p>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/マイコン０.jpg" alt="" class="wp-image-902" width="278" height="251"/><figcaption class="wp-element-caption">マイコン</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>そもそもマイコンなる名称はかつてPCが現代ほど普及していない時代にスーパーコンピュータなど大型コンピュータに対して呼ばれた「マイクロコンピュータ」の略からついたものでこの当時のマイコンは現代普及しているPCの前身のようなものです。これに対して、現在マイコンとよばれるものは電気機器の制御に特化したワンチップICのことで「<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイクロコントローラ</span></strong>」と呼ぶのがふさわしいです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:42% auto"><figure class="wp-block-media-text__media"><img decoding="async" width="520" height="520" src="https://depfields.com/wp-content/uploads/2020/05/micon_architecture.jpg" alt="" class="wp-image-1076 size-full" srcset="https://depfields.com/wp-content/uploads/2020/05/micon_architecture.jpg 520w, https://depfields.com/wp-content/uploads/2020/05/micon_architecture-300x300.jpg 300w, https://depfields.com/wp-content/uploads/2020/05/micon_architecture-150x150.jpg 150w" sizes="(max-width: 520px) 100vw, 520px" /></figure><div class="wp-block-media-text__content">
<p class="has-normal-font-size">一つのICの中に演算を実行する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">CPU</span></strong>を中心にプログラムを格納する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ROM</span></strong>メモリ,演算データを一時保存する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">RAM</span></strong>メモリ、外部から与えられたパルス信号のカウントや時間を計測するタイマー機能、センサーなどからのアナログ信号を取り込んで処理するADコンバータ、演算したデータをアナログ信号に変換するDAコンバータ、外部機器との通信などの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">周辺機能</span></strong>が<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オール・イン・ワンのIC</span></strong>です。</p>


</div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これらの機能がマイコンにはたった一つのパッケージ内にすべて内蔵されており、しかも当時とは比べ物にならないくらい演算処理が高速ですべてが高性能です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンの基本さえ知っていればちょっとしたシステムならば思い立ったらすぐに短期間でしかも安価で構築できてしまいます。<br>機能の仕様変更があった場合に、電気回路などのハードウェアで構成されている部分はすべて作り直す必要がありますが、ソフトウェアで構成されている部分はプログラムの変更だけですみます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>つまり、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">製品の中でソフトウェアの占める割合が大きいものほど仕様の変更に柔軟に対応できます</span></strong>。最近のスマートフォンはこの傾向が強く現れています。</p>
</div></div></div>



<div class="wp-block-media-text is-stacked-on-mobile is-vertically-aligned-top"><figure class="wp-block-media-text__media"><img decoding="async" width="328" height="208" src="https://depfields.com/wp-content/uploads/2020/05/mobilephone.jpg" alt="" class="wp-image-1147 size-full" srcset="https://depfields.com/wp-content/uploads/2020/05/mobilephone.jpg 328w, https://depfields.com/wp-content/uploads/2020/05/mobilephone-300x190.jpg 300w" sizes="(max-width: 328px) 100vw, 328px" /></figure><div class="wp-block-media-text__content">
<p class="has-normal-font-size">ひと昔前の携帯電話も組み込み機器の一種ですが操作はハードウェアで構成されているボタンスイッチから行います。デザインなどのちょっとした仕様変更でもすべて作り直しです。<br>対してスマートフォンでは操作はタッチパネルですのでボタンスイッチなどのハードウェアは不要です。</p>
</div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p><strong>タッチパネル</strong>というものも組み込み機器の一種でマイコンやメモリを搭載した製品もあります。画面デザインをメモリに格納しておいて、タッチパネルが押された座標を検知してプログラム（ソフトウェア）で構成された手順で画面を入れ替えたり、スイッチとして機能させたりするのです。<br><br data-rich-text-line-break="true">タッチパネル一つにデザインをはじめとする機能を盛り込めるので<strong>ソフトウェアの書き換えだけで変更は自由自在</strong>です。こうしてスマートフォンはスイッチ類がどんどん減ってソフトウェアの占める割合が大きくなっています。<br><br data-rich-text-line-break="true">ハードウェアのスイッチが少なくなる利点はコストが大幅にさがるなどどちらかといえば製造者側にあるのですが、使い手側からみるとはたして使い勝手はよくなったのでしょうか。時代の流れだからといえばそれまでですが。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<h2 class="wp-block-heading">マイコンの用途</h2>



<p>生活のなかでマイコンはどのようなところに使われているのでしょう。身の回りの生活家電、炊飯器、エアコン、テレビ、スマートフォン、シーリングライトなど今ではほぼすべてにマイコンは使用されています。</p>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;マイコン搭載の炊飯器:&nbsp;</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>炊飯器とマイコンの関わりをみてみましょう。<br>炊飯器は研いだお米に水加減を適切に釜にセットしたものを火加減を調整しながらおいしく炊き上げるものです。</p>
</div></div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:31% auto"><figure class="wp-block-media-text__media"><img decoding="async" width="360" height="300" src="https://depfields.com/wp-content/uploads/2020/05/炊飯器.jpg" alt="" class="wp-image-1152 size-full" srcset="https://depfields.com/wp-content/uploads/2020/05/炊飯器.jpg 360w, https://depfields.com/wp-content/uploads/2020/05/炊飯器-300x250.jpg 300w" sizes="(max-width: 360px) 100vw, 360px" /></figure><div class="wp-block-media-text__content">
<ol class="wp-block-list">
<li>お米を研いて水加減を適切に釜にセットする</li>



<li>中火で炊飯を開始する</li>



<li>沸騰し、適切なころあいをみて火を止める</li>



<li>一定時間蒸らしをする</li>
</ol>



<div class="wp-block-vk-blocks-spacer vk_spacer"><div class="vk_spacer-display-pc" style="height:20px"></div><div class="vk_spacer-display-tablet" style="height:10px"></div><div class="vk_spacer-display-mobile" style="height:5px"></div></div>
</div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>人の手で炊飯をする場合は火加減と時間をうまく調整することが美味しく炊きあがるコツとなります。<br>電気炊飯器はタイマーや温度を感知するバイメタルのようなセンサーと加熱をするヒーターの組み合わせで構成されています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコン非搭載の電気炊飯器はタイマーを使って全自動でご飯が炊けるようになったため人の手で炊飯するのに比べ大変便利になったのですが単純な機能のため好みの炊き加減はできません。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これに対して、マイコン搭載の炊飯器は温度を感知するセンサーと加熱用ヒーターとの間にマイコンがあります。マイコン出力で操作したリレーやSSRなどのスイッチング素子でヒーターへの熱量を操作します。</p>
</div></div></div>



<div class="wp-block-media-text is-stacked-on-mobile is-vertically-aligned-top" style="grid-template-columns:36% auto"><figure class="wp-block-media-text__media"><img decoding="async" width="458" height="491" src="https://depfields.com/wp-content/uploads/2020/05/炊飯窯.jpg" alt="" class="wp-image-1173 size-full" srcset="https://depfields.com/wp-content/uploads/2020/05/炊飯窯.jpg 458w, https://depfields.com/wp-content/uploads/2020/05/炊飯窯-280x300.jpg 280w" sizes="(max-width: 458px) 100vw, 458px" /></figure><div class="wp-block-media-text__content">
<p class="has-normal-font-size">ひとつのシステムとしてみれば温度センサーから得た入力情報をマイコン内のプログラム（ソフトウェア）により最適な火加減になるようにヒーターへの出力を調整するものです。<br>実際のマイコンを使った炊飯器のシステム構成は入力には温度センサー、スタートスイッチ、出力にはヒーター、炊飯器の運転状況を表示するモニターなどです。<br>マイコンによるプログラム（ソフトウェア）で機能を多様化し、いろいろな種類の米にも好みの加減で炊くことができるようになりました。</p>
</div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>余談ですが本当においしく炊くためには、プログラムによる機能だけでなく、特に出力ヒーターや釜の材質など<strong>ハードウェアの性能が重要なポイント</strong>です。<strong>優秀な製品は優れたソフトウェアによる機能だけでなく優れたハードウェアとのバランスよいもの</strong>です。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;マイコン搭載のスイッチ機能:&nbsp;</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none vk_block-margin-sm--margin-top"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>続いてマイコン搭載の例をスイッチの動作でみてみます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>電気製品のスイッチといえば機械的に接点をつなげたり切り離したりするもので回路の電流を直接導通させたり、絶縁させたりして製品機能のオン・オフを切り替えます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコン搭載の電気製品の場合、マイコンの入力に<strong>機械的なスイッチ</strong>をつなげて、マイコン出力をスイッチとして機能させると単なるオン・オフだけでなく、プログラムにより時間と組み合わせて、長押しなどさまざまな機能をもたすことができます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>こうすると見た目は従来どおりの機械的な単機能のスイッチに見えますが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">多機能な性質をもつスイッチ</span></strong>に化けています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>例えばLEDをスイッチで点灯する回路についてみてみましょう。<br>アナログLED回路の場合はスイッチをONにしたときに発光、OFFにしたときは消灯の単純な回路(図1）です。これと同様の回路をマイコンで実現すると図2のようになります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>図2のスイッチはマイコンへ入力としてONの状態(1)とOFFの状態(0)のいわゆるデジタル信号を与えるものです。この入力状態をマイコンでチェックしながら何らかの処理をすれば任意の出力つまりLEDに任意の点灯をさせることができるようになるのです。</p>
</div></div></div>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img decoding="async" width="254" height="223" data-id="1184" src="https://depfields.com/wp-content/uploads/2020/05/led_withoutsw.jpg" alt="" class="wp-image-1184"/><figcaption class="wp-element-caption">図1　アナログLED回路</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="317" height="248" data-id="1185" src="https://depfields.com/wp-content/uploads/2020/05/led_withsw.jpg" alt="" class="wp-image-1185" srcset="https://depfields.com/wp-content/uploads/2020/05/led_withsw.jpg 317w, https://depfields.com/wp-content/uploads/2020/05/led_withsw-300x235.jpg 300w" sizes="(max-width: 317px) 100vw, 317px" /><figcaption class="wp-element-caption">図2　マイコン搭載LED回路</figcaption></figure>
</figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>マイコンを使用した回路ではLEDの点灯のさせかた、スイッチ機能はすべてプログラムでつくられます。スイッチを1秒間長押ししてから10秒間点灯させ、その後自動消灯させるといった動作が簡単に実現できるのがマイコンの便利なところです。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/what-mc/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/763f9c139fdec9bdb0c1a0f619765c3d61d1527c35c32537ca0dfbe5bcd8dd10.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">What is Microcontroller(MCU) used in embedded systems? | Most Powerful Bible ...</div><div class="lkc-url" title="https://en.depfields.com/what-mc/">https://en.depfields.com/what-mc/</div><div class="lkc-excerpt">To master embedded systems, it is important to acquire knowledge and experience in using the microcontrollers. This chapter describes the basic structure and applications of microcontrollers.Basic microcontroller configurationA</div></div><div class="clear">
							</div>
						</div></a></div></div><p>The post <a href="https://depfields.com/what-mc/">組み込みシステムに使われるマイコンとは</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
