论坛风格切换切换到宽版
  • 14661阅读
  • 50回复

目前在做的一个频率计,准备作为学生劳技作品,请大家看看有没有问题,特别是源程序 [复制链接]

上一主题 下一主题
离线myw
 
发帖
140
只看楼主 倒序阅读 0楼 发表于: 2005-03-21
se-fcntr

100 mhz 주파수 카운터 / 펄스 카운터
8051을 이용한 8 디지트 100mhz 주파수 카운터입니다.
crossware 8051 ansi c 데모 컴파일러를 사용하였습니다.
디지털 논리 회로의 카운터 오차나 소프트웨어의 계산오차가 없습니다.
24mhz 의 오실레이터 주파수를 8051 xtal1 클록과 카운터
디지털 입력으로 연결하여 24000000 이 표시됩니다. 1 카운트의 카운트 오차 또는
16진수를 10 진수로 변환할 때 12 ~ 48 클록 오차가 발생하지 않도록 설계하였습니다.
펄스 계수기로 사용할 수 있도록 8 자리의 fnd 로 구성하였습니다.


8051 의 내부 16 비트 카운타와 외부 12비트(74f161에서 4 비트, 74hc393에서 8 비트)로 구성된 28 비트 카운터이며 8 자리표시 100mhz 주파수 카운터입니다.

게이트 타임을 1 초로하여 99.999999 의 8 자리 디스프레이합니다.

아나로그 100mhz 프리암프와 2.4g 고주파 64분주 프리스케일러

최소부품수로 카운터가 제작되었습니다.

ti사의 최대 120mhz 카운트 가능한 4비트 카운터 sn74f161을 사용하였습니다.

hold 모드 선택, mhz/ghz 선택 스위치

fnd를 수직으로 세울 수 있도록 하였습니다.

고주파 특성이 좋은 에폭시 양면 pcb입니다.

키트에 포함된 부품이며 쉽게 구할 수 있습니다.

하드웨어 구성:
se-fcntr 은 8051마이크로 프로세서를 사용한 계측기 수준의 주파수 카운터 입니다. 100mhz 디지털 카운터, 아나로그 100mhz 프리암프, 2.4g 64분주 프리스케일러의 3 개 보드로 나누어 구성됩니다. 디지털 카운터 보드는 마이크로 프로세서로 atmel 사의 at89c51을 사용하였습니다. at89c51은 intel 사의 표준 8051 과 동일하며 4k bytes 의 flash 메모리를 가지고 있으므로 사용하기 편하며 시중에서 구할 수 있는 가장 저렴한 마이크로 프로세서 입니다. 8051 프로세서는 2 개의 16 비트 내부 카운터를 가지고 있습니다. timer0 는 외부 카운터와 같이 주파수 계수용으로 사용하며 timer1 은 1 초의 게이트 타임을 만들기 위하여 사용합니다. 회로를 간단히 하기 위하여 숫자 표시용 fnd 구동회로를 다이나믹 방식으로 구성하였습니다. 2ms 마다 1 개의 fnd 가 순차적으로 점등됩니다. 카운터의 구성 부품수를 최소화 하기 위하여 8051의 내부 16 비트 카운터/타이머 레지스터를 주파수 카운트용 계수기의 일부로 사용합니다. 8051 의 timer 입력은 최대 주파수가 xtal1 입력 주파수의 1/4 입니다. 예를 들어 xtal1 의 클록을 24mhz 주파수로 한다면 최대로 카운트 가능한 주파수는 6mhz 입니다. 주파수 카운터는 일반적으로 5~6 개의 디지트이면 충분합니다만 펄스 계수기로도 사용 가능하게 하기 위하여 8개의 디지트 표시를 목표로 설계하였습니다. 8 자리 카운트 정밀도를 확보하려면 최소 27 비트의 고속 카운터가 필요합니다. timer0를 16 비트로 사용하고 외부에 8 비트(74hc393) 와 4 비트(74161)를 합하여 28 비트 카운터를 구성합니다. 2의 28 승은 268435456 이므로 99999999를 표시(8자리)하기 위하여 충분합니다. 디지털 펄스 100mhz 를 카운트 할 수 있는 ic로는 74시리즈 중에서 74f161 이 있습니다. 여러 제조사에서 74f161을 생산하지만 최고 카운트 주파수가 조금씩 다릅니다. 모두 100mhz 의 카운트가 가능합니다만 ti사의 sn74f161n 은 120mhz로 가장 빠른 카운트 특성을 가지고 있습니다. sn74f161은 4 비트 카운터 이므로 16 분주하게 되며 100mhz를 16 분주하면 6.25mhz 가 됩니다. 다시 이 주파수를 다른 카운터에서 카운트하여야 합니다.이 주파수는 대부분의 카운터 ic 에서 동작 가능한 낮은 주파수 입니다. 1 개의 패키지에 많은 비트수가 있는 카운터로 선택하며 74hc393 이 8 비트 이므로 적합합니다. 74hc393에서 8 비트 카운터를 거치면 25khz의 아주 낮은 주파수가 되므로 at89c51의 timer0 가 동작하기에 문제없습니다. 8051을 주파수 카운터의 디스프레이 용도로만 사용한다면 관계없으나 1 sec 의 기준 게이트 온타임을 만들기 위하여는 8051의 명령어 실행시간에 주의하여야 합니다. 8051은 1980년부터 생산된 아주 오래된 프로세서 입니다. 따라서 연산시간이 빠르지 않으며 명령어의 실행시간이 작은 것과 큰 것의 차이가 많이 납니다. 클록주파수를 결정하는 기준은 sjmp $ 명령이 실행되는 시간이 1 us 의 1/2 또는 1/4 이 되도록 하여야 합니다. 8051은 12 개의 xtal1 펄스수가 기본 명령어 실행단위 시간이 됩니다. 에를 들어 1바이트 명령 nop과 inc r0 은 12개의 클록을 소비하며 sjmp $ 명령은 24개의 클록을 소비합니다. 24mhz 의 클록 주파수를 사용한다면 24개의 클록 시간은 1 us 가 됩니다. 8051은 1 s 를 만들 수 있는 큰 비트의 카운터를 가지고 있지 않습니다. 그러므로 초당 500번의 인터럽트를 발생하여 1 s의 게이트 온 타임 펄스 발생용으로 사용합니다. 인터럽트는 어떤 경우에도 1us 기준시간 단위로 발생하여야 합니다. 24개의 클록8051의 클록은 24mhz를 사용합니다. 8051은 12 클록을 머신사이클(명령실행 기본 단위시간)로 사용합니다. 최소명령어로 12 클록이 소요되며 시간으로 환산하면 500 ns 가 됩니다.

소프트웨어 구성:

c 컴파일러를 사용하여 소프트웨어를 개발하였습니다. 영국 crossware 사의 8051 ansi c 컴파일러는 풍부한 데이터 타입과 32비트 마이크로프로세서에서 제공하는 ieee695 디버깅 포맷을 지원합니다. 한국의 마케팅을 지원하기 위하여 0 번지부터 시작하는 4k bytes 의 free 버젼 컴파일러를 특별히 무료 공개하였습니다. (타사의 8051 데모 컴파일러는 스타트업 번지가 상위번지에 있으므로 반드시 외부 rom 이 필요합니다).
마이크로 프로세서를 이용하여 카운터를 구성할 때 정확한 1 sec 의 게이트 타임을 만들 수 있느냐가 중요합니다. 주파수 카운터라는 것이 1 sec 내에 발생한 펄수 수를 계수하는 것이므로 게이트 타임이 1 sec 로 정확히 떨어지지 않는다면 정확한 카운터라고 볼 수 없습니다.1sec 의 게이트 타임을 발생하기 위하여 8051의 내부 timer1을 사용합니다. xtal1 으로 부터 받은 주파수를 기준으로 초당 500 회의 타이머 인터럽트를 발생합니다. 8051은 cisc 형 프로세서로 명령어의 실행시간이 동일하지 않습니다. 그러므로 계산중에 인터럽트가 발생한다면 피할 수 없는 시간 편차가 발생하여 정확히 1sec 의 게이트 타임 발생이 되지 않습니다. 28 비트의 바이너리 데이터를 10진수로 변경하여 fnd 에 출력하여야 하므로 인터럽트시간 이내에서만 처리가 가능하도록 프로그램을 분산 처리하여야 합니다. 인터럽트 주기가 2 ms 이므로 이 시간 내에 16진수를 10 진수로 변경하는 계산 프로그램과 디스프레이를 처리하여야 합니다. 그런데 8051 printf 함수를 사용하여 2ms이내에 8 자리 진법 변환하는 것은 불가능합니다. 따라서 인터럽트 주기마다 1 자리씩 8 번으로 나누어 차례대로 진법변환을 실행하도록 구성하였습니다. hold 는 fnd 표시 숫자를 정지하는 기능입니다.


소프트웨어 검증:

8051은 xtal1 주파수를 24mhz 로 공급합니다. 그리고 74f161의 클록입력을 xtal1 과 같은 24mhz 를 공급합니다. (하드웨어적으로 연결) 이때 fnd 에 표시되는 숫자가 24000000 이 되도록 소프트웨어를 교정한 것입니다. 디스프레이에 2400000 이 표시된다면 소프트웨어적인 계산오차가 발생하지 않았다는 것을 의미합니다. (1 sec 게이트 기준 클록과 측정 클록이 동일하므로)

100mhz / 1m ohm 프리암프:

이번 카운터제작에서 가장 힘들었던 부분입니다. 프리암프란 낮은 교류전압을 ttl 레벨로 변경하기 위하여 신호를 증폭하는 회로입니다. 측정 주파수 범위를 100mhz 까지로 하였으므로 초 광대역 암프로 구성하여야 합니다. 그리고 sine 파를 구형파로 정형하여야 합니다. 이 용도로 사용하는 것이 슈미트 트리거 입니다. 74 시리즈 중에서 74ls14 가 해당됩니다. 그러나 100mhz 이상의 주파수를 통과시키는 슈미트 트리거를 입수하기가 어렵습니다. 74f14 와 74as14 도 데이터상으로는 고속이지만 임피던스 매칭이 되지않아 실험결과 65mhz 정도가 상한 주파수 였습니다. (이번 실험에서) ti 사의 sn74ahct14 가 입력 임프던스가 높으며 120mhz 이상의 주파수 통과가 가능한 슈미트 트리거임이 확인되었습니다. 입력 주파수에 따라 최소전압이 다릅니다. 개략적으로 50mhz ~ 100mhz 는 약 1.5v 이상이며 50mhz 이하로는 0.5v 정도면 카운트가 가능합니다.


2.4ghz / 50 ohm / 64분주 프리스케일러:

프리스케일러는 카운터의 측정 주파수 상한을 높이는 역활을 합니다. 예를들어 30mhz 카운터에 10분주가 가능한 고속 프리스케일러가 있다면 300mhz 카운터가 되는 것입니다. ttl ic 로 카운터를 만들던 시절에는 10 분주 프리스케일러 ic 를 사용하였으나 현재 마이크로 프로세서에서 진법변환을 실행하므로 64/128/256 분주 프리 스케일러를 사용합니다. 이번 실험에 사용한 프리스케일러는 fujitsu사의 mb506 입니다. 10mhz 부터 2.4ghz 까지 64분주 프리스케일 카운트가 가능합니다. 입력신호를 증폭하기 위하여 mini circuits사의 mar-6 을 2 개 사용합니다. 0.1v의 작은 신호도 카운트가 가능합니다. 입력 임피던스는 50 ohm 입니다.

se-fcntr 조립키트를 개발하면서 다량의 고주파 자료 수집, 프리암프/프리스케일러 회로설계, 부품선정 그리고 성능평가에 많은 도움을 주신 김 한구 사장님께 감사를 표합니다.

 


//
// 100mhz / 2.4ghz universal counter
//
// sample electronics co. 25. nov. 2003
//
// crossware embedded development studio v 3.3.1.2
//
//
//
// 74f161 의 4 bit, 74hc393의 8 bit 그리고 8051 내부 카운터 t0 16 bit 로
// 28 비트의 카운터를 구성한다.
// 펄스 계수시간을 1 sec 가 되도록 하여 8 디지트표시100 mhz 카운터를 만든다.
// 64 분주 프리스케일러를 사용하기 위하여 펄스 계수 시간을 0.64 s 가
// 되도록 한다.
//
//
// 8051 initial c source file
//
#include <sfr.h>
#include <os.h>
#include <stdlib.h>
#include <stdio.h>

_sfrbit p36_o_74f161_clr_n = _p3^6; // &#50808;&#48512; &#52852;&#50868;&#53552; f161 &#47532;&#49464;&#53944;
_sfrbit p35_o_74f161_enp = _p3^5; // &#50808;&#48512; &#52852;&#50868;&#53552; f161 &#51064;&#50640;&#51060;&#48660;
_sfrbit p30_io_74hc393_clr_hold = _p3^0; // &#50808;&#48512; &#52852;&#50868;&#53552; hc393 &#47532;&#49464;&#53944; / hold&#51077;&#47141;
_sfrbit p37_i_prescaler = _p3^7; // 64 &#48516;&#51452; pre scaler
//
// 7 segment led &#54056;&#53556; &#45936;&#51060;&#53552;
// hgfedcba
#define dig0 0xc0 // 11000000b ; 0 p2.0
#define dig1 0xf9 // 11111001b ; 1 +-----a-----+
#define dig2 0xa4 // 10100100b ; 2 | |
#define dig3 0xb0 // 10110000b ; 3 p2.5 f b p2.1
#define dig4 0x99 // 10011001b ; 4 | |
#define dig5 0x92 // 10010010b ; 5 | p2.6 |
#define dig6 0x82 // 10000010b ; 6 +-----g-----+
#define dig7 0xd8 // 11011000b ; 7 | |
#define dig8 0x80 // 10000000b ; 8 p2.4 e c p2.2
#define dig9 0x98 // 10011000b ; 9 | |
// ; | p2.3 |
#define digm 0xbf // 10111111b ; - +-----d-----+ * h p2.7
#define digp 0x7f // 01111111b ; .
#define digb 0xff // 11111111b ; "blank"
//
const char segment_pattern[] = { dig0, dig1, dig2,\
dig3, dig4, dig5, dig6, dig7, dig8, dig9 };
//
const char segment_select[] = { 0xfe, 0xfd, 0xfb, \
0xf7, 0xef, 0xdf, 0xbf, 0x7f };
//
unsigned long trailer;
unsigned long task;
unsigned int trimer;
unsigned char fnd[8];
unsigned char mfnd[8];
unsigned int int_state;
unsigned char fnd_state;
unsigned char boat;
bit hold;
//
//
void _interrupt ivn_timer1 time_base() {
//////////////////////////////////////////////
_tl1 = 0x60; _th1 = 0xf0; // 4000 2 m sec 500 times
//////////////////////////////////////////////
_p0 = 0xff;
_p2 = segment_select[fnd_state];
_p0 = fnd[fnd_state++];
fnd_state &= 0x07;
//////////////////////////////////////////////
if(int_state == 0) { //

p35_o_74f161_enp = 0; // &#50808;&#48512; &#52852;&#50868;&#53552; f161 &#52852;&#50868;&#53552; &#46041;&#51089; &#44552;&#51648;
//
p30_io_74hc393_clr_hold = 1; // &#50808;&#48512; &#52852;&#50868;&#53552; hc393 &#52852;&#50868;&#53552; &#47532;&#49464;&#53944;
p36_o_74f161_clr_n = 0; // &#50808;&#48512; &#52852;&#50868;&#53552; f161 &#52852;&#50868;&#53552; &#47532;&#49464;&#53944;
_tl0 = 0x00; _th0 = 0x00; // &#45236;&#48512; &#52852;&#50868;&#53552; &#47532;&#49464;&#53944;
//
hold = p30_io_74hc393_clr_hold; // hold key &#49345;&#53468; &#51077;&#47141;

p36_o_74f161_clr_n = 1; // &#50808;&#48512; &#52852;&#50868;&#53552; f161 &#52852;&#50868;&#53552; &#51064;&#50640;&#51060;&#48660;
p30_io_74hc393_clr_hold = 0; // &#50808;&#48512; &#52852;&#50868;&#53552; hc393 &#52852;&#50868;&#53552; &#51064;&#50640;&#45768;&#48660;
//

p35_o_74f161_enp = 1; // &#50808;&#48512; &#52852;&#50868;&#53552; f161 &#52852;&#50868;&#53552; &#46041;&#51089; &#44060;&#49884;
}
//////////////////////////////////////////////
if(int_state == 316) { // 10 ghz mode(64 divide prescaler)
if (!p37_i_prescaler) { // 0.64 sec gate time

for (trimer = 0; trimer<202; trimer++) ; // 15 machine cycle &#45800;&#50948;
// &#53580;&#49828;&#53944; &#49888;&#54840;&#50896;&#51012; 24 mhz &#47196; &#51077;&#47141;&#54616;&#44256;
boat++; // 15360000 &#51060; &#54364;&#49884;&#46104;&#46020;&#47197; &#51312;&#51221;&#54620;&#45796;.
boat++; // 1 machine cycle (12 clock) delay
boat++; // 15359988
boat++; // 15360000
// boat++; // 15360012

p35_o_74f161_enp = 0; // &#50808;&#48512; &#52852;&#50868;&#53552;&#47484; &#47688;&#52632;&#45796;.

trailer = _th0;
trailer = (trailer << 20) & 0x0ff00000;
task = _tl0;
task = (task << 12) & 0x000ff000;
trailer |= task;
task = _p3;
task = (task << 7) & 0x00000f00;
trailer |= task;
task = _p1 & 0x000000ff;
trailer |= task;

p35_o_74f161_enp = 1; // &#49548;&#48708; &#51204;&#47448;&#44032; &#51068;&#51221;&#54616;&#44172; &#54616;&#44592;&#50948;&#54616;&#50668;
// &#50808;&#48512; &#52852;&#50868;&#53552;&#47484; &#45796;&#49884; &#49884;&#51089;&#54620;&#45796;.
}

}
//////////////////////////////////////////////
if(int_state == 494) { // 100 mhz mode 1 sec gate time
if (p37_i_prescaler) { // 1 sec gate time

for (trimer = 0; trimer<248; trimer++) ; // 15 machine cycle &#45800;&#50948;
// &#53580;&#49828;&#53944; &#49888;&#54840;&#50896;&#51012; 24 mhz &#47196; &#51077;&#47141;&#54616;&#44256;
boat++; // 24000000 &#51060; &#54364;&#49884;&#46104;&#46020;&#47197; &#51312;&#51221;&#54620;&#45796;.
boat++; //
boat++; //
boat++; //
boat++; // 1 machine cycle (12 clock) delay
boat++; // 23999988
boat++; // 24000000
// boat++; // 24000012


p35_o_74f161_enp = 0; // &#50808;&#48512; &#52852;&#50868;&#53552;&#47484; &#47688;&#52632;&#45796;.

trailer = _th0;
trailer = (trailer << 20) & 0x0ff00000;
task = _tl0;
task = (task << 12) & 0x000ff000;
trailer |= task;
task = _p3;
task = (task << 7) & 0x00000f00;
trailer |= task;
task = _p1 & 0x000000ff;
trailer |= task;

p35_o_74f161_enp = 1; // &#49548;&#48708; &#51204;&#47448;&#44032; &#51068;&#51221;&#54616;&#44172; &#54616;&#44592;&#50948;&#54616;&#50668;
// &#50808;&#48512; &#52852;&#50868;&#53552;&#47484; &#45796;&#49884; &#49884;&#51089;&#54620;&#45796;.
}

}
//////////////////////////////////////////////
if(int_state == 506) { // 1hz &#54364;&#49884; &#46356;&#51648;&#53944;
boat = trailer % 10;
mfnd[7] = segment_pattern[boat & 0xf];
trailer /= 10;
}
//////////////////////////////////////////////
if(int_state == 507) {
boat = trailer % 10;
mfnd[6] = segment_pattern[boat & 0xf];
trailer /= 10;
}
//////////////////////////////////////////////
if(int_state == 508) {
boat = trailer % 10;
mfnd[5] = segment_pattern[boat & 0xf];
trailer /= 10;
}
//////////////////////////////////////////////
if(int_state == 509) {
boat = trailer % 10;
mfnd[4] = segment_pattern[boat & 0xf];
trailer /= 10;
}
//////////////////////////////////////////////
if(int_state == 510) {
boat = trailer % 10;
mfnd[3] = segment_pattern[boat & 0xf];
trailer /= 10;
}
//////////////////////////////////////////////
if(int_state == 511) {
boat = trailer % 10;
mfnd[2] = segment_pattern[boat & 0xf];
trailer /= 10;
}
//////////////////////////////////////////////
if(int_state == 512) {
boat = trailer % 10;
mfnd[1] = segment_pattern[boat & 0xf];
trailer /= 10;
}
//////////////////////////////////////////////
if(int_state == 513) {
boat = trailer % 10;
mfnd[0] = segment_pattern[boat & 0xf];
trailer /= 10;
}
//////////////////////////////////////////////
int_state++;
//////////////////////////////////////////////
if(int_state >= 514) {
int_state = 0;
if (hold) {
fnd[0] = mfnd[0];
fnd[1] = mfnd[1];
fnd[2] = mfnd[2];
fnd[3] = mfnd[3];
fnd[4] = mfnd[4];
fnd[5] = mfnd[5];
fnd[6] = mfnd[6];
fnd[7] = mfnd[7];

if (p37_i_prescaler) {
fnd[1] &= 0x7f; // mhz point
} else {
fnd[0] &= 0x7f; // ghz point
}
}
}
//////////////////////////////////////////////
}

main()
{
_tmod = 0x15; // 0b00010101 timer0 = mode1, counter, use tr0
// timer1 = mode1, timer, use tr1
_tl0 = 0x0; _th0 = 0x0;
_tl1 = 0x0; _th1 = 0x0;
_tr0 = 1; // timer 0 &#46041;&#51089;&#49884;&#51089;
_tr1 = 1; // timer 1 &#46041;&#51089;&#49884;&#51089;

_et1 = 1; // &#53440;&#51060;&#47672; 1 &#51064;&#53552;&#47101;&#53944; &#44032;&#45733;&#49345;&#53468; &#49444;&#51221;
_ea = 1; // &#44544;&#47196;&#48268; &#51064;&#53552;&#47101;&#53944; &#44032;&#45733;&#49345;&#53468; &#49444;&#51221;

while(1) ;

}







se-fcntr &#49548;&#49828; :
(1) crossware 8051 c &#45936;&#47784;&#52980;&#54028;&#51068;&#47084;&#47484; &#49444;&#52824;&#54620;&#54980;
c:\estudio_demo\projects\fcntr4 &#54260;&#45908;&#47484; &#47564;&#46304; &#54980; &#50517;&#52629;&#51012; &#54409;&#45768;&#45796;.
(2) crossware &#51032; file &#47700;&#45684;&#50640;&#49436; project open &#51012; &#53364;&#47533;&#54616;&#44256;
c:\estudio_demo\projects\fcntr4 \fcntr4.xmk &#47484; &#49440;&#53469;&#54633;&#45768;&#45796;.
(3) crossware&#51032; build &#47700;&#45684;&#50640;&#49436; rebuild all &#51012; &#49440;&#53469;&#54616;&#47732; &#49548;&#49828; &#52980;&#54028;&#51068; &#54616;&#44592;&#49884;&#51089;&#54616;&#47728; fcntr4.hex &#44032; &#47564;&#46308;&#50612;&#51665;&#45768;&#45796;.
(5) 8051 &#54532;&#47196;&#44536;&#47000;&#48141;&#51060; &#44032;&#45733;&#54620; &#54532;&#47196;&#44536;&#47000;&#47672; &#46608;&#45716; &#49368;&#54540;&#51204;&#51088;&#50640;&#49436; &#51228;&#51089;&#54620; se-516sp&#47484; &#49324;&#50857;&#54616;&#50668; fcntr4&#47484; at89c51 &#50640; &#46972;&#51060;&#54021;&#54633;&#45768;&#45796;.
se-fcntr hex file

crossware 8051 c &#52980;&#54028;&#51068;&#47084; &#45936;&#47784;&#48260;&#51260;&#51012; &#45796;&#50868;&#48155;&#51004;&#49464;&#50836;. hex &#54028;&#51068; &#49828;&#53440;&#53944; &#50612;&#46300;&#47112;&#49828;&#44032; 0000h &#48512;&#53552;&#51060;&#47728; 4k hex &#53076;&#46300; &#52636;&#47141;&#51060; &#44032;&#45733;&#54633;&#45768;&#45796;. flash &#47700;&#47784;&#47532;&#44032; 4k &#51064; at89c51, at89s51 &#44284; at89c1051/2051/4051 &#51012; &#49324;&#50857;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;. crossware 8051 c &#52980;&#54028;&#51068;&#47084;&#45716; &#54620;&#44397;&#49328;&#50629;&#51064;&#47141;&#44277;&#45800; &#49884;&#54665; &#44592;&#49324; &#49884;&#54744;&#50857; &#52980;&#54028;&#51068;&#47084;&#47196; &#49440;&#51221;&#46104;&#50632;&#49845;&#45768;&#45796;.
crossware 8051 c &#52980;&#54028;&#51068;&#47084; &#54620;&#44544;&#47588;&#45684;&#50620;

 

se-pamp

100 mhz &#54532;&#47532;&#50516;&#54532;
&#51077;&#47141;&#51076;&#54588;&#45912;&#49828; 1m ohm

 


&#51200;&#51452;&#54028;&#50640;&#49436; 100mv , 50mhz~ 100mhz &#50640;&#49436; 2v &#51032; &#49888;&#54840;&#47484; &#51613;&#54253;&#54616;&#50668; ttl &#47112;&#48296;&#47196; &#48320;&#54872;&#54616;&#45716; &#54532;&#47532;&#50516;&#54532;&#51077;&#45768;&#45796;.

10hz ~ 100mhz &#45824;&#50669;&#51060;&#47728; 1m ohm &#51077;&#47141;&#51076;&#54588;&#45912;&#49828; &#51077;&#45768;&#45796;.

100 mhz&#51032; sine&#54028;&#47484; ttl&#47196; &#54148;&#49828;&#51221;&#54805;&#51060; &#44032;&#45733;&#54620; &#49800;&#48120;&#53944; &#53944;&#47532;&#44144; sn74ahct14

&#52488;&#44256;&#51452;&#54028;&#50857; fet 2sk241

nec&#49324;&#51032; 5 ghz &#45824;&#50669;&#54253; &#44256;&#49549; &#53944;&#47004;&#51648;&#49828;&#53552; 2sc2570

&#54532;&#47532;&#50516;&#54532; &#44396;&#49457; &#48512;&#54408;




 

se-prsc

2.4 ghz &#54532;&#47532;&#50516;&#54532;
&#51077;&#47141;&#51076;&#54588;&#45912;&#49828; 50 ohm


10mhz ~ 2.4ghz &#44620;&#51648; &#52769;&#51221;&#46104;&#45716; 64&#48516;&#51452; &#54532;&#47532;&#49828;&#52992;&#51068;&#47084; &#51077;&#45768;&#45796;.

&#51077;&#47141;&#44048;&#46020;&#45716; 100mv &#51077;&#45768;&#45796;.

mini circuits&#49324;&#51032; &#47784;&#45432;&#47532;&#46357; &#52488;&#44305;&#45824;&#50669; &#44256;&#51452;&#54028; &#51613;&#54253; ic &#47484; &#49324;&#50857;&#54616;&#50688;&#49845;&#45768;&#45796;.

50 ohm &#51077;&#47141;&#51076;&#54588;&#45912;&#49828; &#51077;&#45768;&#45796;.

mini circuits &#49324;&#51032; &#44305;&#45824;&#50669; &#44256;&#51452;&#54028; &#51613;&#54253;&#44592; mar-6

fujitsu&#49324;&#51032; 2.4 ghz &#54532;&#47532;&#49828;&#52992;&#51068;&#47084; (64, 128, 256 &#48516;&#51452; &#49440;&#53469;&#44032;&#45733;) mb506

&#54532;&#47532; &#49828;&#52992;&#51068;&#47084; &#44396;&#49457; &#48512;&#54408;



dip &#47700;&#53552;&#47484; &#51060;&#50857;&#54620; &#52852;&#50868;&#53552; &#53580;&#49828;&#53944;


100mhz &#50500;&#45208;&#47196;&#44536; &#54532;&#47532;&#50516;&#54532; &#53580;&#49828;&#53944;

&#51204;&#54028;&#47196; &#50976;&#46020;&#46104;&#50612; &#52852;&#50868;&#53552;&#44032; &#46041;&#51089;&#54633;&#45768;&#45796;.

&#48708; &#51217;&#52489;&#49885;&#51004;&#47196; &#52769;&#51221;&#51060; &#44032;&#45733;&#54633;&#45768;&#45796;.

80mhz (g &#45576;&#44552;)&#51032; &#51452;&#54028;&#49688;&#47484; &#48156;&#51652;&#54616;&#50668; &#52852;&#50868;&#53552;&#50640; &#51077;&#47141;&#54633;&#45768;&#45796;.

2.4g &#54532;&#47532;&#49828;&#52992;&#51068;&#47084; &#53580;&#49828;&#53944;

&#52852;&#50868;&#53552; &#49884;&#54744;&#50640; &#49324;&#50857;&#54620; &#46373; &#47700;&#53552;(dip meter)

&#44032;&#44201;

&#54408;&#47785; &#49324;&#50577; &#44032;&#44201;
se-fcntr 100mhz &#46356;&#51648;&#53560; ttl&#51077;&#47141; &#52852;&#50868;&#53552; (dc - 100mhz) 33,000 &#50896;
se-pamp 100mhz / 1m ohm &#54532;&#47532;&#50516;&#54532; (10hz ~ 100mhz) 16,500 &#50896;
se-prscr 2.4g / 50 ohm 64&#48516;&#51452; &#54532;&#47532; &#49828;&#52992;&#51068;&#47084; ( 10mhz ~ 2.4ghz) 27,500 &#50896;
*** &#51452;&#51032; ***
(1) se-fcntr &#51008; &#52992;&#51060;&#49828;, &#50500;&#45813;&#53552;&#44032; &#50630;&#49845;&#45768;&#45796;.
(2) se-fcntr &#50640;&#45716; &#51068;&#48152;&#54805; 24mhz &#50724;&#49892;&#47112;&#51060;&#53552;&#44032; &#54252;&#54632;&#46104;&#50612; &#51080;&#49845;&#45768;&#45796;.
(2) fnd &#51032; &#49353;&#49345;&#51008; &#51201;&#49353;(red)&#51077;&#45768;&#45796;.
(3) se-fcntr, se-pamp, se-prscr &#51008; &#44060;&#48324; &#54252;&#51109;&#46104;&#50612; &#51080;&#51004;&#47728; &#54596;&#50836;&#54620; &#54408;&#47785;&#47564; &#49440;&#53469;&#51201;&#51004;&#47196; &#44396;&#51077; &#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.
(4) &#52852;&#50868;&#53552;&#50640; &#54252;&#54632;&#46108; ic , &#49688;&#46041; &#48512;&#54408;&#51008; &#44060;&#48324;&#51201;&#51004;&#47196; &#54032;&#47588;&#54616;&#51648; &#50506;&#49845;&#45768;&#45796;.
(5) &#52852;&#50868;&#53552;&#50640; &#54252;&#54632;&#46108; cpu(at89c51)&#50640; &#52852;&#50868;&#53552; hex &#54028;&#51068;&#51060; &#46972;&#51060;&#54021;&#46104;&#50612; &#51080;&#49845;&#45768;&#45796;.




来源:韩国http://www.sample.co.kr/sefcntr/
离线BG5SA
发帖
985
只看该作者 1楼 发表于: 2005-03-21
漂亮!.......................................
离线xiongjunfeng
发帖
1220
只看该作者 2楼 发表于: 2005-03-21
mar6多少钱一只,帮我买几个.如何?
离线bg7jmz
发帖
9888
只看该作者 3楼 发表于: 2005-03-21
可一批量生产吗?一定有很多人感兴趣的!
离线myw
发帖
140
只看该作者 4楼 发表于: 2005-03-21
看情况,我才刚刚备了些样品,主机和100mhz的前置可能要两个星期搞好,装修、搬家中。
一般我们一次做三个,我一个,学生两个,不过我们用的是万能板。
mar6我也在找,看到一些微波二手商那里可能有,可是没具体参数,难以确定,东西太小

就缺mar6 mb506
离线BD7RC
发帖
3283
只看该作者 5楼 发表于: 2005-03-21
upc1651----mar6   b571---mb506
离线BG7IOI
发帖
4142
只看该作者 6楼 发表于: 2005-03-21
mar6用a08代替应该不错
离线大双心河
发帖
794
只看该作者 7楼 发表于: 2005-03-21
做啊,出套件呀       !
离线myw
发帖
140
只看该作者 8楼 发表于: 2005-03-22
大家帮着看看
upc1651的工作频率好像还低了些,不过实际上也能用了
mar-6的厂家和资料 http://www.minicircuits.com/cgi-bin/spec?cat=amplifier&model=mar-6&pix=vv105.gif&bv=4
离线xiongjunfeng
发帖
1220
只看该作者 9楼 发表于: 2005-03-22
upc1651性能没有mar01-06好!!
离线bd7qw
发帖
2369
只看该作者 10楼 发表于: 2005-03-22
能否用2sc3358代替呢?,我有这种管子,但不知道如何区分其引脚??帮忙,呵呵谢谢!!
离线BG7IOI
发帖
4142
只看该作者 11楼 发表于: 2005-03-22
'
能否用2sc3358代替呢?,我有这种管子,但不知道如何区分其引脚??帮忙,呵呵谢谢!!
'

3358是三极管,万用表就能测出b、c、e脚。

要说性能,a08应该比mar-6要好,a08在2g有大概16db的增益,
一个a08顶两个mar-6
如果用三极管,at41511是个不错的选择,噪声极低
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线myw
发帖
140
只看该作者 12楼 发表于: 2005-03-22
'
3358是三极管,万用表就能测出b、c、e脚。
要说性能,a08应该比mar-6要好,a08在2g有大概16db的增益,
一个a08顶两个mar-6 [表情] [表情] [表情]
如果用三极管,at41511是个不错的选择,噪声极低 [表情] [表情] [表情]
'

均点a08好么?多少钱?
离线BG7IOI
发帖
4142
只看该作者 13楼 发表于: 2005-03-22
我自己也不多,而且我的都是买二手拆机的,性能有点参差。
你决定要的话短信联系吧。
你要得多的话,例如三五百个,我可以把卖家的联系方式给你,你跟他买。
说不定他那里有mar-6
离线xiongjunfeng
发帖
1220
只看该作者 14楼 发表于: 2005-03-22
'
我自己也不多,而且我的都是买二手拆机的,性能有点参差。
你决定要的话短信联系吧。
你要得多的话,例如三五百个,我可以把卖家的联系方式给你,你跟他买。
说不定他那里有mar-6 [表情]
'
搭个车,如果有的话也匀两只我。我想做一个dds的扫频仪,用来把扫频信号放大,要求能在0-120m有稳定的增益就行了,upc1651不能工作在低频率下
离线myw
发帖
140
只看该作者 15楼 发表于: 2005-03-22
先谢过啦!
这个a06 是什么东东,能用么?谁有参数,谢谢!

飞达微波通信 http://www.myfeida.com

谁到哪里卖过东西?
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线BG7IOI
发帖
4142
只看该作者 16楼 发表于: 2005-03-23
a06的具体参数我也忘记了,应该还不错,增益和功率比a08好像要低点。
至于a08能工作到多低的频率,我也没试过,估计也不能太低,还有,a08
内部没有反馈电路,要工作在比较宽的带宽时要在外围电路加上反馈电路。

顺便请教一下xiongjunfeng,您的dds用的是什么芯片?能到120mhz吗?谢谢!
离线BA7AB
发帖
394
只看该作者 17楼 发表于: 2005-03-23
深圳赛格有全新的msa01-08系列,每个3.5元,我每样买了10个,但没有电路板,不知谁帮设计制作pcb板,我可以帮忙代买这种集成块。
离线BA7AB
发帖
394
只看该作者 18楼 发表于: 2005-03-23
a06到600m,9ddb,a08到2g,25db.
离线BG7IOI
发帖
4142
只看该作者 19楼 发表于: 2005-03-23
a06应该不止那么差吧,请问ba7ab有a08和a06的资料吗?能否发一份给小弟,
不胜感激


我在网上搜了好久都搜不到