« ATtiny3224で裸の32bit周波数カウンタ #2 | トップページ | オムロンのパワーリレー 「G5LE」が終息 »

2026年2月 1日 (日)

備忘録:1Hzパルス発生回路

トランジスタ技術2025年10月号
特集 今マイコンはArduinoが最強説』からみの備忘録。

p.121 図8 時計用水晶発振子を使った1Hzパルス発生回路
これの亜種を紹介しておきます。

記事では「HC4060」を2段接続して32.768kHzから
1Hzを得ました。
1hz_osc

これと同じ機能を得ます。
まずは、HC40460と「1G80」の組み合わせ。
1h31

次の2つは12.8MHzの高精度発振器を使って1Hzを得ます。
HC4060と10進カウンタHC393の組み合わせ。
1h32
単純に1Hzを得るためですが、ICの数が多くなります。

最後がマイコン。
1h33
水晶発振モジュールから出てくるのは、アナログ波形
なんで、マイコンのクロックとして使うには信号レベルを
大きくしなければなりません。
「1GU04」で増幅しています。

// ATtiny402で1Hzを作る(Microchip Studio)
#include <avr/io.h>
int main(void) {
PORTA.DIR = 0b11000110; // ポートの入出力
// || |||+---- PA0 6pin in UPDI
// || ||+----- PA1 4pin out 1Hz出力 (CMP1)
// || |+------ PA2 5pin out 1Hz出力 (CMP2)
// || +------- PA3 7pin in CLKin 12.8MHz発振器入力
// |+---------- PA6 2pin out (-)
// +----------- PA7 3pin out (-)
_PROTECTED_WRITE(CLKCTRL.MCLKCTRLB, 0); // プリスケーラなし
_PROTECTED_WRITE(CLKCTRL.MCLKCTRLA, 3); // 外部からクロック
TCA0.SINGLE.CMP0 = 6250 - 1; // CMP0出力 1Hz
TCA0.SINGLE.CMP1 = 0; // PA1 4pin
TCA0.SINGLE.CMP2 = 3125; // PA2 5pin (1/4位相差)
TCA0.SINGLE.CTRLB = 0b01100001;
// ||||+++----- WGM 波形生成FRQ(周波数)
// |||+-------- ALUPD
// ||+--------- CMP0EN
// |+---------- CMP1EN PA1 4pin 出力
// +----------- CMP2EN PA2 5pin 出力
TCA0.SINGLE.CTRLA = 0b00001111;
// |||+----- ENABLE 動作開始
// +++------ CLKSEL プリスケーラ1/1024
while(1){ } // PA1,PA2に1Hzを出力し続ける
}

 

1hz11

配線して組み立てる工数からはマイコンを使うのが
いちばん簡単。
でも「チップにプログラムを書き込む」という壁が
存在します。

|

« ATtiny3224で裸の32bit周波数カウンタ #2 | トップページ | オムロンのパワーリレー 「G5LE」が終息 »

トランジスタ技術」カテゴリの記事

発振回路」カテゴリの記事

ATtiny」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« ATtiny3224で裸の32bit周波数カウンタ #2 | トップページ | オムロンのパワーリレー 「G5LE」が終息 »