Selasa, 18 Desember 2018

RESISTANSI KAWAT TEMBAGA

Pada umumnya, penampang kawat penghantar berbentuk lingkaran, sehingga luas penampang kawat penghantar (A) ditentukan oleh diameter kawat penghantar (r). Formula untuk menghitung Luas penampang kawat berbentuk lingkaran adalah:
Dimana :
π adalah konstanta dengan nilai 3.14
A adalah Luas Penampang Kawat, biasanya dalam mm2
r  adalah diameter Kawat, biasanya dalam mm

RESISTIVITY  ATAU HAMBATAN JENIS (rho).
Nilai resistivity  atau hambatan jenis dari suatu material berbeda-beda. Semakin besar nilai hambatan jenisnya, maka nilai resistansinya akan semakin besar. Satuan dari  hambatan jenis adalah Ohm Meter. Dibawah ini adalah table hambatan jenis dari beberapa material.
FORMULA MENGHITUNG RESISTANSI PENGHANTAR.
Hubungan antara Hambatan, hambatan jenis, panjang dan luas penghantar ditunjukan pada formula dibawah ini:

Contoh Menghitung Nilai Hambatan Kawat Tembaga.
Suatu penghantar kawat tembaga memiliki diameter 4mm dan panjang 2 meter. Berapakah nilai hambatan atau resistansi dari kawat tembaga tersebut ?
Penyelesaian:
  • Berdasarkan table, hambatan jenis dari tembaga adalah 1.68 * 10-8 Ohm Meter, atau sama dengan 1.68 *10-5 mili meter.
  • Diameter kawat adalah 4mm atau jari-jari kawat adalah 2mm. Luas penampang kawat adalah A = 3.14 * (2)2 mm2 = 12.56 mm2
  • Panjang kawat adalah 2 meter atau 2000 mili meter.
Besarnya nilai resistansi dari kawat tembaga adalah:
R = 1.68 * 10-5 Ohm. mm * 2000 mm / 12.56 mm2
R = 267.52 * 10-5 Ohm = 0.002675 Ohm
R = 2,675 m. Ohm (mili Ohm)

Jumat, 02 November 2018

pi duino flashroom

install paket
sudo apt install git libpci-dev libusb-1.0 libusb-dev
git clone https://github.com/flashrom/flashrom.git
cd flashrom
make && sudo make install

Flashing the chip

pi@raspberrypi:~ $ flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512
flashrom p1.0-76-g291764a on Linux 4.14.34-v7+ (armv7l)
flashrom is free software, get the source code at https://flashrom.org

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Winbond flash chip "W25X80" (1024 kB, SPI) on linux_spi.
No operations were specified.
Winbond W25X80 
pi@raspberrypi:~ $ flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -r flash.dat
flashrom p1.0-76-g291764a on Linux 4.14.34-v7+ (armv7l)
flashrom is free software, get the source code at https://flashrom.org

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Winbond flash chip "W25X80" (1024 kB, SPI) on linux_spi.
Reading flash... done.
After backing up the old BIOS we can safely write the new BIOS back to the chip.
pi@raspberrypi:~ $ flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -w flash.dat 
flashrom p1.0-76-g291764a on Linux 4.14.34-v7+ (armv7l)
flashrom is free software, get the source code at https://flashrom.org

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Winbond flash chip "W25X80" (1024 kB, SPI) on linux_spi.
Reading old flash chip contents... done.
Erasing and writing flash chip... 
Warning: Chip content is identical to the requested image.
Erase/write done.
RPi pinSPI flash
25GND
24CS
23SCK
21DO
19DI
17VCC 3.3V and /HOLD and /WP
duino
sudo apt install git libpci-dev libusb-dev libusb-1.0 gcc-avr binutils-avr avr-libc avrdude

Preparing the Arduino Duemilanove

git clone --recursive git://github.com/urjaman/frser-duino
cd frser-duino
make ftdi <--- depends on your Arduino
make flash-ftdi <--- same

Flashing the SPI chip

~$ sudo flashrom -p serprog:dev=/dev/ttyUSB0:2000000
flashrom v0.9.9-91-g0bfa819 on Linux 4.10.0-28-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
serprog: Programmer name is "frser-duino"
Found Macronix flash chip "MX25L8005" (1024 kB, SPI) on serprog.
No operations were specified.
tom@ubuntu-vm:~$ sudo flashrom -p serprog:dev=/dev/ttyUSB0:2000000 -w <NEWBIOS>

flashrom v0.9.9-91-g0bfa819 on Linux 4.10.0-28-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
serprog: Programmer name is "frser-duino"
Found Macronix flash chip "MX25L8005" (1024 kB, SPI) on serprog.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.

Rabu, 31 Oktober 2018

Timer mode

Mode timer ada
1 mode normal menghitung dr 0 ke top kembali ke 0
2.mode ctc untuk membuat gelombang kotak mencacah naik sampai nilai tcnt sama dengan ocr disini ocr sama dengan top dan kembali ke 0
3.mode fast pwm mencacah naik sampai tcnt ke top di 255 jika 8bit dan akan mentogle jika nilai ocr sama dengan nilai tcnt .jika tcnt>ocr out 0 jika tcnt<ocr out 1 sehingga menghasilkan pwm
3.mode phase corect pwm tcnt akan mencacah dari 0 ke top 225 lalu kembali lagi dr 255 ke 0 ini jadi seperti dua slop 255 cacah.sama saja jika nila tcnt>dr ocr maka out 1 dan sebaliknya.frekuensi jadi lebih lambat karena dual slop dan merupakan true pwm.
4.phase and ftekuensi pwm ini pwm cuma saja frekuensinya bisa diatur dengan memberi nilai pada icr jika mode 8 pada ocr1a jika mode 9 .icr sebagi nilai top maka kita bisa pakai 2 out oc1a dan 0c1b jika pakai oc1a sbg top maka hanya 1 pin saja yaitu oc1b.adapun kelebihan oc1a sbg top adalah kemudah di sofwarr karena oc1a adalah 16bit jadi kemungkinan akan maudah menggunakannya kalo saja pakai icr 1 maka akan sedikit sulit

Selasa, 07 Agustus 2018

avrdude

avr dude perintah

Usage: avrdude [options]
Options:
  -p <partno>                Required. Specify AVR device.
  -b <baudrate>              Override RS-232 baud rate.
  -B <bitclock>              Specify JTAG/STK500v2 bit clock period (us).
  -C <config-file>           Specify location of configuration file.
  -c <programmer>            Specify programmer type.
  -D                         Disable auto erase for flash memory
  -i <delay>                 ISP Clock Delay [in microseconds]
  -P <port>                  Specify connection port.
  -F                         Override invalid signature check.
  -e                         Perform a chip erase.
  -O                         Perform RC oscillator calibration (see AVR053).
  -U <memtype>:r|w|v:<filename>[:format]
                             Memory operation specification.
                             Multiple -U options are allowed, each request
                             is performed in the order specified.
  -n                         Do not write anything to the device.
  -V                         Do not verify.
  -u                         Disable safemode, default when running from a scrip
t.
  -s                         Silent safemode operation, will not ask you if
                             fuses should be changed back.
  -t                         Enter terminal mode.
  -E <exitspec>[,<exitspec>] List programmer exit specifications.
  -x <extended_param>        Pass <extended_param> to programmer.
  -y                         Count # erase cycles in EEPROM.
  -Y <number>                Initialize erase cycle # in EEPROM.
  -v                         Verbose output. -v -v for more.
  -q                         Quell progress output. -q -q for less.
  -?                         Display this usage.

contoh:
avrdude -v -p atmega328p
-c arduino -P COM13 -b 115200 -D -U flash:w:blink.ino.hex:r

Rabu, 25 Juli 2018

seting clock

Crystal Oscillator
high fusebit 
7.RSTDISBL digunakanan untuk disable pin reset
6.WDTON watchdog enable
5.SPIEN spi enable
4.CKOPT aktifkan capasitor xtal internal
3.EESAVE Memori EEPROM dipertahankan melalui Penghapusan Chip
2.BOOTSZ1 pilih ukursan bootloader
1.BOOTSZ0 pilih ukursan bootloader
0.BOOTRST pilih saat reset bootloder dulu atau aplikasi dulu
Catatan: 1. SPIEN Fuse tidak dapat diakses dalam mode Pemrograman Serial
2. Fuse CKOPT Fuse tergantung pada pengaturan bit CKSEL, lihat “Sumber Jam”
di halaman 26 untuk detailnya
3. Nilai default dari BOOTSZ1..0 menghasilkan Ukuran Boot maksimum. Lihat Tabel 82 di halaman 213
4. Saat memprogram RSTDISBL Fuse Parallel Programming harus digunakan untuk berubah
sekering atau melakukan pemrograman lebih lanjut



low fuse
7.BODLEVEL brount out mendeteksi tegangan vcc
6. BODEN aktifkan brounout detektor
5.4.SUT1 SUT0 selek starup time
3.CKSEL3.2.1.0 clock select

Catatan: 1. Nilai default SUT1..0 menghasilkan waktu start-up maksimum. Lihat Tabel 10 di halaman 30 untukrincian
2. Pengaturan default CKSEL3..0 menghasilkan internal RC Oscillator @ 1MHz. Lihat Tabel 2 pada
halaman 26 untuk detailnya



XTAL1 dan XTAL2 adalah input dan output, masing-masing, dari penguat pembalik yang dapat dikonfigurasi untuk digunakan sebagai osilator On-chip, seperti yang ditunjukkan pada Gambar 11. Baik kristal kuarsa atau resonator keramik dapat digunakan. The CKOPT Fuse memilih antara dua Oscillator yang berbeda mode penguat. Ketika CKOPT diprogram, output Oscillator akan berosilasi full rail-torail ayunkan pada output. Mode ini cocok saat beroperasi di lingkungan yang sangat bising atau ketika output dari XTAL2 menggerakkan buffer jam kedua. Mode ini memiliki frekuensi yang luas jarak. Ketika CKOPT tidak terprogram, Oscillator memiliki ayunan keluaran yang lebih kecil. Ini mengurangi konsumsi daya jauh. Mode ini memiliki rentang frekuensi terbatas dan tidak bisa digunakan untuk menggerakkan buffer jam lainnya.
Untuk resonator, frekuensi maksimum 8MHz dengan CKOPT tidak terprogram dan 16MHz dengan CKOPT diprogram. C1 dan C2 harus selalu sama untuk kristal dan resonator. Itu nilai optimal dari kapasitor tergantung pada kristal atau resonator yang digunakan, jumlah nyasar kapasitansi, dan kebisingan elektromagnetik dari lingkungan. Beberapa pedoman awal untuk memilih kapasitor untuk digunakan dengan kristal diberikan pada Tabel 4. 
Untuk resonator keramik, yang nilai kapasitor yang diberikan oleh produsen harus digunakan.
Oscillator dapat beroperasi dalam tiga mode berbeda, masing-masing dioptimalkan untuk frekuensi tertentu jarak. Mode operasi dipilih oleh sekering CKSEL3..1 seperti yang ditunjukkan pada Tabel 4.

Table 4. Crystal Oscillator Operating Modes 
CKOPT    CKSEL3..1      Frequency Range (MHz)     Recommended Range for Capacitors C1 and                                                                                                          C2 for Use with Crystals (pF) 
 1                101(1)              0.4 - 0.9                                                   – 
 1                110                   0.9 - 3.0                            12 - 22 
 1                111                    3.0 - 8.0                           12 - 22 
 0          101, 110, 111          1.0                                12 - 22

Catatan: 1. Opsi ini tidak boleh digunakan dengan kristal, hanya dengan resonator keramik
CKSEL0 Fuse bersama dengan SUT1..0 Fuse memilih waktu start-up seperti yang ditunjukkan pada Tabel
5 di halaman 28.

Frekuensi rendah Osilator Kristal
Untuk menggunakan kristal jam 32.768kHz sebagai sumber jam untuk perangkat, Crystal frekuensi rendah Osilator harus dipilih dengan mengatur Sekering CKSEL ke "1001". Kristal harus terhubung
seperti yang ditunjukkan pada Gambar 11 di halaman 27. Dengan memprogram Fuse CKOPT, pengguna dapat aktifkan kapasitor internal pada XTAL1 dan XTAL2, sehingga menghilangkan kebutuhan untuk kapasitor eksternal. Kapasitor internal memiliki nilai nominal 36pF. Ketika Oscillator ini dipilih, waktu start-up ditentukan oleh SUT Sekering seperti yang ditunjukkan pada Tabel 6.

RC Eksternal
Osilator
Untuk aplikasi yang tidak peka terhadap waktu, konfigurasi RC eksternal ditunjukkan pada Gambar 12 di halaman 29dapat digunakan. Frekuensi kira-kira diperkirakan dengan persamaan f = 1 / (3RC). C harus di setidaknya 22pF. Dengan memprogram CKOPT Fuse, pengguna dapat mengaktifkan kapasitor 36pF internal
antara XTAL1 dan GND, sehingga menghilangkan kebutuhan akan kapasitor eksternal.



Dikalibrasi Internal Osilator RC
Internal RC Oscillator yang dikalibrasi menyediakan fixed 1.0MHz, 2.0MHz, 4.0MHz, atau 8.0MHz
jam. Semua frekuensi adalah nilai nominal pada 5V dan 25C. Jam ini dapat dipilih sebagai
jam sistem dengan memprogram Fuse CKSEL seperti yang ditunjukkan pada Tabel 9. Jika dipilih, ia akan beroperasi tanpa komponen eksternal. The CKOPT Fuse harus selalu tidak terprogram saat menggunakan opsi jam ini. Selama reset, perangkat keras memuat byte kalibrasi 1MHz ke dalam Daftar OSCCAL dan dengan demikian secara otomatis mengkalibrasi RC Oscillator. Pada 5V, 25C dan 1.0MHz Oscillator frekuensi yang dipilih, kalibrasi ini memberikan frekuensi dalam ± 3% dari frekuensi nominal. Menggunakan metode kalibrasi run-time seperti yang dijelaskan dalam catatan aplikasi yang tersedia di www.atmel.com/avr dimungkinkan untuk mencapai akurasi ± 1% pada VCC dan Temperatur tertentu. Ketika Oscillator ini digunakan sebagai jam chip, Watchdog Oscillator akan tetap digunakan untuk Watchdog Timer dan untuk Reset Time-out. Untuk informasi lebih lanjut tentang kalibrasi yang sudah diprogram nilai, lihat bagian "Kalibrasi Byte" pada halaman 218.


Oscillator Calibration Register – OSCCAL
• Bits 7..0 - CAL7..0: Nilai Kalibrasi Osilator
Menuliskan byte kalibrasi ke alamat ini akan memangkas Oscillator Internal untuk menghapus variasi proses dari frekuensi Osilator. Selama Reset, nilai kalibrasi 1MHz yang ditemukan di baris tanda tangan. Bita tinggi (alamat 0x00) secara otomatis dimuat ke dalam Daftar OSCCAL. Jika RC internal digunakan pada frekuensi lain, nilai kalibrasi harus dimuat secara manual. Ini dapat dilakukan dengan membaca baris tanda tangan terlebih dahulu oleh programmer, dan kemudian simpan nilai kalibrasi dalam Flash atau EEPROM. Maka nilainya bisa dibaca oleh perangkat lunak dan dimuat ke dalam Daftar OSCCAL. Ketika OSCCAL adalah nol, frekuensi terendah yang tersedia adalah terpilih. Menulis nilai non-nol ke daftar ini akan meningkatkan frekuensi dari Osilator Internal. Menulis 0xFF ke register memberikan frekuensi tertinggi yang tersedia. Osilator yang dikalibrasi digunakan untuk mengatur waktu EEPROM dan akses Flash. Jika EEPROM atau Flash ditulis, jangan dikalibrasi ke lebih dari 10% di atas frekuensi nominal. Jika tidak, EEPROM atau penulisan Flash mungkin gagal.
Perhatikan bahwa Osilator dimaksudkan untuk kalibrasi ke 1.0MHz, 2.0MHz, 4.0MHz, atau 8.0MHz. Tuning untuk nilai-nilai lain tidak dijamin, seperti yang ditunjukkan pada Tabel 11.

clock Eksternal
Untuk menggerakkan perangkat dari sumber jam eksternal, XTAL1 harus digerakkan seperti yang ditunjukkan pada Gambar 13. Untuk menjalankan perangkat pada jam eksternal, Sekering CKSEL harus diprogram ke "0000". Dengan memprogram CKOPT Fuse, pengguna dapat mengaktifkan kapasitor internal 36pF antara XTAL1 dan GND, dan XTAL2 dan GND



Selasa, 24 Juli 2018

Memory Programming n lockbit

Program And Data Memory Lock Bits

ATmega8 menyediakan enam Kunci Bits yang dapat dibiarkan tidak terprogram ("1") atau dapat diprogram ("0") untuk mendapatkan fitur tambahan yang tercantum pada Tabel 86. Bit Kunci hanya bisa terhapus menjadi "1" dengan perintah Chip Erase.

Table 85. Lock Bit Byte
 Lock Bit Byte      Bit No.                                           Description                           Default Value(1) 
                                  7                                                     –                                        1 (unprogrammed)                                    6                                                     –                                        1 (unprogrammed)      BLB12                  5                                                 Boot lock bit                          1 (unprogrammed)      BLB11                  4                                                 Boot lock bit                          1 (unprogrammed)      BLB02                  3                                                 Boot lock bit                          1 (unprogrammed)      BLB01                  2                                                 Boot lock bit                          1 (unprogrammed)      LB2                       1                                                 Lock bit                                 1 (unprogrammed)      LB1                       0                                                 Lock bit                                 1 (unprogrammed)

Note: 1. “1” means unprogrammed, “0” means programmed


Tabel 86. Mode Perlindungan Kunci Bit (2)
               Memori Bits                                                       Jenis Perlindungan Kunci     
LB Mode              LB2             LB1
      1                       1                   1                   Tidak ada fitur kunci memori yang diaktifkan
      2                       1                   0                   Pemrograman lebih lanjut dari Flash dan EEPROM                                                                                 adalah dinonaktifkan dalam mode Pemrograman                                                                                     Paralel  dan Serial. Fuse Bits terkunci dalam Serial                                                                                dan Paralel Mode pemrograman (1)
      3                       0                   0                  Pemrograman lebih lanjut dan verifikasi Flash dan
                                                                        EEPROM dinonaktifkan secara paralel dan                                                                                              Pemrograman Serialm mode. Fuse Bits terkunci di                                                                                  kedua Serial dan Paralel Mode pemrograman (1)
Mode BLB0      BLB02          BLB01
      1                      1                    1                 Tidak ada batasan untuk SPM atau LPM yang                                                                                          mengakses  Aplikasi bagian
      2                      1                    0                  SPM tidak diizinkan untuk menulis ke bagian Aplikasi
      3                      0                    0                  SPM tidak diizinkan untuk menulis ke bagian Aplikasi,                                                                          dan LPM mengeksekusi dari bagian Boot Loader tidak
                                                                        diizinkan untuk membaca dari bagian Aplikasi. Jika                                                                                 Interupsi Vektor ditempatkan di bagian Boot Loader,                                                                               interupsi dinonaktifkan saat mengeksekusi dari bagian                                                                             Aplikasi
      4                      0                    1                   LPM mengeksekusi dari bagian Boot Loader tidak
                                                                         diizinkan untuk membaca dari bagian Aplikasi. Jika                                                                                 Interupsi Vektor ditempatkan di bagian Boot Loader,                                                                               interupsi dinonaktifkan saat mengeksekusi dari bagian                                                                             Aplikasi

Table 86. Lock Bit Protection Modes(2) (Continued)

Memory Lock Bits                                               Protection Type
Mode BLB1      BLB12         BLB11
       1                     1                   1            Tidak ada batasan untuk SPM atau LPM yang mengakses                                                                       Boot Loader bagian
       2                     1                   0            SPM tidak diizinkan untuk menulis ke bagian Boot Loader
       3                     0                   0            SPM tidak diizinkan untuk menulis ke bagian Boot Loader,
                                                                 dan LPM yang mengeksekusi dari bagian Aplikasi tidak
                                                                 diizinkan untuk membaca dari bagian Boot Loader. Jika                                                                         Interupsi Vektor ditempatkan di bagian Aplikasi, interupsi
                                                                 dinonaktifkan saat mengeksekusi dari bagian Boot Loader
      4                     0                    1            LPM yang dieksekusi dari bagian Aplikasi tidak diizinkan
                                                                 untuk membaca dari bagian Boot Loader. Jika Interrupt                                                                           Vectors ditempatkan di bagian Aplikasi, interupsi
                                                                 dinonaktifkan saat mengeksekusi dari bagian Boot Loader

Catatan: 1. Program Bits Fuse sebelum memprogram Lock Bits
2. "1" berarti tidak terprogram, "0" berarti diprogram

Fuse Bits 
ATmega8 memiliki dua byte sekering. Tabel 87 dan Tabel 88 di halaman 217 menjelaskan secara singkat fungsionalitasnya dari semua sekering dan bagaimana mereka dipetakan ke dalam byte sekering. Perhatikan bahwa sekeringnya dibaca sebagai nol logis, "0", jika diprogram.

Table 87. Fuse High Byte 

Fuse high Byte   bit no                                 Deskripsi                                            Nilai Default
RSTDISBL (4)        7       Pilih jika PC6 adalah pin I / O atau pin RESET      1 (tidak terprogram,                                                                                                                                                                           PC6  adalah RESET-pin)     
WDTON                  6       WDT selalu aktif                                                             1 (tidak diprogram, WDT diaktifkan                                                                                                                                               oleh WDTCR) 
SPIEN (1)                5       Aktifkan Serial Program dan Data Mengunduh      0 (diprogram, SPI prog. diaktifkan)
CKOPT (2)              4       Pilihan Osilator                                                               1 (tidak terprogram)
EESAVE                  3       EEPROM memori dipertahankan melalui Penghapusan Chip         1 (tidak   terprogram,  EEPROM tidak   diawetkan)   
BOOTSZ1                2      Pilih Ukuran Booting (lihat Tabel 82 dihalaman 2   1 3 untuk detail) 0 (diprogram) (3)
BOOTSZ0                           1       Pilih Ukuran Booting (lihat Tabel 82 dihalaman 213 untuk detail)      0 (diprogram) (3)

BOOTRST               0     Pilih Reset Vector                                                                1 (unprogrammed)

Catatan: 1. SPIEN Fuse tidak dapat diakses dalam mode Pemrograman Serial
2. Fuse CKOPT Fuse tergantung pada pengaturan bit CKSEL, lihat “Sumber Jam”
di halaman 26 untuk detailnya
3. Nilai default dari BOOTSZ1..0 menghasilkan Ukuran Boot maksimum. Lihat Tabel 82 di halaman 213
4. Saat memprogram RSTDISBL Fuse Parallel Programming harus digunakan untuk berubah sekering atau melakukan pemrograman lebih lanjut


Table 88. Fuse Low Byte


Fuse Low Byte  Bit No           Description                                                                  Default Value
BODLEVEL                              7               Detektor pemindai berwarna coklat level                                                   1 (tidak terprogram)
BODEN                                     6               Detektor coklat keluar memungkinkan                                                       1 (tidak terprogram, BOD dinonaktifkan)
SUT1                                          5               Pilih waktu start-up                                                                                          1 (tidak terprogram) (1)
SUT0                                         4               Pilih waktu start-up                                                                                          0 (diprogram) (1)
CKSEL3                                    3               Pilih Sumber jam                                                                                               0 (diprogram) (2)
CKSEL2                                    2               Pilih Sumber jam                                                                                               0 (diprogram) (2)
CKSEL1                                     1               Pilih Sumber jam                                                                                               0 (diprogram) (2)

CKSEL0                                    0              Pilih Sumber jam                                                                                                1 (tidak terprogram) (2)

Catatan: 1. Nilai default SUT1..0 menghasilkan waktu start-up maksimum. Lihat Tabel 10 di halaman 30 untuk rincian

2. Pengaturan default CKSEL3..0 menghasilkan internal RC Oscillator @ 1MHz. Lihat Tabel 2 pada halaman 26 untuk detailnya

Sumber Jam Perangkat ini memiliki opsi sumber jam berikut, yang dapat dipilih oleh Flash Fuse Bits seperti yang ditunjukkan di bawah. Jam dari sumber yang dipilih adalah input ke generator jam AVR, dan dialihkan ke modul yang sesuai.


Table 2. Device Clocking Options Select(1)
Device Clocking Option                                                                              CKSEL3..0
 External Crystal/Ceramic Resonator                                                  1111 - 1010 
 External Low-frequency Crystal                                                                  1001 
 External RC Oscillator                                                                            1000 - 0101                   Calibrated Internal RC Oscillator                                                        0100 - 0001  
 External Clock                                                                                                 0000

Berbagai pilihan untuk setiap opsi clocking diberikan di bagian berikut. Saat CPU bangun dari Power-down atau Power-save, sumber clock yang dipilih digunakan untuk mengatur waktu startup, memastikan operasi Oscillator yang stabil sebelum pelaksanaan instruksi dimulai. Ketika CPU mulai dari reset, ada penundaan tambahan yang memungkinkan daya mencapai level stabil sebelum dimulai operasi normal. Watchdog Oscillator digunakan untuk mengatur waktu bagian real-time ini waktu start-up. Jumlah siklus Osilator WDT yang digunakan untuk setiap timeout ditunjukkan pada Tabel 3. Frekuensi dari Watchdog Oscillator bergantung pada tegangan seperti yang ditunjukkan pada “ATmega8 Typical
Karakteristik - TA = -40 ° C hingga 85 ° C ”. Perangkat dikirimkan dengan CKSEL = "0001" dan SUT =

"10" (1MHz RC Oscillator internal, perlahan naik kekuatan).

Table 3. Number of Watchdog Oscillator Cycles
Typical Time-out (VCC = 5.0V)          Typical Time-out (VCC = 3.0V)     Number of Cycles                  4.1ms                                                         4.3ms                                             4K (4,096)                           65ms                                                         69ms                                             64K (65,536)



Status dari Fuse Bits tidak terpengaruh oleh Chip Erase. Perhatikan bahwa Fuse Bits terkunci jika kunci bit1 (LB1) diprogram. Program Bits Fuse sebelum memprogram Lock Bits



Latching of Fuses

Nilai sekring terkunci ketika perangkat memasuki mode Pemrograman dan perubahan
nilai sekering tidak akan berpengaruh sampai bagian meninggalkan mode Pemrograman. Ini tidak berlaku untuk EESAVE Fuse yang akan berlaku setelah diprogram. Sekering juga terkunci
Power-up dalam mode Normal.


Signature Bytes
Semua mikrokontroler Atmel memiliki kode tanda tangan 3-byte yang mengidentifikasi perangkat. Kode ini dapat dibaca dalam mode Serial dan Paralel, juga saat perangkat terkunci. Tiga byte berada di ruang alamat yang terpisah.
Untuk ATmega8, byte tanda tangan adalah:
1. 0x000: 0x1E (menunjukkan diproduksi oleh Atmel)
2. 0x001: 0x93 (menunjukkan 8KB Flash memory)
3. 0x002: 0x07 (menunjukkan perangkat ATmega8)

Calibration Byte
ATmega8 menyimpan empat nilai kalibrasi yang berbeda untuk RC Oscillator internal. Byte ini
berada di baris tanda tangan. Tinggi byte alamat 0x0000, 0x0001, 0x0002, dan 0x0003
masing-masing untuk 1MHz, 2MHz, 4MHz, dan 8Mhz. Selama Reset, nilai 1MHz secara otomatis
dimuat ke dalam Daftar OSCCAL. Jika frekuensi lain digunakan, nilai kalibrasi harus
dimuat secara manual, lihat "Oscillator Calibration Register - OSCCAL" pada halaman 31 untuk detailnya.

Page Size
Table 89. No. of Words in a Page and no. of Pages in the Flash 
Flash Size                     Page Size     PCWORD    No. of Pages    PCPAGE    PCMSB
 4K words (8 Kbytes)   32 words      PC [4:0]              128            PC[11:5]         11


Table 90. No. of Words in a Page and no. of Pages in the EEPROM 
EEPROM Size             Page Size     PCWORD    No. of Pages    PCPAGE    EEAMSB
512 bytes                    4 bytes           EEA[1:0]          128               EEA[8:2]         8





bootlodere

Boot Loader Dukungan - ReadWhile-Write

SelfProgramming
Dukungan Boot Loader menyediakan mekanisme Read-While-Write Self-Programming yang nyata untuk mengunduh dan mengunggah kode program oleh MCU itu sendiri. Fitur ini memungkinkan aplikasi yang fleksibel,pembaruan perangkat lunak yang dikontrol oleh MCU menggunakan program Boot Loader Flash,Program Boot Loader dapat menggunakan antarmuka data yang tersedia dan protokol yang terkait untuk membaca kode dan tulis (program) kode itu ke dalam memori Flash, atau baca kode dari memori Program.
Kode program dalam bagian Boot Loader memiliki kemampuan untuk menulis ke keseluruhan Flash, termasuk Memori Boot Loader. Maka, Boot Loader dapat memodifikasi dirinya sendiri, dan itu juga dapat menghapus dirinya sendiri dari kode jika fitur tersebut tidak diperlukan lagi. Ukuran Boot Loader Memory dapat dikonfigurasi dengan sekering dan Boot Loader memiliki dua set Boot terpisah
Kunci Bits yang dapat diatur secara mandiri. Ini memberi pengguna fleksibilitas yang unik untuk memilih yang berbeda tingkat perlindungan.

Fitur Boot Loader

• Read-While-Write Self-Programming
• Ukuran Memori Boot Fleksibel
• Keamanan Tinggi (Booting Lock Bits Terpisah untuk Perlindungan Fleksibel)
• Fuse Terpisah untuk Memilih Atur Ulang Vektor
• Halaman Dioptimalkan (1) Ukuran
• Kode Algoritma Efisien
• Dukungan Baca-Ubah-Tulis yang Efisien

Catatan: 1. Halaman adalah bagian dalam Flash yang terdiri dari beberapa byte (lihat Tabel 89 di halaman 218) yang digunakan selama pemrograman. Organisasi halaman tidak mempengaruhi operasi normal.

Bagian Aplikasi dan Boot Loader Flash:
Memori Flash diatur dalam dua bagian utama, bagian Aplikasi dan Boot
bagian loader (lihat Gambar 102 di halaman 204). Ukuran bagian yang berbeda dikonfigurasikan oleh fuse BOOTSZ seperti yang ditunjukkan pada Tabel 82 di halaman 213 dan Gambar 102 di halaman 204. Keduanya bagian dapat memiliki tingkat perlindungan yang berbeda karena memiliki beberapa Kunci Bits yang berbeda.Bagian aplikasi adalah bagian dari Flash yang digunakan untuk menyimpan kode aplikasi.Tingkat perlindungan untuk bagian aplikasi dapat dipilih oleh aplikasi Boot Lock Bits(Boot Lock Bits 0), lihat Tabel 78 di halaman 205. Bagian aplikasi tidak dapat menyimpan Boot apa pun Kode pemuat karena instruksi SPM dinonaktifkan ketika dijalankan dari bagian aplikasi.
Bagian BLS - Boot Loader
Sementara bagian aplikasi digunakan untuk menyimpan kode aplikasi, perangkat lunak Boot Loader harus ditempatkan di BLS karena instruksi SPM dapat memulai pemrograman kapan mengeksekusi dari BLS saja. Instruksi SPM dapat mengakses seluruh Flash, termasuk BLS sendiri. Tingkat perlindungan untuk bagian Boot Loader dapat dipilih oleh Boot Loader Kunci Bits (Boot Lock Bits 1), lihat Tabel 79 di halaman 205.

Bagian Baca-Sementara-Tulis dan Tidak Ada ReadWhile-Write Flash
Apakah CPU mendukung Read-While-Write atau jika CPU dihentikan selama perangkat lunak Boot Loader pembaruan tergantung pada alamat mana yang sedang diprogram. Selain keduanya bagian yang dapat dikonfigurasi oleh BOOTSZ Fuses seperti yang dijelaskan di atas, Flash juga dibagi menjadi dua bagian tetap, bagian Read-While-Write (RWW) dan No Read-WhileWrite (NRWW). Batas antara bagian RWW dan NRWW diberikan pada Tabel 83 di halaman 214 dan Gambar 102 di halaman 204. Perbedaan utama antara dua bagian adalah:
• Saat menghapus atau menulis halaman yang terletak di dalam bagian RWW, bagian NRWW dapat
baca selama operasi
• Saat menghapus atau menulis halaman yang terletak di dalam bagian NRWW, CPU dihentikan selama seluruh operasi
Perhatikan bahwa perangkat lunak pengguna tidak dapat membaca kode apa pun yang terletak di dalam bagian RWW selama operasi perangkat lunak Boot Loader. Bagian "Baca-Sementara-Menulis" sintaks merujuk ke mana bagian yang sedang diprogram (dihapus atau ditulis), bukan bagian mana yang sebenarnya baca selama pembaruan perangkat lunak Boot Loader.

Bagian RWW - Baca-Sementara Tulis
Jika pembaruan perangkat lunak Boot Loader memprogram halaman di dalam bagian RWW, itu mungkin untuk membaca kode dari Flash, tetapi hanya kode yang terletak di bagian NRWW. Selama sedang berlangsung pemrograman, perangkat lunak harus memastikan bahwa bagian RWW tidak pernah dibaca. Jika itu perangkat lunak pengguna mencoba membaca kode yang terletak di dalam bagian RWW (yaitu, oleh panggilan / rjmp / lpm atau interupsi) selama pemrograman, perangkat lunak mungkin berakhir di tempat yang tidak dikenal negara. Untuk menghindari hal ini, interupsi harus dinonaktifkan atau dipindahkan ke Bagian Boot Loader. Bagian Boot Loader selalu berada di bagian NRWW. Bagian RWW Sibuk bit (RWWSB) dalam Register Kontrol memori Program Penyimpanan (SPMCR) akan dibaca sebagai logis satu selama bagian RWW diblokir untuk membaca. Setelah pemrograman selesai, RWWSB harus dibersihkan oleh perangkat lunak sebelum membaca kode yang terletak di bagian RWW. Lihat “Simpan Program Daftar Kontrol Memori SPMCR” di halaman 206. untuk detail tentang cara membersihkan RWWSB.

Bagian NRWW - Tidak Ada ReadWhile-Write
Kode yang terletak di bagian NRWW dapat dibaca saat perangkat lunak Boot Loader diperbarui halaman di bagian RWW. Ketika kode Boot Loader memperbarui bagian NRWW, CPU dihentikan selama seluruh halaman dihapus atau operasi penulisan halaman. Kunci Boot Loader Bits Jika tidak diperlukan kemampuan Boot Loader, seluruh Flash tersedia untuk kode aplikasi. Itu Boot Loader memiliki dua set terpisah Boot Bit Kunci yang dapat diatur secara mandiri. Ini memberi pengguna memiliki fleksibilitas yang unik untuk memilih tingkat perlindungan yang berbeda. Pengguna dapat memilih:
• Untuk melindungi seluruh Flash dari pembaruan perangkat lunak oleh MCU
• Untuk melindungi hanya bagian Boot Loader Flash dari pembaruan perangkat lunak oleh MCU
• Untuk melindungi hanya bagian Aplikasi Flash dari pembaruan perangkat lunak oleh MCU
• Perbolehkan pembaruan perangkat lunak di seluruh Flash
Lihat Tabel 78 di halaman 205 dan Tabel 79 di halaman 205 untuk rincian lebih lanjut. Booting Kunci Bits bisa diatur dalam perangkat lunak dan dalam mode Pemrograman Serial atau Paralel, tetapi mereka dapat dihapus oleh chip hapus hanya perintah. Kunci Tulis umum (Lock bit mode 2) tidak mengontrol pemrograman memori Flash dengan instruksi SPM. Demikian pula, Kunci Baca / Tulis umum (Kunci bit mode 3) tidak mengontrol pembacaan atau penulisan oleh LPM / SPM.

Kunci Boot Loader Bits
Jika tidak diperlukan kemampuan Boot Loader, seluruh Flash tersedia untuk kode aplikasi. Itu Boot Loader memiliki dua set terpisah Boot Bit Kunci yang dapat diatur secara mandiri. Ini memberi pengguna memiliki fleksibilitas yang unik untuk memilih tingkat perlindungan yang berbeda. Pengguna dapat memilih:
• Untuk melindungi seluruh Flash dari pembaruan perangkat lunak oleh MCU
• Untuk melindungi hanya bagian Boot Loader Flash dari pembaruan perangkat lunak oleh MCU
• Untuk melindungi hanya bagian Aplikasi Flash dari pembaruan perangkat lunak oleh MCU
• Perbolehkan pembaruan perangkat lunak di seluruh Flash
Lihat Tabel 78 di halaman 205 dan Tabel 79 di halaman 205 untuk rincian lebih lanjut. 

Table 78. Boot Lock Bit0 Protection Modes (Application Section)(1)
________________________________________________________________________________
  BLB0 Mode   BLB02 Mode   BLB01 Mode     Protection
------------------------------------------------------------------------------------------------------------------------
     1                         1                        1                  Tidak ada batasan untuk SPM atau LPM yang                                                                                          mengakses bagian Aplikasi 
     2                         1                        0                  SPM tidak diizinkan untuk menulis ke bagian                                                                                          Aplikasi 
     3                         0                        0                  SPM tidak diizinkan untuk menulis ke bagian                                                                                          Aplikasi, dan LPM yang mengeksekusi dari bagian                                                                                  Boot Loader tidak diperbolehkan untuk membaca                                                                                    dari bagian Aplikasi. Jika Interrupt Vectors                                                                                              ditempatkan di bagian Boot Loader, interupsi akan                                                                                  dinonaktifkan saat mengeksekusi dari bagian                                                                                            Aplikasi 
   4                          0                        1                   LPM yang dieksekusi dari bagian Boot Loader tidak                                                                                diperbolehkan untuk membaca dari bagian Aplikasi.                                                                                Jika Interrupt Vectors ditempatkan di bagian Boot                                                                                    Loader, interupsi akan dinonaktifkan saat                                                                                                  mengeksekusi dari bagian 
_________________________________________________________________________________
Booting Kunci Bits bisa diatur dalam perangkat lunak dan dalam mode Pemrograman Serial atau Paralel, tetapi mereka dapat dihapus oleh chip hapus hanya perintah. Kunci Tulis umum (Lock bit mode 2) tidak mengontrol pemrograman memori Flash dengan instruksi SPM. Demikian pula, Kunci Baca / Tulis umum (Kunci bit mode 3) tidak mengontrol pembacaan atau penulisan oleh LPM / SPM.