Category Archives: 電子回路 カテゴリ "電子回路"のRSS  

PICの型番とアーキテクチャの対応

2012年9月15日 (カテゴリ: PIC:)

PICの各シリーズとビット数の対応表です。 8ビット PIC10,12,16,18 PIC F1シリーズ 16ビット PIC24F,24H,24E dsPIC30F,33F,33E 32ビット PIC32MX8ビット PIC10,12,16,18 PIC F1シリーズ 16ビット PIC24F,24H,24E dsPIC30F,33F,33E 32ビット PIC32MX dsPICは、2003年に作られたもので、DSPの機能を持っている(積和演算が高速に出来る)。 PIC24はその後の2004年に開発されたもの。dsPICとの互換性が意識されているて、ハードウェアで乗算が可能。 PIC32は2…


続きを読む

面白い機能を持ったPIC

2012年9月15日 (カテゴリ: PIC:)

面白い機能を持ったPICを見つけたでメモしておきます。 16F1827 16F88の後継機種です。 PWM回路が4つ付いているので、複数のモータ制御が出来ます。 データシート状は、ECCP1,ECCP2,CCP3,CCP4モジュールと呼ばれています。 (CCPは、Capture/Compare/PWM moduleの略です) 各回路のデューティ比は、3つのタイマーから指定可能なので、3つモータを付けて、それぞれ別の回転数で駆動させるといった事も可能です。 10F320/322 8pinの小型な製品です。 PLD機能付きで、PIC内に小さなロジック回路を作ることが出来ます この機能は、CONFI…


続きを読む

HEWが自動生成したiodefine.hの読み方(for C言語)

2012年9月13日 (カテゴリ: H8:)

H8マイコンでI/O操作を行うためには、H8のハードウェアマニュアルで指定された番地に対して、メモリの読み書きをすれば操作出来ます。アセンブリだと特定番地に対しするアクセスは容易ですが、C言語の場合、通常は変数が使用するメモリ番地はコンパイラ/リンカが自動で割り振ってくれるので、通常プログラマが具体的な”メモリ番地”を指定する事が有りません。 ですが、I/O操作に限っては具体的な番地を指定したアクセスが必要となります。この為にHEWではiodefine.hというヘッダを自動生成してくれます。 本記事では、H8マイコンが持っているシリアル通信機能(SCI機能)を使用すると…


続きを読む

12ステップで作る組込みOS自作入門: 1stステップの作成結果

2012年9月12日 (カテゴリ: C, H8, 読書メモ:)

読み始めた「12ステップで作る組込みOS自作入門」の本ですが、gccだと書籍の内容そのままで楽しくないので、H8の製造元であるルネサスが出しているIDEのHEWを使用して同じものを作ってみる事にします。 ターゲットのマイコンも,書籍ではH8/3069Fで説明していますが、H8/3694Fをターゲットに作成します。 このチップを使用する理由は、”たまたま手元にあったから”というだけです。 3069FはフラッシュROMが512Kbteなのに対して、3694Fのほうは32kByteしかないので途中で容量不足になりそうな気もしますが、出来るところまで作ってみて足りなくなったらそ…


続きを読む

マイコンで使わないI/Oピンを,出力モードにすべき理由

2012年9月12日 (カテゴリ: 電子回路基礎:)

PICなどのワンチップマイコンを使ってプログラムを作る際、場合よっては全ポートを使用しない場合もあるかと思います。 未使用のI/Oポートがある場合、該当のピンをinputとoutputのどちらにするかという疑問がありました。 どちらでも問題ないかと思っていたのですが、出力にしておいたほうが良いらしいです。 理由ですが、出力にしておくと、ピンの先を何も接続していないオープンな状態でも良くなります。 でも、入力ピンにする場合は、ピンの先をプルアップorプルダウンする必要があります。 これは、入力をオープンにすると、ノイズによる動作の危険があるためです。 回路上、使わないピンをすべてプルアップorプ…


続きを読む

[H8マイコン]アセンブラでシリアルポートにHello World

2012年9月8日 (カテゴリ: H8:)

H8マイコンで、シリアル(SCI)でHello Worldを出力するプログラムです。 HEWに付属のアセンブラでコンパイル可能です。 H8でシリアル通信を行うためには決められた手順(プロトコル)でレジスタを操作する必要があります。 プロトコルの詳細については,以下の記事を参考にしてください。 [読書メモ]12ステップで作る組込みOS自作入門: 2ndステップ シリアル通信 ;———————————————————————— ; FILE : HelloWorld.src ; PROGRAM : シリ…


続きを読む

[読書メモ]12ステップで作る組込みOS自作入門: 2ndステップ シリアル通信

2012年9月8日 (カテゴリ: H8:)

書籍”12ステップで作る組込みOS自作入門 “の読書メモです。 2ndステップのお話は、1stステップで作ったプログラムのうちserial.cの説明がメイン。 H8マイコンのシリアル通信仕様は、ルネサスのドキュメントが確かな資料となる。 シリアルについては、以下の「H8/3069R ハードウェアマニュアル」に記載されているので、これを見ながら確認すると分かりやすい(13-1章のSCIに書かれている)。 http://documentation.renesas.com/doc/products/mpumcu/rjj09b0165_h83069rf.pdf ここで使うシリア…


続きを読む

[H8]HEWでアセンブラ開発用のプロジェクトを作成し、シミュレータで実行してみる

2012年9月7日 (カテゴリ: H8:)

今回は、H8シリーズのマイコンの中でも、H8/3069Fをターゲットとしたプロジェクトを作成し、シミュレータ上でプログラムを実行してみます。 インストール方法は、前回の記事を参考にしてください。 プロジェクトの作成 まずはHEWを起動し、ワークスペースの作成を選択します。 ワークスペースの作成です。 今回はアセンブラの環境を作りたいので、左のプロジェクトタイプからAssembly Applicationを選択します。ワークスペース名は、アルファベットで適当な名前を付けてください。(今回はasm_testにしました) ターゲットとするCPUの選択です。 H8/3069Fのチップはマスクが変わって…


続きを読む

[H8]ルネサスH8シリーズ用IDEのHEWをインストールする

2012年9月7日 (カテゴリ: H8:)

H8マイコン向けのプログラムについて書かれているサイトを見ると,コンパイラにgccを使用していることが多いです。gccだとフリーで使用できるためお手軽ですが、学んだ事を仕事に生かそうと考えると、やはり業務で良く使用されているHEWを使用したくなります。 HEWというのはH8マイコンの製造元であるルネサス(Renesas)が販売している統合開発環境で、アセンブラ/C/C++の開発が可能です。 評価版だと、無制限での試用期間が60日、その後は生成されるコードが64kbyteに制限されてしまいますが、機能評価が目的なら問題有りませんし、勉強目的でミドルエンド・ローエンド向けのマイコンをする場合だと、…


続きを読む

[PIC]HI-TECH Cで7セグ4桁のLEDをダイナミック点灯させる

2012年9月6日 (カテゴリ: PIC:)

7セグ4桁のLEDを、HI-TECH Cでダイナミック点灯させるプログラムを作成しました。 ダイナミック点灯の仕組みですが、簡単で短い周期で順番に1桁づつ点灯させていくだけです。 どの桁を点灯させるかは7セグのコモン側のピンを操作する事で決定します。BQ-N516RDはカソードコモンなので、点灯したい桁のコモンをLowにすればOKです。 表示の周期ですが、60Hzぐらい(毎秒60回)まで速くしてあげれば、人間の目だと残像で全桁がずっとつきっぱなしになっていると錯覚してしまうようです。低めの周波数だとチラツキを感じる事も有るので、可能なら気持ち速めほうが良いかもしれません。 ネットで見た情報だと…


続きを読む

4桁7セグLED点灯の回路を74HC4511/BQ-N516RD使用してブレッドボードで組む

2012年9月6日 (カテゴリ: 電子回路:)

前回作った回路図を参考にしつつ、一旦ブレッドボードで組んでみました。 前回描いた回路図はこんな感じでした。 回路で使用した74HC4511とBQ-N516RDの仕様と、配線の考え方はこちらで書いているので参考にしてください。 74HC4511とBQ-N516RDで,4桁の7セグLEDをコントロールする 以下が、回路図を参考に組んだブレッドボード上の回路です。結構大きくなってしまいました。 一部7セグLEDの下にも配線をしており分かり辛いので、7セグLEDをはずした状態での写真です。 薄い四角が7セグで覆われている領域です。 上下にワイヤーが出ていますが、これがマイコンへの出力ピン(計8本)にな…


続きを読む

[PIC] 16F84A->16F88で,ピンに追加された機能を確認する

2012年9月2日 (カテゴリ: PIC, 未分類:, )

PICの入門向け書籍でよく紹介されているPIC16F84Aですが、16F84Aとピン互換がありながらプログラムメモリが4倍に増えたPICに16F88が有ります。 16F88を単に84Aのプログラム容量が大きい版として使うのもよいのですが、機能も追加されています。 今回はデータシートのピンアサインを元に、16F88で増えた機能を確認します。 まず、こちらがPIC16F84Aのピンアサインです。 で、こちらが16F88です。 16F88を見ると分かるように、各ピンに対して様々な機能が追加されています。 慣れればピンの名称だけで機能が類推できますが、最初のうちは略称だけでは内容が分からないので、Pi…


続きを読む

XBeeのピン配列

2012年9月2日 (カテゴリ: XBee:)

XBee(Series2)は、基板から20本の足が出ています。 ピン番号はICと同じで、上から見て左上から反時計回りに1-20番pinになります。 ピンアサインは以下の通りとなっています。 Pin 名称        I/O I/Oデフォルト値 機能 — —————— ——- ——————- —————————— 1 VCC – 電源(3.3v) 2 DOUT 出力 UART出力(TX) 3 DIN/nCONFIG 入力 UART入力(RX) 4 DIO12 双方向 無効 デジタルIO12 5 …


続きを読む

XBeeを始めて買うとき最低限知っておきたい6つのこと

2012年9月2日 (カテゴリ: XBee:)

XBeeを使うと、PICやArduinoと連携して無線データ通信を簡単に行えます。 今回はXBeeを新しく買いたい人向けに、基礎的な情報をまとめておきます。 XBeeとZigBeeの関係 XBeeについて調べていると、”ZigBee”というキーワードが出てきます。 ZigBeeというのは、Bluetoothや、wifiのような無線通信の規格を意味しています。 ZigBee物理層はIEEE 802.15.4として規格化されています。 XBeeは、ZigBeeプロトコルを使ってデータの送受信を行います。 ですので、XBeeを無線LANのルータや、Bluetoothイヤホンと…


続きを読む

回路図作成にBSch3Vを使ってみた

2012年9月1日 (カテゴリ: 電子回路:)

ユニバーサル基板で回路を組むために回路図を描きたかったのですが、手書きだと面倒なのでフリーソフトのBSch3Vを使ってみました。 今回、使い勝手を調べるために作った回路図は、以前調べた74HC4511/BQ-N516RDの組合せです。 74HC4511とBQ-N516RDで,4桁の7セグLEDをコントロールする BSch3VにBQ-N516RDの部品は登録されていないので、部品から作る必要があります。 部品は、BSch3Vに同梱しているLCoV.exeというツールで作成します。 かなり使いやすいツールで、さくっと作れました。 ピン配置もこのような感じで、直感的に定義できます。 74HC4511…


続きを読む

[PIC]HI-TECH Cで、タイマー割り込みを行う(PIC16F84A)

2012年9月1日 (カテゴリ: C, PIC:)

PIC16F84Aには、TMRというタイマーモジュールがあり、これを利用と一定周期でタイマ割り込みをかけることが出来ます。 今回は、HI-TECH Cでタイマ割り込み処理を作成してみます。 ※アセンブラ(MPASM)でタイマー割り込み処理を行いたい場合は、こちらの記事を参考にして下さい。 [PIC]TMRモジュールを使用する(タイマー割り込み) TMRを使用したサンプルコードです。 これは,8Mhzで動作しているPICに対して,約10ミリ秒周期でタイマー割り込みをかけています。 #include <stdio.h> #include <htc.h>   #de…


続きを読む

[PIC]HI-TECH Cでコンフィギュレーションビットを指定する

2012年8月28日 (カテゴリ: C, PIC:)

PICのプログラムをアセンブリ(MPASM)で作成する場合は、CONFIG命令でコンフィギュレーションビットを指定するのですが、HI-TECH Cではこの設定は、__CONFIG()マクロで行います。 下記のプログラムは、__CONFIG()マクロの使用を使用したサンプルです。 #include <stdio.h> #include <htc.h>   void main( void ) { __CONFIG( FOSC_HS & WDTE_OFF & PWRTE_ON & CP_OFF ); …


続きを読む

[PIC]HI-TECH Cで一定時間スリープさせる

2012年8月27日 (カテゴリ: C, PIC:)

PICでは、HI-TECH Cコンパイラをを使用した、C言語による開発を行う事ができます。 C言語で開発を行う場合、プログラム中で一定時間処理をスリープさせるにはどうしたら良いでしょうか? HI-TECH Cの環境では、主に以下の4つの手法があります。 1. 空ループを回す 2. _delay()マクロを使用する 3. __delay_ms()マクロを使用する 4. __delay_us()マクロを使用する1. 空ループを回す 2. _delay()マクロを使用する 3. __delay_ms()マクロを使用する 4. __delay_us()マクロを使用する 上記のうち2,3,4のマクロはH…


続きを読む

PIC16F84AをC言語で,MPLAB IDE環境で開発する

2012年8月26日 (カテゴリ: C, PIC:, )

PIC16シリーズでは、入門者向けとしてよく使用されているPIC16F84Aですが、プログラムの格納エリアが小さいため通常はMPASMというアセンブラを使用してプログラムを行う事が多いです。 PICの製造メーカであるMicroChipが提供している統合開発環境のMPLABでも、標準ではアセンブラしか用意されていません。ですが、実はMicroChipはCのコンパイラも用意してくれているので、追加でコンパイラをインストールすれば、Cで開発する事も可能です。 今回はMPLABで、PIC16F84AのプログラムをC言語で開発する方法を説明します。 C言語によるPICプログラミング入門 MicroChi…


続きを読む

[MPASM]list擬似命令の意味と、指定可能なオプション情報一覧

2012年7月31日 (カテゴリ: PIC:)

PICのアセンブラであるMPASMでは、list命令でターゲットのPICデバイスを指定します。 LIST P=PIC16F84ALIST P=PIC16F84A LISTはデバイス指定用の専用命令なのかというとそうではなくて、他にも色々な付加情報(アセンブラ処理や、フォーマット制御)を指定する事が可能です。 今回はlist命令で指定可能なオプションの一覧を確認してみます。 listオプション一覧 bオプション *.lstファイルのタブストップ位置を指定します。 デフォルト値は8です。 使用例 LIST b=4LIST b=4 cオプション *.lstファイルのカラム幅を指定します。 デフォルト…


続きを読む