2005 ATmega8L 2ADT1139 2006.2.6 1
1 6 2 HAMANA 7 2.1......................................... 7 2.2 HAMANA-1........................................ 7 2.3 HAMANA-2........................................ 7 2.4 HAMANA-2................................... 7 2.4.1...................................... 7 2.4.2 minisd.......................................... 8 2.4.3 CMOS........................................... 9 2.4.4.......................................... 9 2.4.5........................................... 9 3 ATMEL ATmega8L 10 3.1 ATmega8L........................................... 10 3.2 ATmega8L....................................... 10 3.2.1............................................ 11 3.2.2 3........................................ 11 3.2.3............................................ 11 3.3 AVR....................................... 11 3.3.1.................................... 11 3.3.2........................................... 12 3.3.3....................................... 12 3.3.4 ALU(Arithmetic and Logic Unit)................................ 12 3.3.5....................................... 12 3.3.6........................................... 12 3.3.7........................................... 12 3.3.8........................................... 12 3.4 ATmega8L.................................... 13 3.4.1................................. 13 3.4.2 SRAM..................................... 13 3.4.3 EEPROM................................. 14 3.5 ATmega8L................................... 14 3.5.1............................................... 14 3.5.2 /......................................... 14 3.5.3 SPI( )............................... 14 4 17 4.1................................ 17 4.2............................................... 17 4.3.................................................... 17 4.3.1.............................................. 17 4.3.2.............................................. 17 4.3.3..................................... 17 4.4.................................................. 18 2
4.5.................................................. 18 4.6........................................ 18 4.6.1 Cdc:.......................................... 18 4.6.2 COUNTER:....................................... 18 4.7................................... 18 4.7.1............................................ 18 4.7.2....................................... 19 4.7.3........................... 19 4.7.4......................................... 19 4.7.5.......................................... 20 4.7.6...................................... 20 4.7.7............................ 20 5 ATmega8L 21 5.1.............................................. 21 5.2............................................... 22 5.2.1............................ 22 5.3 CAD EAGLE............................. 22 5.3.1..................................... 22 5.3.2.................................... 23 5.3.3........................................... 23 5.3.4...................................... 23 5.3.5..................................... 23 5.3.6...................................... 23 5.3.7................................... 23 5.3.8......................................... 23 5.3.9...................................... 24 5.4.......................................... 24 5.5................................ 24 5.6....................................... 25 5.6.1......................................... 25 5.7.................................. 25 5.8........................................ 26 5.9................................... 26 5.10........................................... 26 5.11............................................. 26 5.11.1 EAGLE............ 26 5.11.2...................................... 27 5.11.3............................... 27 5.11.4............................... 27 5.12........................................ 27 5.12.1 LED................................................ 27 5.13................................... 28 5.13.1..................................... 28 5.13.2......................................... 28 5.13.3............................. 28 3
5.13.4 IC........................................ 28 5.13.5..................................... 28 6 29 6.1.......................................... 29 6.1.1............................................ 29 6.1.2...................................... 29 6.2........................................... 29 6.2.1 GCC................................................ 29 6.2.2 AVR-Libc............................................. 29 6.2.3 GNU Binutils........................................... 30 6.3....................................... 30 6.4.......................................... 30 7 minisd 31 7.1 minisd........................................... 31 7.2 SD........................................... 31 7.3 SD....................................... 31 7.4 MMC............................................... 31 7.4.1.......................................... 32 7.4.2............................................ 32 7.4.3 CRC................................................ 32 7.4.4............................................ 32 7.4.5.............................................. 32 7.4.6........................................... 33 7.4.7............................................ 33 7.4.8.......................................... 33 7.5........................................... 33 7.6 ATmega8L SPI..................................... 34 7.6.1 SPCR(SPI Control Register).................................. 34 7.6.2 SPSR(SPI Status Register)................................... 34 7.6.3 SPDR(SPI Data Registor).................................... 34 7.7 minisd................................. 34 7.7.1....................................... 34 7.7.2 Makefile.......................................... 34 7.7.3...................................... 35 7.7.4...................................... 35 7.8.................................................. 35 7.8.1 74................................ 35 7.8.2 CS Low CMD0(CRC ).......................... 35 7.8.3 (0x01)................................ 36 7.8.4 CMD1........................................... 36 7.8.5 (0x01)................................ 36 7.8.6 0x00 CMD1.......................... 36 7.8.7 (0x00)................................ 36 7.8.8............................................ 36 4
7.8.9......................................... 37 8 41 9 42 5
1 HAMANA- 2 ATMEL ATmega8L!#"$" % "&'() 1: 2001 6
2 HAMANA 2.1 HAMANA 2.2 HAMANA-1 HAMANA- 1 GPS ( ) 2: HAMANA HAMANA-1 3 4 H8 H8 2.3 HAMANA-2 SH HAMANA-2 HAMANA-1 HAMANA-1 GCC H8/OS HOS OS H8/OS 2.4 HAMANA-2 2.4.1 HAMANA-2 GPS CMOS ATMEL ATmega8L PIC PIC Microchip Technology IC DIP IC PIC A/D PWM USART SDCC 7
EEPROM GPS 3. GPS 2.GPS DC/DC GPS 100m 4: 1. 4. 5. 3: HAMANA-1 SH SH Triscend PWM 12 GCC 5: HAMANA-2 AVR AVR ATMEL ATmega8L 1 GCC ) minisd minisd minisd 2.4.2 minisd SD SD SD HAMANA-1 EEPROM GPS (SDA) HAMANA- SD 2 CMOS minisd ( 6) 3 MMC 6 minisd SD SD MMC( 8
6: minisd 2.4.3 CMOS HAMANA-1 2.4.4 100M 2.4.5 HAMANA-2 HAMANA-1 GPS GPS GPS 9
3 ATMEL ATmega8L 3.1 ATmega8L ATmega8L 8k 512 EEPROM 1k SRAM 23 32 3 / USART 2 6(PDIP) 8(TQFP QFN/MLF) 10 A/D SPI 5 SRAM / SPI ( ) A/D A/D A/D CPU / ATmega8L ATMEL (ISP) SPI AVR 8 RISC CPU ATMEL ATmega8 ATmega8 AVR C 7 VCC GND PB7 PB0 B 8 PC5 PC0 C 7 PC6/RESET RSTD ISBL (0) PC6 I/O RSTD ISBL (1) PC6 PD7 PD0 D 8 D ATmega8L AVCC AVCC ADC7 6 C(3 0) A/D ( ) AVEF AVEF A/D ( ) ADC7 6 TQFP QFN/MLF ADC7 ADC6 A/D 3.2 ATmega8L ATmega8L ATmega8L 10
9 10 11 12 13 14 15 16 (INT1)PD3 (TO)PD4 GND VCC GND VCC (XTAL1/TOSC1)PB6 (XTAL2/TOSC2)PB7 1 2 3 4 5 6 7 8 PD2(INT0) PD1(TXD) PD0(RXD) PC6(RESET) PC5(ADC5/SCL) PC4(ADC4/SDA) PC3(ADC3) PC2(ADC2) 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 PC1(ADC1) PC0(ADC0) ADC7 GND AREF ADC6 AVCC PB5(SCK) ) 3.2.3 3 ( ) 3.3 AVR (T1)PD5 (AIN0)PD6 (AIN1)PD7 (ICP1)PB0 (0C1A)PB1 (SS/0C1B)PB2 (MOSI/0C2)PB3 (MISO)PB4 ATmega8L AVR AVR 8 7: ATmega8L IC 3 3.2.1 ATmega8L 8MHz 8MHz 3.3.1 AVR CPU 3.2.2 3 ATmega8L 3.3V 3.3V FPGA 5V 5V 3.3V TA48M033F 3 3 GND GND +3.3V 0.65V 3 ( & 9: AVR SRAM 11
(ROM) 16 AVR CPU (RAM) 8 (AND NOT OR XOR) ALU AVR 32 10: AVR 1 AVR 8 8 1 12 16 AVR 16 8 3.3.2 AVR 32 8 3.3.5 1 3.3.6 3.3.7 ( ) 3.3.3 3.3.4 ALU(Arithmetic and Logic Unit) ALU CPU ALU ( ) 3.3.8 ( ) ( ) ( ) ( 11 ) 12
T1 T2 T3 T4! "$#%&')(* +, -/.$021)321$41 ALU "!"#$% 56 78 + 7 9): <;2= 9 >2?9@$A 13: ALU 11: AVR 12 1MHz 1MIPS(1MIPS 1 100 ) T1 T2 T3 T4 2 2 3 12: 3 4 13 1 ALU 2 ALU 3.4 ATmega8L ATmega8L AVR 2 ATmega8L EEPROM 3.4.1 10000 / ATmega8L 8K 2 3.4.2 SRAM SRAM ( ) 1 0 SRAM 1 4 ROM RAM ATmega8L SRAM 32 64 I/O 1024 SRAM 13
3.4.3 EEPROM EEPROM 1 ATmega8L 512 EEPROM 100,000 minisd EEPROM 3.5 ATmega8L ATmega8L 3.5.2 / 3.5.1 Low High 3.5.3 SPI( ) ( SPI) ATmega8L SPI 3 / LSB/MSB 7 14
(CK/2) SPI SPI SPI SPI 4 (SCK MISO MOSI SS) GND SPI SPDR MISO(Master in Slave Out) MOSI(Master Out Slave In) SCK SS SS High SS High SPI SCK/MISO/MOSI Low SPI 1 / 14 1: SPI SCK PB5 DDR MISO PB4 DDR MOSI PB3 DDR SS PB2 DDR MSB LSB MSB LSB 8 MISO MISO 8 MOSI SCK MOSI SCK SS SS VCC GND 14: SPI / 15
/ / 4 8bit Data Bus $+)&%$ /,- 5&6&7!"0$&% 32. 8 89 SPI4 #:; %0<=!#"$&% ALU >0? @0AB '&()*,-G0HI ')&% SRAM C0D&EF C0D&EF 4 1 4 2 EEPROM 12304 C0D&EF 4 n 8: AVR 16
4 4.1 HAMANA-1 GPS GPS GPS ( ) 20m GPS GPS GPS 4.2 AnalogDevices ADXL210AE 15 3V to 5.25V 4.3 4.3.1 ADXL210AE 10g 3 4 100m 3.5 100m 1 28.6m g 2.91g 3g 4.3.2 ADXL210AE V RC ( 16) T2 T1 Cx Vdd Xfilt SELF-TEST Cdc X SENSOR OSCILLATOR Y SENSOR DEMOD ADXL210AE DEMOD Rfilt 32kR Rfilt 32kR Yfilt ANALOG TO DUTY CYCLE (ADC) T2 Xout Yout COUNTER 16: g=(t1/t2-0.5)/4% 0g=50%Duty Cycle COM Cy Rset 15: ADXL210AE 4.3.3 T2 Rset 0.5mS 10mS 2 T2 Rset 17
2: T2 T2[mS] Rset[k ] 1 125 2 250 5 625 10 1250 4.4 ADXL210AE 5mm 5mm 2mm 17 4.6.2 COUNTER: ATMEL 8bit ATmega8L 3.6mA 1.0mA 0.5 A ( 4MHz 3V 25 ) 2.7V 5.5V 0Hz 8MHz 18 17: ADXL210AE 18: mega8l 4.5 5 AVR 3.3V ADXL210AE 3.0V -40 +80 4.6 4.6.1 Cdc: 4.7 4.7.1 f 2f fs f=22.05khz fs=44.1khz (1 44100 ) 2f 2f( ) 18
4.7.2 ADXL210E AVR 1 High ADXL210E g 1 T2 Rset 0.5mS 10mS g 4.7.3 ATmega8L 4MHz ADXL210AE 1 1 10mS 100 10mS 0.04mS g = ( T 1 0.5)/4 (1) T 2 T2 T2 10mS g T1 g = ( T 1 0.5)/4 (2) 0.01 T 1 = ((0.04g + 0.5)0.01 (3) g 1 10 ( 3) 3: g T1 g T1 [ms] 1g 5.4 2g 5.8 3g 6.2 4g 6.6 5g 7.0 6g 7.4 7g 7.8 8g 8.2 9g 8.6 10g 9.0 1g 0.4mS g 1 0.4mS 19: 1 0.04mS 19 0.04mS 1 (10mS) 1/250 1/10 1 1/2500 1 0.04mS 1 2500 100 2500 100 = 250, 000 (4) 1 250,000 MEGA8L 2 1 250, 000 2 = 500, 000[Hz] = 500[kHz] (5) 500kHz 500kHz 4.7.4 19
High Low 1 High 4.7.5 1/n(n ) 4MHz 200ms 200ms=5Hz 4MHz/5Hz=8000,000Hz (1/8/64/256/1024) 8 16 /1024 8 16 AVR ATmega8L 16 4.7.6 / 200ms 1/1024 4M Hz/1024/5Hz = 781.25 (6) 1/256 4M Hz/256/5Hz = 3125 (7) 16 1/256 4.7.7 4MHz 200ms 1/256 3125 65536 3125 = 62411 (8) 20
5 ATmega8L 21: 20 ( ) 20: HAMANA-1 ( ) HAMANA-2 ATmega8L ( ) 5.1 EAGLE OHP 1. EAGLE / 2. 3. ( ) 21
4. 5. 6. 7. 8. 9. 5.2 5.2.1 ( ) UHF SHF 5.3 CAD EAGLE CAD EAGLE 2 100mm 80mm CAD EARGLE EARGLE 1. 2. 3. 4. 5. 6. 7. 8. 9. 5.3.1 22
5.3.2 ADXL210E 5.3.3 EAGLE?? 5.3.4 EAGLE 2 Board 5.3.5 EAGLE EAGLE 5.3.6 ATmega8L IC 0.79[mm] 5.3.7 SWEST ( ) 23 5.3.8 GND 23
22: EAGLE 24 25 5.3.9 EAGLE OHP 5.4 5.5 OHP 3?? 24
23: 24: EAGLE ( ) 4: 3 4 5 20 25 5.6 27 5.6.1 5.7 40 28 25
26: 25: 24 ( ) 5.8 5.9 27: 5.10 5.11 5.11.1 EAGLE EAGLE CAD EAGLE 26
5.12 実装するデバイスについて ここでは AVR マイコンのテスト基板において実装す るデバイスについて述べる 大部分は ATMEL AT- mega8l の概要 の章の ATmega8L の周辺デバイス に示してある ここでは追加実装したデバイスのみ示 す また デバイスを実装した基板を図 29 30 に示す 図 28: エッチング液による不要銅部分の除去 5.11.2 フィルムの重ね間違い フィルムのずれを調整して接着する工程では 双方の フィルムの本来重ねるべき逆の面を重ねてしまい 鏡に 映した様な基板ができてしまった 発覚したのは部品実 装の段階で 簡単なミスなのであるが 大幅に時間を無 図 29: デバイスを実装したテスト基板 (電源変換実装面) 駄にしてしまった 5.11.3 基板に対する現像用薬品の直接投与 現像液によって不要な部分の感光剤を除去する工程で は何枚も基板を現像液に漬けていると段々と化学変化 が起きなくなり 現像液は最終的に飽和に向かってしま う そこでで直接現像液の基となる薬品を直接トレーに振 り巻いてしまった その際 多少基板の上にもその薬品 が直接降り掛かってしまい 掛かったパターンの周辺は 紫外線を照射したしないに係わらず広範囲に渡り除去 されてしまった 5.11.4 エッチング工程における回路の侵食 図 30: デバイスを実装したテスト基板 (マイコン実装面) また エッチングの工程では回路と回路の間の銅の溶 け残りを除去するために 必要以上エッチング液に漬け てしまったことが挙げられる 長時間エッチング液に漬 けておくことで 溶け残りを除去することはできたので 5.12.1 あるが 本来溶けることの無い回路部分がどんどん侵蝕 LED LED は ATmega8L にプログラムをダウンロードして されていってしまい よって回路の信用度が落ちてしま テストを行う際 簡単なレスポンスを可視化して即事確 う結果となった 認できるようするために実装した LED のグランド は あらかじめ本体回路のグランド と接続してあるために 27
5.13 5.13.1 EAGLE EAGLE 5.13.2 IC IC 5.13.3 5.13.4 IC IC 5.13.5 28
6 AVR AVR ATmega8L FPGA /SPI Linux ( 31 ) 2. 3. 6.1.2 6.2 gcc-core-3.4.4 GNU Compiler Collection(GCC) 31: avr-libc-1.2.3 AVR Libc binutils-2.16.1 GNU Binutils 6.1 Linux ATmega8L 6.1.1 ( ) 1. ( ) 6.2.1 GCC GCC GNU UNIX OS C C++ GNU Compiler Collection 6.2.2 AVR-Libc AVR Libc Atmel AVR 8bitRISC C ( ) 29
6.2.3 GNU Binutils Binutils 6.3 AVR AVR AVR SPI PC FPGA ATmega8L SCK RS232C MISO! /SPI " #$ MOSI % &'( 32: SS 1. GNU Binutils./configure target=avr prefix= make make install 2. GCC./configure target=avr prefix= enable-languages= c,c++ make make install 3. AVR-Libc./configure target=avr prefix= make make install target=target TARGET prefix=prefix PREFIX enable-languages=name NAME 6.4 33: (PC ) ATmega8L FPGA PC RS232C ATmega8L SPI FPGA /SPI 32 ( (PC ) 33 ) 30
7 minisd minisd ATmega8L (SPI) SPI 7.1 minisd 9 SPI 2 7.3 SD SD MMC 35 minisd minisd SD SD MMC( ) MMC SD SD SD (SDA) MMC MMC (MMCA) ( ) MMC 7.2 SD SD 34 MMC (SPI ) 5 MMC 7 1 2 3 4 5 6 7 8 9 35: SD SD 7.4 MMC 34: minisd SD MMC MMC 7 SD 31
5: MMC SD (SPI ) MMC SD 1 CS Chip Select CS Chip Serect 2 DataIn Data Input DataIn Data Input 3 Vss Vss Vss Vss 4 Vdd Vdd Vdd Vdd 5 CLK Clock CLK Clock 6 Vss Vss Vss Vss 7 DataOut Data Output DataOut Data Output 8 - - - - 9 - - - - 7.4.1 7.4.3 CRC MMC 2 1 (MM) SPI(Serial Peripheral Interface) SPI CRC MMC CRC SPI SPI CLK DataIn MMC 7 512 DataOut CS 4 DataIn 16 CRC DataOut SPI 7.4.4 MMC MMC SPI 20MHz 7.4.2 MMC 3 MMC SPI 7.4.5 MMC MMC 512 1 1 MMC FTL MTD 32
MMC 7.4.6 1 4 CRC 1 6 2 01 6 36 7 6 5 4 3 2 1 0 CMD1 0 1 0 0 0 0 0 1 7.4.8 SPI 38 4 MSB 1 515 7 6 5 4 3 2 1 0 1 1 1 1 1 1 1 0 2! 513 $&% 2 " # 16 ' ( CRC ) *& 1 +,.-0/&1 2 7 6 5 4 3 2 1 0 0 0 0 0 Out of Range Card ECC Failed CC Error Error 38: SPI CMD ARG1 (MSB) ARG1 ARG1 ARG1 (LSB) CRC 1 1 CRC1 7.5 7.4.7 36: MMC SPI 8 37 7 6 5 4 3 2 1 0 0 1 Status Status 010 101 CRC 37: SPI MMC MMC MMC CMD0 CS Low SPI MMC MMC SPI SPI SPI CMD1 0x01 CMD1 0x00 ( 39 ) 1. MMC 2. 74 3. CS Low CMD0(CRC ) 4. (0x01) 5. CMD1 6. (0x01) 7. 0x00 CMD1 33
8. (0x00) 9. START 74 CS Low SPDR SPI SPSR SPIF (SPCR bit- SPIE) SPI CMD0 CMD1 response = 0x00 END response = 0x01 7.7 minisd 39: 7.6 ATmega8L SPI minisd ATmega8L minisd SPI ATmega8L SPI 7.6.1 SPCR(SPI Control Register) SPCR SPI 6 7.6.2 SPSR(SPI Status Register) SPSR 7 7.6.3 SPDR(SPI Data Registor) SPDR 7.7.1 minisd MMC MMC MMCA 7.7.2 Makefile make Makefile Makefile ( ) //Makefile TARGET = minisd func HEADER =../HEADER FILE/*.h MCU = atmega8 CC = avr-gcc-3.4.4 CFLAGS = -Wall 34
6: SPCR bit 7 SPIE SPI 6 SPE SPI 5 DORD Data Order (0 MSB /1 LSB ) 4 MSTR / (0 /1 ) 3 CPCL SCK (0 SCK High/0 Low) 2 CPHA SCK (0 SCK /1 ) 1 0 SPR1-0 (00 f/4 01 f/16 10 f/64 11 f/128) 7: SPSR bit 7 SPIF SPI 6 WCOL ( SPDR ) 5-1 0 SPI2X OBJC = avr-objcopy HEXBIN =../hex-bin DATE = date +%y%m%d %T 7.7.3 I/O NomalFunc.h spi func.h SPI SPCR 7.7.4 minisd C 40 minisd 7.8 SPI 7.8.1 74 80 ( 41) 7.8.2 CS Low CMD0(CRC ) CS Low CRC CMD0 35
41: 80 ( 42) 7.8.3 (0x01) CMD0 8 CMD0 0x01 0x01 ( 43) 7.8.4 CMD1 CMD0 CMD1 7.8.5 (0x01) CMD0 8 CMD1 0x01 7.8.6 0x00 CMD1 CMD1 0x01 CMD1 7.8.7 (0x00) CMD1 0x00 0x00 ( 44) 7.8.8 minisd minisd 45 46 CMD1 (1ms) 36
42: CMD0(CRC ) 7.8.9 minisd CMD1 0x05 47 2 ( 8 ) 37
43: CMD0 0x01 44: CMD1 0x00 38
45: minisd ( ) 46: minisd ( ) 39
47: 0x05 40
8 HAMANA-2 ATmega8L minisd START 74 CS CS High Low CMD0 CMD1 response = 0x01 response none response none response = 0x01 CMD1 response none response = 0x01 response = 0x01 response = 0x00 CS High END 40: 41
minisd 9 HAMANA- 2 [1] GPS [2] [3] TECHI PC / CQ [4] http://www.ertl.jp/swest/ [5] http://www.kumikomi.net/ [6] http://www7a.biglobe.ne.jp/ attlee/avr-jpwiki/wiki.cgi [7] http://ww2.tiki.ne.jp/ maro/ 42