ATtiny13Aを外部クロックで動かしてみた。
ATtiny13にAがついているのは、製造工程をオプティマイズして消費電流を抑えたものらしい。
ATtiny13Aは直接水晶をつないでクロックを生成できないようなので、京セラのEXO-3と水晶発信器をつないでやってみた。
配線図
EXO-3
水晶発信器
ヒューズビットの設定
いつも使わせてもらっている「Engbedded Atmel AVR® Fuse Calculator」で調べた。
Ext. Clock; Start-up time: 14 CK +64ms; (外部クロックを使う)の設定で
CKDIV8=0 (クロックを8分周しない)
Low: 0x78
High: 0xFF
ソースコード
/*
* ATTiny13_Blinking_LED.cpp
*
* Created: 2015/11/11 4:46:48
* Author : gizmo
*/
#define F_CPU 12000000
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
// PB0, PB1を出力に設定
DDRB = (1 << DDB1) | (1 << DDB0) ;
// PB0, PB1をHiに
PORTB |= (1 << PORTB1) | (1 << PORTB0);
while (1)
{
// Lチカ
PORTB |= (1 << PORTB0);
PORTB &= ~(1 << PORTB1);
_delay_ms(500);
PORTB &= ~(1 << PORTB0);
PORTB |= (1 << PORTB1);
_delay_ms(500);
}
}
EXO-3(12MHz)
電源電圧5V, 3.3Vともに動作水晶発信器(24MHz)
電源電圧5V, 3.3Vでともに動作ATtiny13Aの仕様では、
• Speed Grade:となっていて、24MHz@3.3Vは仕様外だが動作はするようだ。
– 0 – 4 MHz @ 1.8 – 5.5V
– 0 – 10 MHz @ 2.7 – 5.5V
– 0 – 20 MHz @ 4.5 – 5.5V
水晶発信器(48MHz)
電源電圧5V: 動作はするがLEDの点滅が不規則で遅い。電源電圧3.3V: 全く動作しない。
24MHzのクロック波形
使っているオシロが「SDS7102」でスペックは1Gsps、アナログ帯域100MHzなのでまあまあ波形は見れていると思う。
20MHzに帯域制限
SDS7102の機能でアナログ帯域を20MHzに制限するものがあるので使ってみた。
24MHzぐらいになると20MHzのオシロではオーバーシュート、アンダーシュート等の波形の崩れはみれなくなりそうだが、クロックを確認をするには十分かな?
妄想
Tiny13をいっぱい並べてオシレーターとして使えないかという妄想それぞれのTiny13がPWMで波形を出力し、LPFでなめらかな波形にして、Analog Mixerで合成する。
はっきり音程を分けてやれば和音になるし、サンプリング周波数をちょっとずつずらしてやればSuperSawになるかも?
Super Squareというのもやってみたい。
マスターから子分のTiny13への司令はシリアル通信じゃないとだめっぽいがUARTでいけるんだろうか?マスタークロックで全員同期できるかな?
0 件のコメント:
コメントを投稿