temu 13 (mengisi ROM)

advertisement
Modul 13. Mengisi ROM internal 8051
MK : Mikroprosesor
Jurusan Teknik Elektro
Fakultas Teknik Industri
Mikroprosesor
Temu 13:
Mengisi ROM Internal 8051
Oleh: Dipl.Ing Asril Jarin, MSc
PUSAT PENGEMBANGAN BAHAN AJAR-UMB
ASRIL JARIN
MIKROPROSESOR
1
Modul 13. Mengisi ROM internal 8051
MK : Mikroprosesor
Mengisi ROM Internal 8051
1. Definisi ROM
ROM adalah Memori yang hanya bisa dibaca saat pengoperasiannya (Read Only Memory).
Nilai-nilai yang tersimpan didalamnya berada tetap (tidak hilang) walaupun sistem
dimatikan. Pada sistem PC di ROM biasanya disimpan BIOS (Basic Input Output System).
Jenis-jenis ROM berdasarkan:

Masked ROM : Informasi disimpan secara permanen pada saat produksi. Secara
teknik menggunakan mask optik.

Programable Read Only Memory : ROM yang memiliki komposisi logik memori
secara array sehingga dapat diprogram. Program yang tersimpan tidak dapat dirubah
lagi.

Erasable Programable Read Only Memory : ROM yang dapat diprogram dan dapat
dihapus kembali. Penghapusan dilakukan dengan Cahaya UV. Proses penghapusan
cukup lama yakni: 10 sd 30 menit. EEPROM yang tidak dilindungi dari Matahari
dapat merusak informasi data didalamnya.

Pengembangan EPROM adalah EEPROM dan Flash EPROM.

EEPROM : penghapusan dilakukan dengan menggunakan efek medan listrik.
Perbedaannya dengan Flash EPROM, penghapusan pada Flash EPROM berjalan lebih
cepat secara blok per blok, bukan byter per byte.

AT89C51 memiliki ROM internal jenis Flash EEPROM dengan kapasitas 4KByte.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB
ASRIL JARIN
MIKROPROSESOR
2
Modul 13. Mengisi ROM internal 8051
2.
MK : Mikroprosesor
Mode Flash Programming ROM Internal 8051
Seperti kita telah ketahui, operasi atau kerja yang dilakukan sebuah prosesor sesuai
dengan program yang dieksekusinya, biasanya program ini ditulis pada ROM.
Prosesor Intel 8051 dilengkapi dengan ROM internal. Secara umum, pengisian
program ke dalam ROM dilakukan dengan memasukkan informasi byte demi byte,
setiap byte informasi diletakkan di alamat tertentu pada ROM internal.
ROM internal Intel 8051 terdiri dari 4096 lokasi yang masing-masing berukuran 8-bit.
Untuk memasukkan informasi biner, baik berupa instruksi maupun data permanen,
harus ditentukan apa data yang akan diletakkan dan di mana diletakkan.
1. Data yang akan ditulis atau diletakkan dalam ROM internal ini harus berukuran
8-bit,
2. sedangkan Address atau alamatnya berukuran 12-bit.
3. Selain informasi Data dan Address tersebut, harus ditetapkan juga sinyal
kendali yang tepat seperti tertera pada tabel berikut ini.
Tabel 13.1. Mode Flash Programming.
Seperti tampak pada tabel 13.1, untuk menulis kode biner ke dalam Rom internal,
selain 12-bit address dan 8-bit data, diperlukan juga kode kendali tertentu. Terkait dengan
gambar 13.1 dan 13.2, prosedur penulisan kode biner ke dalam ROM internal adalah sbb :
PUSAT PENGEMBANGAN BAHAN AJAR-UMB
ASRIL JARIN
MIKROPROSESOR
3
Modul 13. Mengisi ROM internal 8051
MK : Mikroprosesor
1. Letakkan 12-bit address pada jalur alamat atau address line, yaitu pada 8-bit Port 1 dan 4bit Port 2 seperti tampak pada gambar 13.1. bagian kiri atas.
2. Letakkan 8-bit data pada jalur data, yaitu pada 8-bit Port 0, seperti tampak pada gambar
13.1, sisi kanan IC sebelah kiri.
3. Aktifkan 4-bit kombinasi sinyal untuk penulisan kode ke ROM internal, yaitu pin P2.6,
P2.7, P3.6 dan P3.7 berurutan diberi kondisi LOW, HIGH, HIGH, HIGH, seperti tampak
pada tabel 13.1.
4. Beri tegangan 5V atau 12V pada pin EA/Vpp, seperti tampak pada gambar 13.1.
5. Beri ‘pulsa LOW’ (bukan kondisi low) pada pin ALE/PROG yang durasinya sekitar 1,5
ms. Selain menunggu selama 1,5 ms, progres proses penulisan dapat dipantau melalui pin
P3.4, jika pin ini dalam keadaan LOW berarti BUSY, proses penulisan masih
berlangsung. Sedangkan jika pin ini dalam keadaan HIGH berarti READY, proses
penulisan 1-byte tsb telah selesai.
Urutan langkah penulisan ini diringkas hingga tampak seperti gambar 13.2.
Untuk membaca isi ROM internal, urutan langkah yang harus dilakukan adalah sbb :
1. Letakkan 12-bit address pada jalur alamat atau address line, yaitu pada 8-bit Port 1 dan 4bit Port 2 seperti tampak pada gambar 13.1. bagian kiri atas.
2. Aktifkan 4-bit kombinasi sinyal untuk pembacaan kode dari ROM internal, yaitu pin
P2.6, P2.7, P3.6 dan P3.7 berurutan diberi kondisi LOW, LOW, HIGH, HIGH, seperti
tampak pada tabel 13.1.
3. Beri kondisi HIGH pada pin EA/Vpp dan pin ALE/PROG, seperti tampak pada gambar
13.1.
4. Pantau pin P3.4, jika pin ini HIGH atau READY, berarti 8-bit data pada jalur data siap
diambil, yaitu pada 8-bit Port 0, seperti tampak pada gambar 13.1, sisi kanan IC sebelah
kanan. Karena menggunakan Port 0, sebaiknya 8-pin ini dihubungkan dengan resitor pull
up sebesar 10k untuk setiap bit.
Urutan langkah inipun dapat dilihat dalam bentuk diagram waktu seperti tampak pada gambar
13.2.
Untuk menghapus semua isi ROM internal sehingga seluruhnya berisi data FFH, maka
prosedurnya dalah sbb :
PUSAT PENGEMBANGAN BAHAN AJAR-UMB
ASRIL JARIN
MIKROPROSESOR
4
Modul 13. Mengisi ROM internal 8051
MK : Mikroprosesor
1. Aktifkan 4-bit kombinasi sinyal untuk pembacaan kode dari ROM internal, yaitu pin
P2.6, P2.7, P3.6 dan P3.7 berurutan diberi kondisi HIGH, LOW, LOW, LOW, seperti
tampak pada tabel 13.1.
2. Beri tegangan 5V atau 12V pada pin EA/Vpp, seperti tampak pada tabel 13.1.
3. Beri pulsa LOW pada pin ALE/PROG dengan durasi 10 ms, seperti tampak pada tabel
13.1.
Untuk mengunci isi ROM internal, disediakan 3 level penguncian seperti tampak pada
tabel 13.2 berikut ini. Penguncian mode kedua menyebabkan isi ROM internal tidak dapat
diambil dengan cara eksekusi instruksi MOVC yang dilakukan dari ROM eksternal. Selain
itu isi ROM tidak dapat dihapus atau diubah. Penguncian mode ketiga menyebabkan isi ROM
internal juga tidak dapat dibaca dengan cara verifikasi. Sedangkan penguncian mode keempat
sama dengan penguncian mode ketiga dengan tambahan prosesor hanya dapat mengeksekusi
instruksi internal saja. Cara melakukan penguncian dapat dilihat pada tabel 13.1.
Untuk mengetahui identitas IC, dapat dilakukan pembacaan signature byte yang
terletak pada alamat 30H, 31H dan 32H dengan 4-bit kendali seperti tampak pada tabel 13.1.
Tabel 13.2. Mode Proteksi Lock-Bit.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB
ASRIL JARIN
MIKROPROSESOR
5
Modul 13. Mengisi ROM internal 8051
MK : Mikroprosesor
Gambar 13.1. Rangkaian Programming (kiri) dan Verifying (kanan)
Gambar 13.2 Flash Programming and Verification Waveforms
Untuk melakukan pengisian ROM internal diperlukan alat yang disebut downloader.
Biasanya downloader dihubungkan dengan sebuah PC agar pengisian ROM internal dapat
dilakukan dari sebuah PC. Terkait dengan PC, paling tidak ada 2 macam downloader, yaitu
downloader yang terhubung melalui serial port DB9 dan downloader yang terhubung melalui
paralel port DB25. Untuk mengoperasikan downloader diperlukan program yang running
pada PC. Selain harus memiliki fasilitas akses paralel atau serial port, program pada PC ini
juga harus dilengkapi dengan sarana membaca file dengan format Intel HEX serta sarana user
interface seperti menu, under DOS maupun under Windows.
Downloader yang menggunakan serial port harus dilengkapi dengan prosesor
pengendali yang disebut IC master. IC master ini berperan untuk melakukan komunikasi
serial dengan PC dan melakukan prosedur penulisan ke ROM internal pada IC slave. Tentu
saja IC master ini harus sudah diisi program sebelum digunakan dalam downloader tsb.
Downloader yang menggunakan paralel port memungkinkan semua kendali dilakukan
oleh PC. Meskipun harus menggunakan pin konektor yang lebih banyak, yaitu 25-pin,
downloader ini tidak perlu dilengkapi dengan IC master, karena semua prosedur pengisian
ROM internal IC slave dilakukan oleh PC.
Contoh downloader paralel port.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB
ASRIL JARIN
MIKROPROSESOR
6
Modul 13. Mengisi ROM internal 8051
MK : Mikroprosesor
Berikut ini adalah contoh rangkaian downloader yang terhubung melalui paralel port.
Seperti tampak pada gambar 13.3, catu daya untuk socket IC slave adalah VCZ yang
besarnya dapat diatur oleh VCE (pin QH pada U3) dan VCS (pin O2 dari paralel port).
Sedangkan catur data untuk IC digital lainnya berasal dari VCC yang merupakan output catu
daya dengan regulator tegangan 7805.
Untuk menentukan lokasi ROM internal, 15-pin address (A0 – A14) dari socket IC
slave dihubungkan dengan 2 buah Shift Register satu arah (U4 dan U5) yang masing-masing
berukuran 8-bit. Pin data 8-bit yang berasal dari socket IC slave (B0 – B7) dihubungkan
dengan sebuah Shift Register 1 arah (U2). Sedangkan 4-bit pin kendali dari socket IC slave
(P26, P27, P36, P37) dihubungkan dengan sebuah Shift Register 1 arah (U3).
Sesuai dengan tabel 13.1, pin PSEN (pin ke-29) dari socket IC slave dihubungkan ke
Ground, sedangkan pin RST di-pull up dengan resistor R6 ke catu daya socket IC slave, yaitu
VCZ. Pin EA/VPP untuk socket IC slave diatur oleh VPE (pin O1 dari paralel port),
sedangkan pin ALE/PROG untuk socket IC slave dihubungkan dengan output rangkaian
clock yang terdiri dari 4 buah 2-input NAND schmitt trigger (U1). Input rangkaian klok ini
adalah ST1 dan ST2 (pin O3 dan O0 dari paralel port).
Seluruh pin SCK dari shift register 1 arah, yaitu U3, U4, U5, serta pin CLK dari shift
register 1 arah, yaitu U2 mendapatkan input dari CK yang merupakan sadapan tegangan D1
(pin 14 dari paralel port) melalui resistor R2. Pin D (data serial) dari shift register U3, U4 dan
U5 masing-masing mendapatkan input dari pin D6, D4 dan D5 pada paralel port. Pin D0 dari
shift register U2 mendapatkan input dari pin D0 paralel port, sedangkan pin Q7 dari IC ini
memberikan informasi serial ke pin I7 pada paralel port. Seperti tampak pada gambar 13.3, 8
dari 25 pin paralel port K1 dihubungkan ke ground, sedangkan sisanya dihubungkan ke
berbagai pin pada rangaian downloader sesuai dengan lebelnya. Pin D0 sampai D7 dari
paralel port K1 ini merupakan pin data output, sedangkan pin I7 merupakan pin data input.
Pin O0 – O3 adalah pin output paralel port K1 yang merupakan pin kendali yang
mengeluarkan informasi biner secara otomatis ketika PC mengirimkan data output melalui
paralel port.
Meskipun downloader seperti ini hanya membutuhkan 1 kali pemrograman, yaitu
pada PC saja, perancang harus memahami seluk beluk hardware terkait dengan pengiriman
dan pengambilan data melalui paralel port.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB
ASRIL JARIN
MIKROPROSESOR
7
Modul 13. Mengisi ROM internal 8051
MK : Mikroprosesor
Gambar 13.3. Rangkaian lengkap downloader yang menggunakan paralel port
PUSAT PENGEMBANGAN BAHAN AJAR-UMB
ASRIL JARIN
MIKROPROSESOR
8
Modul 13. Mengisi ROM internal 8051
MK : Mikroprosesor
Contoh downloader serial port.
Berikut ini adalah contoh rangkaian downloader yang terhubung melalui serial port.
Seperti tampak pada gambar 13.4, rangkaian downloader ini terlihat jauh lebih sederhana dari
rangkaian downloader yang menggunakan paralel port. Sebagai konpensasinya, rangkaian ini
memerlukan IC master yang harus diisi program sebelum digunakan untuk mengendalikan
operasi penulisan dan pembacaan pada downloader ini.
Seperti tampak pada gambar tsb, untuk mengatur address IC slave, prosesor pada IC
master menggunakan Port 1 dan Port 2. Untuk data digunakan port 0, sedangkan untuk 4-bit
kendali digunakan 4-bit MSB pada port 3. Untuk memantau kesiapan IC slave, prosesor pada
IC master menggunakan P3.2. Sedangkan untuk memberi pulsa negatif ALE/PROG pada IC
slave, prosesor master menggunakan P2.7. Untuk mengatur besar tegangan Vpp dari IC slave,
prosesor master menggunakan P3.3.
Program yang ditanam pada prosesor master harus sesuai dengan program yang dibuat
pada PC. Misalnya, jika PC mengirimkan satu baris Intel HEX pada setiap pengiriman serial.
Maka PC harus menunggu kesiapan prosesor master sebelum melakukan kiriman baris
berikutnya. Sebagai pasangan kerja PC, prosesor master harus menyimpan satu baris Intel
HEX pada RAM internal sebelum proses penulisan pada ROM internal IC slave dimulai,
sehingga semua data yang dikirim PC dapat diterima secara utuh, prosesor master tidak
disibukkan oleh pekerjaan selain mengambil data dari saluran serial.
Mengambil informasi dari file dengan format Intel HEX.
Terkait dengan penggunaan downloader, selain pengetahuan berkenaan dengan
pengiriman dan penagmbilan data melalui paralel port dan serial port, programmer PC harus
dapat melakukan operasi baca dan tulis file yang menggunakan format intel HEX. Modul ke13 ini dilampiri dengan keterangan tentang file Intel HEX.
Karena IC prosesor Intel yang digunakan dalam kuliah ini tidak melampaui address
16-bit, maka baris yang memiliki tipe extended address (tt = 02 atau tt = 04) tidak pernah
digunakan. Yang akan ditemui hanya baris dengan tipe data record (tt = 00) atau baris dengan
tipe end-of-file record (tt = 01).
PUSAT PENGEMBANGAN BAHAN AJAR-UMB
ASRIL JARIN
MIKROPROSESOR
9
Modul 13. Mengisi ROM internal 8051
MK : Mikroprosesor
Gambar 13.4. Rangkaian lengkap downloader yang menggunakan serial port
PUSAT PENGEMBANGAN BAHAN AJAR-UMB
ASRIL JARIN
MIKROPROSESOR
10
Mikroprosesor, Semester 6 –Progr.Karyawan Univ.Mercu Buana
INTEL HEX FILE FORMAT
The Intel HEX file is an ASCII text file with lines of text that
follow the Intel HEX file format. Each line in an Intel HEX file
contains one HEX record. These records are made up of hexadecimal
numbers that represent machine language code and/or constant data.
Intel HEX files are often used to transfer the program and data that
would be stored in a ROM or EPROM. Most EPROM programmers or
emulators can use Intel HEX files.
Record Format
An Intel HEX file is composed of any number of HEX records. Each
record is made up of five fields that are arranged in the following
format:
:llaaaatt[dd...]cc
Each group of letters corresponds to a different field, and each
letter represents a single hexadecimal digit. Each field is composed
of at least two hexadecimal digits-which make up a byte-as described
below:

: is the colon that starts every Intel HEX record.

ll is the record-length field that represents the number of
data bytes (dd) in the record.

aaaa is the address field that represents the starting address
for subsequent data in the record.

tt is the field that represents the HEX record type, which may
be one of the following:
00 - data record
01 - end-of-file record
02 - extended segment address record
04 - extended linear address record

dd is a data field that represents one byte of data. A record
may have multiple data bytes. The number of data bytes in the
record must match the number specified by the ll field.

cc is the checksum field that represents the checksum of the
record. The checksum is calculated by summing the values of all
Date 29-Jun-08
by Dipl.Ing Asril Jarin, MSc
Page 11
Mikroprosesor, Semester 6 –Progr.Karyawan Univ.Mercu Buana
hexadecimal digit pairs in the record modulo 256 and taking the
two's complement.
Data Records
The Intel HEX file is made up of any number of data records that are terminated with a carriage
return and a linefeed. Data records appear as follows:
:10246200464C5549442050524F46494C4500464C33
This record is decoded as follows:
:10246200464C5549442050524F46494C4500464C33
|||||||||||
CC->Checksum
|||||||||DD->Data
|||||||TT->Record Type
|||AAAA->Address
|LL->Record Length
:->Colon
where:

10 is the number of data bytes in the record.

2462 is the address where the data are to be located in memory.

00 is the record type 00 (a data record).

464C...464C is the data.

33 is the checksum of the record.
Date 29-Jun-08
by Dipl.Ing Asril Jarin, MSc
Page 12
Mikroprosesor, Semester 6 –Progr.Karyawan Univ.Mercu Buana
Extended Linear Address Records (HEX386)
Extended linear address records are also known as 32-bit address
records and HEX386 records. These records contain the upper 16 bits
(bits 16-31) of the data address. The extended linear address record
always has two data bytes and appears as follows:
:02000004FFFFFC
where:

02 is the number of data bytes in the record.

0000 is the address field. For the extended linear address
record, this field is always 0000.

04 is the record type 04 (an extended linear address record).

FFFF is the upper 16 bits of the address.

FC is the checksum of the record and is calculated as
01h + NOT(02h + 00h + 00h + 04h + FFh + FFh).
When an extended linear address record is read, the extended linear
address stored in the data field is saved and is applied to
subsequent records read from the Intel HEX file. The linear address
remains effective until changed by another extended address record.
The absolute-memory address of a data record is obtained by adding
the address field in the record to the shifted address data from the
extended linear address record. The following example illustrates
this process..
Address from the data record's address field
Extended linear address record data field
2462
FFFF
--------
Absolute-memory address
Date 29-Jun-08
FFFF2462
by Dipl.Ing Asril Jarin, MSc
Page 13
Mikroprosesor, Semester 6 –Progr.Karyawan Univ.Mercu Buana
Extended Segment Address Records (HEX86)
Extended segment address records-also known as HEX86 records-contain
bits 4-19 of the data address segment. The extended segment address
record always has two data bytes and appears as follows:
:020000021200EA
where:

02 is the number of data bytes in the record.

0000 is the address field. For the extended segment address
record, this field is always 0000.

02 is the record type 02 (an extended segment address record).

1200 is the segment of the address.

EA is the checksum of the record and is calculated as
01h + NOT(02h + 00h + 00h + 02h + 12h + 00h).
When an extended segment address record is read, the extended
segment address stored in the data field is saved and is applied to
subsequent records read from the Intel HEX file. The segment address
remains effective until changed by another extended address record.
The absolute-memory address of a data record is obtained by adding
the address field in the record to the shifted-address data from the
extended segment address record. The following example illustrates
this process.
Address from the data record's address field
Extended segment address record data field
2462
1200
--------
Absolute memory address
Date 29-Jun-08
00014462
by Dipl.Ing Asril Jarin, MSc
Page 14
Mikroprosesor, Semester 6 –Progr.Karyawan Univ.Mercu Buana
nd-of-File (EOF) Records
An Intel HEX file must end with an end-of-file (EOF) record. This
record must have the value 01 in the record type field. An EOF
record always appears as follows:
:00000001FF
where:

00 is the number of data bytes in the record.

0000 is the address where the data are to be located in memory.
The address in end-of-file records is meaningless and is
ignored. An address of 0000h is typical.

01 is the record type 01 (an end-of-file record).

FF is the checksum of the record and is calculated as
01h + NOT(00h + 00h + 00h + 01h).
Example Intel HEX File
Following is an example of a complete Intel HEX file:
:10001300AC12AD13AE10AF1112002F8E0E8F0F2244
:10000300E50B250DF509E50A350CF5081200132259
:03000000020023D8
:0C002300787FE4F6D8FD7581130200031D
:10002F00EFF88DF0A4FFEDC5F0CEA42EFEEC88F016
:04003F00A42EFE22CB
:00000001FF
Date 29-Jun-08
by Dipl.Ing Asril Jarin, MSc
Page 15
Download