ともさんのHP >ものつくり >2次元CCDを使った自作カメラ >天体写真用冷却CCDカメラの製作(AD変換器の取り付け)

天体写真用冷却CCDカメラの製作(AD変換器の取り付け)

 AD変換器はマイコン内臓があるのだけれど、分解能が10bitしかない。0~5Vの範囲を0~1024(2の10乗)の数値に変換してくれるのだが、CCDからの信号を受けるのにはもうちょっと細かくしたい。そこでADコンバーターを外付けすることにする。といっても手に入ったのは12bitのもの。0~4096(2の12乗)に分解できる。もっと細かく分けたいけど、手に入らないので仕方がない。これを使うことにしよう。

 使用するADコンバーターはマイクロチップ社のMPC3204というもの。これも秋月電子通商にて購入。使い方は同社のHPから入手できるデータシートに書いてある。

 配線は下図のようにする。

 VddとVrefには5V、AGNDとDGNDにはグランド(マイナス極)を繋ぐ。CH0にはCCDからの信号を繋ぐ。

CLK、CS~、DOUTは マイコン 楽天 の汎用入出力ポートに繋ぎます。 DINにも本来信号線を繋がないといけないのだけど、今回のように端子CH0しか使わないのであれば、GNDをつないでおけばOK。

で、AD変換を行うプログラムは以下のとおり。ただし、まだ動作確認してません。

/*admcp320x.c 2003/01/07 作成開始*/

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

/*

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

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

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

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

*/

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

unsigned int admcp320x( void );

void admcp320xini( void );

unsigned int admcp320x( void )

{

unsigned char tmp5, tmp0;

int I;

unsigned int data = 0;

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

tmp5 = P5DR;

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

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

P5DR = tmp5 ;

asm("nop") ;asm("nop") ; //100ns

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

P5DR = tmp5 ;

asm("nop") ;asm("nop") ;asm("nop") ;asm("nop") ;asm("nop") ; //250ns

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

P5DR = tmp5 ;

asm("nop") ;asm("nop") ;asm("nop") ;asm("nop") ;asm("nop") ; //250ns

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

P5DR = tmp5 ;

asm("nop") ;asm("nop") ;asm("nop") ;asm("nop") ;asm("nop") ; //250ns

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

P5DR = tmp5 ;

asm("nop") ;asm("nop") ;asm("nop") ;asm("nop") ;asm("nop") ; //250ns

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

{

data = data *2;

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

P5DR = tmp5 ;

asm("nop") ;asm("nop") ;asm("nop") ;asm("nop") ;asm("nop") ; //250ns

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

P5DR = tmp5 ;

asm("nop") ;asm("nop") ;asm("nop") ;asm("nop") ;asm("nop") ; //250ns

//data取得

tmp5 = P5DR;

tmp0 = tmp5 & (~0xfe);

//tmp0=1;

data = data + tmp0;

}

return data;

}/*admcp320x*/

void admcp320xini( void )

{

unsigned char tmp5;

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

tmp5 = P5DR;

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

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

P5DR = tmp5 ;

//端子の入出力設定

tmp5 = P5DDR ;

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

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

P5DDR = tmp5 ;

//asm("nop") ;

}/*admcp320xini*/

最終更新日: 2012-04-10 07:29:27

ともさんのHP >ものつくり >2次元CCDを使った自作カメラ >天体写真用冷却CCDカメラの製作(AD変換器の取り付け)

広告
新着ページ

AIを利用し、衣服のデザイン画から型紙を制作する方法  
2つのアパレル3D技術でひらくオーダーメイド生産の手法  
【洋裁型紙】前後身頃の肩の傾きは何故前身頃の方が傾いているのか  
電子追尾式天体写真撮影法  
日本ミツバチ巣箱の種類  
ドラフター(製図台)でソーイング  
日本ミツバチが逃亡  
カメさんの箱庭  
天体用デジタルカメラの構造と天体写真  
Javaで静止画像(Jpeg)を動画(Mov)に変換  
USBカメラをJAVAで制御  

他のサイト

3D-CAD
洋裁CAD

いいねなど

 RSS 

Author: Tomoyuki Ito

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