SDownldr.exe is a software to program a AT89S51/AT89S52 serially through the parallel port. This Software is included in the Microcontroller Project

SDownldr.exe
SDownldr.exe

Circuit diagram for this ISP downloader is as follow:

ISP downloader circuit diagram
ISP downloader circuit diagram

The Serial Downloader circuit above using the power supply from the parallel port. However, not all parallel port capable of providing enough current for this purpose. If Your parallel port is not strong enough for this purpose, then you must provide a + 5V power supply for this circuit.

If the program is run from the IDE, then all the settings will be performed by the IDE. Whereas if it is executed as a standalone program, then the settings are as follows:

  • Default Hex File

    If you are using the “Microcontroller Poject” IDE, so whenever performed a successful compilation, a hex file is created in the temp directory, i.e. TMPFILE.HEX. If the “Default Hex File” is checked, then the file will be sent if the Send button is clicked is the hex file of successful compilation result. Keep in mind that the hex file will exist only if the IDE is still running.

    If “Default Hex Files” is not checked, then you can determine which files will be sent by clicking on the Browse button.
  • Send

    Use this button to start sending the specified hex file.
  • Read

    Use this button to read the code on the chip. The reading will only succeed if the chip has not been locked.
  • Lock

    Use this button to lock the chip so that the code on the chip cannot be read again.
  • Port

    Select the appropriate port address for the port being used. Parallel port usually placed on the address 378H.
  • Auto Lock

    If checked, then after sending the data is complete and after verification, the chip will be locked automatically.
  • Browse

    Use this button to choose a hex file will be sent. This button will only be active if the “Default Hex Files” is not a check.
  • Read data count

    Used to determine the amount of data to be read if the Read button is clicked. It could use a decimal number or hexadesimal, i.e. if the “Hex” is checked.

69 thoughts on “Simple Serial Downloader for AT89S51/AT89S52

  1. apa sdownloadernya cocok untuk atmel AT80F51 ? soalnya sy sdh rangkai sesuai dengan skema tp tdk bisa, terima kasih sebelumnya pak

  2. Pak sulhan kalau buat At89c51 bisa gak…??
    terus programnya pakai software yang ad di CD buku pak sulhan bisa gak..??
    terimakasih

    1. Seri C tidak bisa diprogram secara serial. Jadi harus diprogram secara paralel. Software yang di buku adalah versi 5 dan belum menyediakan interface untuk download secara serial maupun custom. Sebaiknya donwload yang versi terbaru

  3. salam sejahtera…
    mas sulhan…nomor pin yang ada di skema downloader diatas itu pada pcb cpu apa di ujung konektor db25?terus terang saya bingung menentukan pinnya.saya sedang membuat tex berjalan dg led matriks mau coba membuat sendiri downldr skema dari mas sulhan dan baru beli bukunya mas sulhan.kebetulan kabel db25 yang ujungnya sama(yang ada untuk printer saya potong) susah di cari di daerah saya,makanya saya mau solder langsung ke rangkaian ISP dan yang ujung satunya lewat pakai konektor tsb ke cpu.untuk itu saya mohon petunjuk detail agar lebih jelas,atau ada yang lebih mudah untuk membuat downldr/ISP untuk pemograman AT89S51 (maklum mash belajar)dikirim via email saya.terima kasih seblmnya. saya doakan semoga anda sehat selalu.amin.

    1. Dari sisi solder, tentu saja maksudnya dari sisi solder dari konektor yang kita gunakan, bukan dari sisi solder di pcb cpu. Saya tidak akan merepotkan orang untuk membongkar cpu hanya untuk melihat konektor DB25-nya.

    2. berarti saya harus punya kabel DB25 yang ujungnya sama (kabel untuk paralel komputer)karena di pasaran kebanyakan ujung satunya untuk printer lama, dan juga di PCB downloader harus pakai soket pasangan kabel DB25(jantan),bukan begitu, mas..?

    3. Setahu saya, port paralel pada PC selalu merupakan DB25 Female. Jadi, agar konektor yang kita gunakan bisa masuk ke konektor pada PC, maka kita harus menggunakan konektor DB25 Male.

    4. Kebetulan saya juga pengguna downloader 89S51 via port paralel. Dulu ketika PPI 8255 Card masih banyak digunakan, sangat mudah mendapatkan kabel data paralel DB25, kalau beli namanya bukan kabel LPT DB25, tapi kabel PPI 8255. Kalau sekarang memang agak sulit. Membuat sendiri memang solusi yang paling enak. Bahan-bahannya adalah: DB25/Male Gantung, DB25/Female Gantung, Kabel 25-pin, dan Cover DB25.
      Semoga dapat sedikit membantu. Selamat berkarya!

    5. maksud saya ujung kabel yang di hubungkan pada pcb downldr.
      saya punya kabel yang kedua ujungnya berbeda yang satu DB25 female dan yang satunya lagi juga female tapi pin-nya 30 untuk printer lama makanya saya potong maksud saya mau langsung di solder ke PCB downldr. kebetulan di daerah saya susah mencari kabel DB25 female yang kedua ujungnya sama2 pin-nya 25(DB25 female). jadi cara menyambungnya apa harus pake pasangan DB25 femala(DB25 male)yang di tanam pada PCB downldr dan gimana cara nyambungnya?

    6. Downloader ini disebut sebagai ISP (In-System Programming). Jadi kita tidak perlu membuat rangkaian khusus untuk memrogram IC. Perhatikan bahwa kristal dan kapasitor merupakan bagian dari rangkaian standar mikrokontroler. Akan lebih mudah jika kita membuat header untuk ISP pada rangkaian mikrokontroler kita. Header tersebut cukup 5 pin saja yaitu pin 6,7,8,9, dan GND. Kita bahkan tidak perlu membuat rangkaian dioda karena kita menggunakan catu daya 5V tersendiri pada rangkaian mikrokontroler kita.

      Dan karena masalahnya adalah sulit mencari konektor DB25, saya juga mengasumsikan akan sulit juga untuk mencari header maupun pasangannya, sehingga Pak Samarudin ingin memotong langsung kabel printer lama untuk disambungkan ke pcb downloader, dan bertanya bagaimana cara menyambungnya? Ya dicoba satu-satu memakai multitester kan bisa. Pada gambar adalah dilihat dari sisi solder. Dan karena sisi solder tidak bisa kita lihat, karena telah terbungkus, maka kita bisa mengukurnya dari sisi konektor yang posisinya bisa dilihat dengan mencerminkan gambar di atas. Hanya ada 5 pin yang perlu dicari kabelnya, yaitu pin 1,2,14,15, dan ground. Ground adalah pin 18 hingga 25. Boleh diambil salah satu saja.

    7. Terima kasih…mas,
      saya sudah berhasil mengatasinya dan sudah mempraktekannya pada lampu led, seven segment, alhmdulillah sukses. tinggal pengembangan progaram saja,terutama saya ingin membuat running text.mohon bimbingannya bila ada kesulitan.

  4. saya sudah mempraktekannya pak. tapi pas program heksa didownload ke at89s51 terjadi error 000h, sofware yang saya pakai IDE, koneksi tersambung pak uman pass ditengah jalan muncul error tersebut. mohon pencerahannya pak terimah kasih banyak sebelumnya

    1. Apa sudah dicoba menggunakan catu daya tersendiri? Tidak semua port paralel cukup kuat untuk diguanakan sebagai pencatu. Rangkaian seperti di atas, dimana catu langsung diambilkan dari port paralel, hanya bisa diterapkan jika kualitas port cukup bagus. Biasanya komputer build up memiliki port paralel yang kuat, tetapi komputer rakitan banyak yang kualitas portnya buruk.

    2. terima kasih atas jawabannya, untuk catu daya yang saya gunakan saya mengambil supplay dari usb komputer , pass di write ke at89s51 pakai program sdownldr.exe awalnya memang tertulis bilangan heksanya tatapi tidak finish dan muncul erorr 000h, atau barang kali kristal saya yang tidak pas karna saya cuman menggunakan kristal 4MHZ, sedangkan ic yang saya pakai IC baru dan belum pernah dipakai sebelumnya terimasih banyak atas pencerahannya

    3. Kebetulan saya masih menggunakan 89S51 untuk sistem2 sederhana, untuk program downloader saya menggunakan SPI Flash-Programmer versi 3.7 buatan Mohammad Asim Khan dan ISP Programmer 1.2.0.55 buatan Adam Dybkowski. Kedua program tersebut memiliki fasilitas untuk mengatur sendiri pin-pin pada DB25 LPT untuk masing2 pin MOSI, MISO, SCK, RST, dan beberapa pin tambahan lainnya. Mungkin Mas Nofrudianto bisa menggunakan program2 tersebut dengan mengatur pin-pinnya sesuai dengan hardware downloader yang sudah dibuat. Semoga bermanfaat.

  5. KEnapa ya, sdownldr.exe tdk dieksekusi di PC saya hanya muncul “Runtime error 5 dst….” padahal saya coba di laptop bisa… (tapi gak mungkinkan pake laptop kecuali pke konverter usb to lpt), gimana solusinya supaya sdownldr.exe bisa dieksekusi di PC saya??

  6. mas saya sudah buat rangkaian di atas, udah bisa detec, udah bisa write. tapi ada yang eror.
    erornya sesudah proses write ada proses read waktu proses read itu datanta gak kebaca semua.
    FFFFF….
    fffff…
    ffff…
    eror
    kira kira itu apanya? makasih

    1. Apa menggunakan catu daya sendiri? Rangkaian yg persis gambar di atas hanya bisa bekerja untuk PC dengan kualitas LPT yang bagus. Jika LPT kurang kuat, cobalah untuk menggunakan catu daya eksternal. Jadi tegangan +5V diambil bukan dari dioda, tetapi menggunakan adaptor 5V.

    2. cara nya kasih buffer gimana?

      maaf terlalu banyak tanya. sebab aku belum begitu paham.

    3. Untuk MISO (P1.6) buffernya input dari IC dan output yang masuk ke LPT. Untuk yang lainnya, input dari LPT dan output yang ke IC. Buffernya bisa menggunakan 4050, bisa juga menggunakan 4081 dengan menggabung 2 input gerbang ANDnya menjadi satu sehinga berlaku sebagai buffer saja. Datasheetnya browsing sendiri saja ya 😀

    1. Downloader USB tidak bisa dibuat dengan sederhana, minimal membutuhkan ATMEGA8 untuk berkomunikasi dengan PC melalui USB, kemudian ATMEGA8 ini yang melakukan proses download ke AT89S51/52.

    1. 89Cxx belum mendukung pemrograman ISP, jadi harus menggunakan downloader parallel dengan menggunakan tenganan VPP sekitar 12V. Detil cara pemrogramannya bisa dibaca pada datasheetnya.

    2. makasih.
      saya coba dulu rangkaiannya..
      itu ada 2 ic mikron. satu untuk target. satunya lagi yg isinya ez2.hex
      pertanyaan gimana cara memasukkan file hex ke ic mikron itu?
      trims atas pencerahannya..

    3. Pengisian itu dilakukan dengan downloader yang sudah ada. Tanya pada salah satu teman, mungkin sudah ada yang punya. Atau terkadang ada toko elektronik di kotamu yang menerima pengisian file hex. Atau gunakan saja AT89S51 untuk IC masternya, sehingga bisa diisi dengan menggunakan ISP. Atau browsing lagi cara download ke 89Cxx melalui port paralel. Rangkaian downloader melalui port paralel biasanya tidak menggunakan IC yang membutuhkan pemrograman. Hanya beberapa IC logic biasa.

    4. saya udah dapat ddownloder 89cxx pake port paralel dan tidak menggunakan ic program hanya menggunakan ic 74HC299, 74HC573, 74HC595,dll tapi untuk sofwarenya belum ketemu. udah saya cari2 di webnya juga gak dapat.
      kira kira sofware untuk download apa ya?

    5. Software harus sesuai dengan hardwarenya. Semestinya yang menerbitkan rancangan hardwarenya juga menerbitkan softwarenya (Mungkin bisa didapat dengan membeli kepada perancangnya).

    6. mas kalau mau buat donloder 89Cxx melalui port paralel kan biasanya Hanya beberapa IC logic biasa dan tidak menggunakan IC yang membutuhkan pemrograman. untuk newbi seperti saya biar bisa membuatnya.
      kalau yang 89Sxx udah banyak yang membahasnya, kalau 89Cxx masih jarang sekali yang membahasnya.
      kalau bisa di postingkan dong? buat bahan untuk diskusi disini..
      makasih

    7. Dulu, banyak sekali yang membahas downloader untuk AT89Cxx karena belum ada AT89Sxx. Sekarang, yang membahas itu sudah pada hilang, karena memang AT89Cxx sudah tidak disarankan untuk rancangan yang baru, sudah hampir habis masa berlakunya. Karena itu rasanya sudah terlambat kalau membahas AT89Cxx sekarang, sebentar lagi mungkin produknya juga sudah tidak keluar lagi. Lagi pula, AT89Sxx bisa menggantikan AT89Cxx tapi tidak sebaliknya.

    1. Saya sendiri belum pernah mencobanya, karena saya tidak memiliki USB-PTR 😀
      Kenapa mas Herry tidak mencobanya saja? Kan rangkaiannya sangat sederhana untuk dibuat. Nanti hasilnya laporkan disini 😀

    2. Saya sudah mencobanya, locati communicati port nya nggak cocok (Location: Port_#0002 Hub_#0004).

    3. Nggak bisa, masalahnya pada device manager USB-PTR terdeteksi ke Universal Serial Bus controllers (USB Printing Support), bukan ke System Ports (COM & LPT). Kalau memindahkan ke system PORTS (COM & LPT), caranya gimana mas ,bisa nggak?….maksh.

    4. Kalau memang begitu, sepertinya USB-PTR tidak bisa digunakan. Coba gunakan konverter jenis lain, sepertinya banyak juga konverter yang mengubah usb menjadi port paralel. Bahkan kita bisa membuatnya sendiri menggunakan ATMEGA8 dengan driver maupun firmware yang tinggal pakai. Yang kita perlukan cuma membuat rangkaiannya dan memprogram mikronya dengan file hex yang telah disediakan tersebut. Dan untuk langkah itu, cobalah untuk meminjam PC teman yang tersedia LPTnya 😛

    1. 8 KB itu untuk ukuran kode programnya, bukan ukuran file hexnya. Untuk kira-kira berapa ukuran programnya, bisa dibuka pada file hex tersebut, terus lihat baris terakhirnya:

      ....
      :1006C000E171652EE170652EE16F652EE16E652E9C
      :0506D000E16D652EE163
      :00000001FF
      

      Dari kode-kode tersebut bisa diperkirakan bahwa ukuran kodenya adalah 6D5H atau 1745 Byte. 6D5H diperoleh dari mana? 05 adalah jumlah kodenya, dan ini ditambahkan kepada alamat awalnya yaitu 06D0 sehingga menjadi 06D5. Ingat, semua angka adalah hexadesimal.

    2. :101C5000000102020303040405060607070707083C
      :061C600009090A0A0B0B42
      :00000001FF
      Berarti punyaku ini 1c66 atau 7270 byte ya mas,trimakasih.

  7. Mas numpang tanya,
    Saya pakek Arduino Uno ic pakek Atmega328, misalnya saya ingin memogram Atmega8 bisa eggak ?
    Apa langsung lepas Atmega328 dan ganti pakek Atmeg8 udah bisa ya?

    1. Terkadang kualitas port mempengaruhi hasil. Jika kualitas port bagus, maka bisa dibuat langsung dari port, tetapi jika kualitas port kurang bagus, mungkin perlu untuk menambahkan buffer. Juga perlu diperhatikan bahwa dengan port yang tidak bagus, terkadang kabel yang terlalu panjang juga bisa menyebabkan error.

  8. Mas…..,sy mau belajar mikrocontrler.kira2 buku panduan apa yg saya baca(saya miliki) tuk bisa menjadikan sy mahir dlm mikrocontroler.tp sy mau buku tulisan mas sulhan,krn dari semua komentar2, mas menanggapi dan menjawab semua komentar dengan jelas dan sangat bisa dimengerti serta dipahami.dan bera pula harga buku2 trsbt,agar bisa sy kumpul uang tuk membeli buku2 dari mas sulhan.terimaksih

  9. Untung saya punya Port paralel.. bekas praktek buat alat flash IC epprom TV. bisa dimanfaatkan untuk ini. pak Sulhan Bagaimana Kalo kabel parale port saya masih panjang, apa kira2 kalo dibuat downloader dapat mempengaruhi proses download, apa sebaiknya dipotong pendek saja.. sebelum saya membuat, trimakasih.

    1. Faktor kualitas port itu sangat berpengaruh pada keberhasilannya. Jika port paralelnya berkualitas bagus, maka menggunakan kabel panjang juga tidak masalah. Jadi, sebaiknya dicoba saja menggunakan kabel yang cukup panjang, hanya kira-kira cukup mudah dalam penggunaan, tetapi jangan terlalu panjang sampai bermeter-meter 😀
      Jika menggunakan kabel panjang tidak berhasil, coba potong untuk memperpendek, katakanlah 20 cm saja. Jika tetap gagal, mungkin ada baiknya membeli USBAsp saja 😛 Tapi ingat, sebelum membeli, tanyakan terlebih dahulu pada penjualnya apa USBAsp yang dijual tersebut adalah versi yang bisa digunakan untuk AT89S51/AT89S52 atau bukan, karena pada awalnya USBAsp itu untuk avr. Jadi mungkin saja USBAsp yang dijual adalah versi lama yang belum bisa digunakan untuk AT89S51/AT89S52.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.

Notify me of followup comments via e-mail. You can also subscribe without commenting.