新技術&新製品紹介

テキスト ボックス: マイクロコンバータ基板 TRX-CV
ベア・モデル完成基板(TRX_CV0)  7,000円    4Mメモリ・モデル基板(TRX_CV1) 15,000円


パソコンとRS232Cケーブル、電源(2.7〜5.5V)を用意して

マイコン・システムの開発を始めよう・・・

8チャネル12ビットA-Dコンバータを搭載した最新ワンチップ・マイコン(8051CPUコア)

8KバイトフラッシュEEPROMとダウンローダ内臓により、書き込み器(ライタ)不要

 ☆無償開発ツール(アセンブラ、デバッガ、ANSI-Cコンパイラ評価版)により開発環境完備

 

マイクロコンバータ(ADuC812)は、アナログデバイセズ社よりリリースされた、最新のワンチップ・マイコンです。

トランジスタ技術SPECIAL71号『OPアンプから始めるアナログ技術』の8章で、このLSIを紹介しています。

ADuC812は下図に示すように、

・8チャネル12ビット高精度A-Dコンバータ(200Kサンプル/秒)

・2チャネル12ビットDーAコンバータ

などのアナログ・コンバータと、

8051互換8ビット・マイクロプロセッサ・コア

・8Kバイト・フラッシュEEPROMプログラム・メモリ

640バイト・フラッシュEEPROMデータ・メモリ

256バイト・データSRAM

・3チャネル16ビット・タイマ/カウンタ

・UART(非同期シリアル・コントローラ)

・クロック・シリアル・インターフェイス(IIC、SPI)

32本のプログラマブル入出力ライン

などの機能を集積した新LSIです。

 

 

 

 

 

 

 

 

 

☆世界標準8051CPUコアを搭載したワンチップ・マイコン

 ADuC812に内蔵されている8051CPUコアは、ワンチップ・マイコンのデファクト・スタンダードです。インテル社オリジナルですが、世界中でワンチップ・マイコンのCPUコアとして使われています。

 8051CPUコアは解かりやすいCISC命令セットを備えています。9ページのアセンブラ・プログラムをご覧ください.PICやAVRマイコンと違って、1命令で複雑な処理を実行することが可能です。

 ADuC812は、2.7V〜5.5Vの電源で動作します。安定電源を必要としませんので、アルカリ電池2本で動作します.3V動作時の消費電流は、12mA(12MHzクロック時)です。

ADuC812内蔵の8Kバイト・フラッシュ/EEプログラム・メモリは、最低10,000回の再書き込みが可能です。また、書き込みデータは最低10年間保証されます。DMAと16Mバイトの外部メモリ空間も備えていますので、中規模マイコン・システムへの対応も可能です.

 またADuC812は、豊富な周辺ペリフェラル機能を搭載しています。32ビット・パラレル・ポート、RS232Cシリアル・コントローラ、3チャネル16ビット・タイマ/カウンタなどを備えていますので、簡単なマイコン制御機器はこのチップ1個で完成します。

 アナログデバイス社は、このマイクロコンバータの第2弾として、『16&24ビットA-Dコンバータ』を搭載したADuC824のサンプル出荷も開始しています。

☆最新のインサーキット・プログラミング機構搭載

ADuC812は、プログラム格納用の8KバイトフラッシュEEPROMとダウンローダを内臓しています。Windows98パソコンで開発したHEXフォーマット・データは、RS232Cインターフェイスを介してADuC812に転送します。チップ搭載のファームウエアがフラッシュEEPROMに書き込みます。このため特殊な書き込み器(ライタ)もケーブルも一切不要です。

TRX_CV0/CV1(写真)は、吉田幸作氏がトランジスタ技術SPECIAL71号執筆のために開発した評価ボードです。この基板とWindowsパソコンを市販のRS232Cケーブル(9ピン・ストレート)で接続します。そ

  KEIL社Cコンパイラの統合開発環境操作画面    --5

して、電源(単3アルカリ電池2本)を接続するだけで、マイコン・システムの開発環境ができます。

アナログデバイセズ社のWebから、アセンブラ、デバッガ、ダウンローダなどをパックにした『開発キット』が無償で入手できます。CコンパイラはKEIL社の評価板8051コンパイラとデバッガ(無償)が使えます。ADuC812用のヘッダ・ファイルはアナログデバイセズ社から供給されています。ただし評価版Cには『コード・サイズ(2Kバイト)』、『浮動小数点演算』『アセンブラ記述』などに制限があります。

☆ADuC812搭載基板TRX_CV0/CV1を使ってみませんか?

トランジスタ技術SPECIAL71号執筆のため、吉田幸作氏は2種類の基板TRX_CV0/CV1を開発しました。いずれも75mm×37.5mmのコンパクトな基板で、鰍dSP企画より斡旋しています。

基板左側の26ピン・コネクタは、アナログ入出力、デジタル電源入力用です。右側の9ピンDSUBコネクタはWindowsパソコンのRS232Cコネクタとストレート・ケーブルで接続し、

・プログラム書き込み用のダウンロード・パス  

・完成システムとパソコンとのRS232C通信パス

の両用途に使うことが出来ます。電源電圧は、

TRX_CV0         2.7〜5.5V 

TRX_CV1         2.7〜5.5V (JP2 ショート)        5.3V〜11.5V      (JP2 開放)

です。単3アルカリ乾電池2本、ニカド電池3本で動作します。

 

・ベア・モデル完成基板           TRX_CV0   7,000円 (税込み)

ベア・モデルTRX_CV0は、4Mビット外部メモリ、A-Dコンバータ入力段の電圧フォロワ回路を省いたローコスト・モデルです。22ビットのパラレルポートが使えます。このベア・モデルは、ADuC812をワンチップ・コントローラとしてロボットの制御などに使う方にお勧めです。

 

 

 

 

 

 

 

 

 

・4Mメモリ・モデル完成基板             TRX_CV1  15,000円 (税込み)

 4Mメモリ・モデルは、512Kバイトの外部SRAMが付いています。計測データを蓄積したり、200Kサンプル/秒の最高速変換ができます。またA-Dコンバータの入力段には、オフセット電圧1μV、オフセット電圧ドリフト0.005μV/℃(TYP値)という最新の超精密OPアンプの電圧フォロワ回路がついています。パラレルポートは外部メモリアクセスのため、実質3ビットしか利用できません。

 

 

 

 

 

 

 

 

                                            

ベア・モデル完成基板(TRX_CV0)の回路図  

 下図はマイクロコンバータ基板ベア・モデル(TRX_CV0)の回路図です。ADuC812チップとクロック用水晶振動子、RS232Cドライバなど最小限の機能を搭載したガラスエポキシ4層基板です。外部SRAMおよびアナログ電圧フォロワ回路、電源レギュレータは実装されていません。

 外部SRAMアクセス用のアドレス/データ線が要りませんので、パラレル入出力ピンとして使うことが出来ます。26ピン・ヘッダ(J3)を実装すれば、ポート0、2、3を合わせて22ピンの入出力ピンが利用できます。

 電源レギュレータは実装されていません。J1コネクタの25−26ピン間に、2.7〜5.5Vの電源を接続してください。安定化する必要はありません。単3電池2〜3本で動作します。

 基準電圧出力(REFOUT)はADuC812内蔵の基準電圧出力ですが、負荷をとることは出来ません。センサ回路の基準電圧などに使う場合は、電圧フォロワで受けてください。

 

☆4Mメモリ・モデル完成基板(TRX_CV1)の回路図

 次はマイクロコンバータ基板4Mメモリ・モデル(TRX_CV1)の回路図です。4M SRAM(512Kバイト)超精密電圧フォロワ回路、電源レギュレータなどを搭載した、本格的なアナログ・データ集録システムに最適な設計です。ADuC812内蔵の基準電源を使いますので、LM4130AIM5-4.1は実装されていません。

 ユーザサイドでLM4130AIM5-4.1を実装される場合は、ジャンパプラグJP3をショートさせてください。

                                            --7

 TRX_CV1はSII社の低ドロップ電圧レギュレータを搭載しています。ジャンパプラグJP2の設定により、

JP2ショート      2.7〜 5.5Vの電源。安定化不要、単3電池2〜3本で動作。

JP2開放                    5.3〜11.5V

2種類の電源方式が選べます。いずれの場合もJ1コネクタ25−26ピン間に電源を接続してください。

 基準電圧出力(REFOUT)はADuC812内蔵の基準電圧を電圧フォロワ回路を介して出力しています。5mA程度の負荷の場合は、直接接続していただいて構いません。

 ADuC812のパラレル・ポートを出力として使う場合、High時のソース電流は、ほんのわずか(20μA)しか許されていません。プルアップする場合も、双方の電源電圧が異なる時は、注意が必要です。トラブルを避ける最善の方法は、出力信号をHC-MOSロジックICでバッファすることです。

 パラレル・ポートを入力として使う場合は、各ポートに1を書き込んで、プルアップを有効にしておく必要があります。

 

 

 

 

 

 

 

☆ADuC812開発キットの入手とインストール

まずアナログデバセズ社のホームページ http://www.analog.com から

開発キット   『ADuCkit.exe;自己解凍型ファイル 5.35Mバイト』

を適当なフォルダにダウンロードします。次にこのファイルをダブルクリックして実行させますと、開発キットのインストールが開始されます。

 開発キットには、ADuC812用アセンブラ、デバッガ、サンプルプログラム、KEIL社Cコンパイ

ラ用ヘッダ・ファイルなどが含まれています。アセンブラはフォルダ ASM51に生成されます。右下のリストはADuC812のLED点滅プログラムのアセンブラ・リストです。メーカ供給のソースファイルに漢字のコメントを入れてみましたが、正常にアセンブルされました。

☆ADuC812開発キットによるプログラム開発手順

ADuC812開発キットのアセンブラ操作手順は、

1.インストールにより生成されるフォルダADuCのASM51アイコンをダブルクリックします。

2.DOS窓が開いて、ソース・ファイル名を聞いてきますので、

        C:\ADuC812\CODE\BLINK.ASM

 とキー入力しますと、アセンブルが開始されます。正常に終了しますと、

        ASSEMBLY COMPLETE, 0 ERRORS FOUND

 と表示され、HEXファイル;BLINK.HEX が生成されます。

3.次に、このプログラム・データを基板にダウンロード(書き込み)します。まずADuC812搭載基板(TRX_CV0/1)の9ピンコネクタとパソコンのRS232Cコネクタ(COMポート)をストレートケールで接続します。そして、基板上のジャンパJP1をショートさせて基板をプログラミング・モードにした上で、基板の電源を入れます。

テキスト ボックス:                        1    ;********************************************************************
                       2    ; Author        : ADI - Apps            www.analog.com/MicroConverter
                       3    ; Date          : 28 May 1999
                       4    ; File          : blink.asm
                       5    ; Hardware      : Any 8052 based MicroConverter (ADuC8xx)
                       6    ; Description   : LED 点滅プログラム; 200mS 間隔、50% duty cycle.
                       7    ;********************************************************************
                       8    $MOD52                          ; use 8052 predefined symbols
     00B4              9    LED     EQU     P3.4            ; P3.4 is red LED on eval board
                      10    ;____________________________________________________________________
                      11                                                           ; MAIN PROGRAM
                   12    CSEG
0000                  13    ORG  0000h
0000 B2B4             14    BLINK:  CPL     LED             ; flash (complement) the red LED
0002 120007           15            CALL    DELAY           ; call software delay
0005 80F9             16            JMP     BLINK           ; repeat indefinately
                      17    ;____________________________________________________________________
                      18                                                            ; SUBROUTINES
0007                  19    DELAY:                          ; delay 100ms
0007 7FC8             20            MOV     R7,#200         ; 200 * 500us = 100ms
0009 7EE5             21    DLY1:   MOV     R6,#229         ; 229 * 2.17us = 500us
000B DEFE             22            DJNZ    R6,$            ; sit here for 500us
000D DFFA             23            DJNZ    R7,DLY1         ; repeat 200 times (100ms delay)
000F 22               24            RET
                      25    ;____________________________________________________________________
                      26    END
                                            --9--

4.フォルダADuCのDownloadアイコンをダブル・クリックすると、ファイル名を聞いてきますので、

          C:\ADuC812\CODE\BLINK.HEX

 とキー入力します。ADuC812内蔵フラッシュEEPROMへの書き込みは内臓ダウンローダが行いますので、ユーザは正常に書き込みが終了するのを待つだけです。

5.ダウンロード(書き込み)が正常に終了したら、一度、基板の電源を切ります。ジャンパプラグJP1を開放状態にして、再び電源を入れると、書き込んだユーザ・プログラムの実行が開始されます。

 

☆ADuC812開発キットによるプログラム開発手順

次にADuC812開発キットに含まれているデバッガの使い方を紹介します。まず基板とパソコンをストレートケールで接続します。そして基板上のジャンパJP1をショートさせ、基板の電源を入れます

 開発キットのインストールにより生成されたフォルダ、フォルダDeBugV2内のアイコン;ADuC.exeをダブルクリックすると、デバッガが起動します。ウイザードの指示に従ってパラメータを入力すると、下の画面が現れます。DeBugV1は初期バージョンのADuC812チップ・ファームウエアに対応したデバッガですが、鰍dSP企画が供給する基板には新バージョン・チップしか使われていませんので、不要です。

ANSI規格Cコンパイラによるプログラム開発

 マイクロコンバータのCプログラム開発には、KEIL社のANSI規格Cコンパイラ(評価版)が利用できます。評価版は、『オブジェクトで2Kバイト以下』などの制約がありますが、KEIL社のWebから無償でダウンロードできます。[ http://www.keil.com/ ]  AduC812用のヘッダ・ファイル、インクルード・ファイルおよび環境設定情報は、アナログ・デバセズ社のWebから入手してください。/********************************************************************

Description  : Performs ADC conversion every 100ms in Timer2 mode. Outputs ADC results

                  --10--

                serially via UART as ASCII characters representing the hexadecimal result.

                0.1秒ごとに8チャネルのデータを順次A-D変換し、10進数4桁のASCII文字データで

        RS232Cシリアルポートに出力するプログラム.

********************************************************************/

#pragma DEBUG OBJECTEXTEND CODE // pragma lines can contain state C51

#include <stdio.h>              // declarations for I/O functions

#include <ADuC812.h>            // 8052 & ADuC812 predefined symbols

//________________________________________  INTERRUPT SERVICE ROUTINE

int a ;

/* END OF ADC CONVERSION INTERRUPT ROUTINE */

void adc_int () interrupt 6 {   // int6*8+3 = 51dec = 33hex = ADCI

  P3 ^= 0x10 ;                  // complement LED (P3.4 on eval bd.)

  a = (ADCDATAH & 0x0f)* 0x100 + ADCDATAL ;

  ADCCON2++ ;

  if(ADCCON2==0x08){

          ADCCON2=0x00 ;

          printf ("%4d\n", a ) ;

          }

  else    {

          printf ("%4d,", a ) ;

          }

}                               // output ADC result text via UART

//____________________________________________________  MAIN PROGRAM

void main (void) {

 

  /* CONFIGURE UART */

  SCON = 0x52 ;                 // 8bit, no_parity, 1_stop_bit

  TMOD = 0x20 ;                 // configure Timer1..

  TH1 = 0xFD ;                  // ..for 9600baud..

  TR1 = 1 ;                     // ..(assuming 11.0592MHz crystal)

 

  /* CONFIGURE ADC */

  ADCCON1 = 0x62 ;              // power up ADC & enable Timer2 mode

  ADCCON2 = 0x00 ;              // sellect chan#0

  RCAP2L = 0x00 ;               // sample period = 2 * T2 reload prd

  RCAP2H = 0x4C ;               //   = 2*(10000h-4C00h)*1.085us

  TL2 = 0x00 ;                  //   = 2*46080*1.085us

  TH2 = 0x4C ;                  //   = 100ms

 

  /* LAUNCH ADC CONVERSIONS */

  IE = 0xC0 ;                   // enable ADC interrupt

  T2CON = 0x04 ;                // run Timer2

 

  /* WAIT FOR INTERRUPTS */

  while (1)  { }                // endless loop

}