ともさんのHP >ものつくり >2次元CCDを使った自作カメラ >天体写真用冷却CCDカメラの製作(ADコンバータ−作動試験)

天体写真用冷却CCDカメラの製作(ADコンバータ−作動試験)

 ADコンバータを動かしてみました。使ったのはADS8320という分解能16BITのもの。12BIT以上のADコンバーターはなかなか売っていないので入手に苦労しました。ついでに小さいので半田付けも苦労しました。

 使い方はインターネットでデータシートを入手て調べました。

 マイコンにつないで動かしたところ...まったく動かない。いろいろ調べてみると、 マイコン 楽天 のポートが入力専用ポートを使っていたので信号が出力されていなかったためと判明。繋ぎ直したらきちんと動きました。

下はマイコンH8-3069を使ってADコンバータADS8320を動かすための関数。動作は確認すみ。

/*ads8320.c 2003/02/13 作成開始 Tomoyuki Ito*/

/*ADC ADS8320チップにアクセスしてAD変換を行い、結果を取得する関数*/

/*

PortB-0 : シリアルdata入力端子

PortB-1 : クロック出力端子

PortB-2 : SC~(チップセレクト)出力端子

に繋ぐ。SC~はプルアップしておく

H8-3069用(20MHz)

2003/3/17 動作確認

*/

#include <h8/reg3067.h> /*I/Oアクセス用インクルード*/

#include"y_sci1.h"

/*AD変換実行関数*/

unsigned int ads8320( void );

/*初期化関数*/

void ads8320ini( void );

/*待ち時間を作る関数*/

void dowait( void );

unsigned int ads8320( void )

{

unsigned char tmp5, tmp0;

int I;

unsigned int data = 0;

//端子初期出力値の設定

tmp5 = PBDR;

tmp5 = tmp5 & (~0x02); // 1bit目,clockを0に設定

// PBDR = tmp5 ;

// tmp5 = (tmp5 | 0x04 ); //2bit目、CS~を1に設定

tmp5 = (tmp5 & (~0x04) ); //2bit目、CS~を0に設定

PBDR = tmp5 ;

dowait();

tmp5 = (tmp5 | 0x02); // 1bit目,clockを1に設定

PBDR = tmp5 ;

dowait();

tmp5 = tmp5 & (~0x02); // 1bit目,clockを0に設定

PBDR = tmp5 ;

dowait();

tmp5 = (tmp5 | 0x02); // 1bit目,clockを1に設定

PBDR = tmp5 ;

dowait();

tmp5 = tmp5 & (~0x02); // 1bit目,clockを0に設定

PBDR = tmp5 ;

dowait();

tmp5 = (tmp5 | 0x02); // 1bit目,clockを1に設定

PBDR = tmp5 ;

dowait();

tmp5 = tmp5 & (~0x02); // 1bit目,clockを0に設定

PBDR = tmp5 ;

dowait();

tmp5 = (tmp5 | 0x02); // 1bit目,clockを1に設定

PBDR = tmp5 ;

dowait();

tmp5 = tmp5 & (~0x02); // 1bit目,clockを0に設定

PBDR = tmp5 ;

dowait();

tmp5 = (tmp5 | 0x02); // 1bit目,clockを1に設定

PBDR = tmp5 ;

dowait();

tmp5 = tmp5 & (~0x02); // 1bit目,clockを0に設定

PBDR = tmp5 ;

dowait();

for( I=0; I<16 ; I++)

{

data = data << 1;

tmp5 = (tmp5 | 0x02); // 1bit目,clockを1に設定

PBDR = tmp5 ;

asm("nop") ;asm("nop") ;tmp5 = PBDR;

//y_outch16i1( (unsigned int)tmp5 ) ;

dowait();

tmp5 = tmp5 & (~0x02); // 1bit目,clockを0に設定

PBDR = tmp5 ;

dowait();

//data取得

tmp5 = PBDR;

tmp0 = tmp5 & (~0xfe);

//y_outch16i1( (unsigned int)tmp5 ) ;

//tmp0=1;

data = data + tmp0;

}

tmp5 = PBDR;

tmp5 = (tmp5 | 0x04 ); //2bit目、CS~を1に設定

PBDR = tmp5 ;

return data;

}/*ads8320*/

void dowait( void )

{

int I=0;

for(I=0;I<10;I++){ asm("nop") ; }

return;

}

void ads8320ini( void )

{

unsigned char tmp5;

//端子初期出力値の設定

tmp5 = PBDR;

tmp5 = (tmp5 | 0x04 ); //3bit目、CS~を1に設定

tmp5 = tmp5 & (~0x02); // 1bit目を0に設定

PBDR = tmp5 ;

asm("nop") ;

//端子の入出力設定

tmp5 = PBDDR ;

tmp5 = ( tmp5 | 0x06 ); // 1, 2bit目を1に設定(出力)

tmp5 = tmp5 & (~0x01); // 0bit目を0に設定(入力)

PBDDR = tmp5 ;

asm("nop") ;

//端子初期出力値の設定

tmp5 = PBDR;

tmp5 = (tmp5 | 0x04 ); //3bit目、CS~を1に設定

tmp5 = tmp5 & (~0x02); // 1bit目を0に設定

PBDR = tmp5 ;

}/*ads8320ini*/

最終更新日: 2003-02-19 00:00:00

ともさんのHP >ものつくり >2次元CCDを使った自作カメラ >天体写真用冷却CCDカメラの製作(ADコンバータ−作動試験)

このエントリーをはてなブックマークに追加
広告
おすすめ記事
新着ページ

ツールチップの表示  
アイコンの差し替え  
日本ミツバチ用重箱式巣箱の各部名称と機能  
柿の消毒  
IMEの自動設定  
みつばち日記  
初心者用巣箱その1  
アプリ終了時にダイアログを表示  
書類の整理方法  
人用の型紙をドール用に変換  
スイートピーの栽培、手入れ、増やしかた  

私の他のサイト

ともさんの箱庭(ブログ)
家庭菜園
3D-CAD
洋裁CAD

いいねなど

 RSS 
PageSpeedInsights
html5チェック

Author: Tomoyuki Ito

このサイトの文章・写真の無断転載を禁じます