Arduino buatan sendiri di atmega8. USB Arduino anggaran DIY. Pinout Arduino ATmega8
EGYDuino adalah tiruan Arduino yang dapat Anda buat sendiri pada PCB satu sisi. Ini adalah solusi sederhana dan murah yang dapat dibuat di rumah, dan 100% kompatibel dengan Arduino.
Keterangan
Mikrokontroler ATmega8 bertanggung jawab atas koneksi serial melalui USB. Itu dapat diprogram menggunakan . AVR-CDC membuat port COM virtual pada PC setelah menghubungkan perangkat dan menginstal driver yang sesuai. Mikrokontroler ATmega 8.168 harus diprogram menggunakan boatloader ArduinoNG. Operasi ini dapat dilakukan dengan menggunakan papan Arduino lain (pilih pemrogram ISP) dan Arduino IDE, atau pemrogram terpisah (USB, serial atau paralel) seperti USBasp dengan perangkat lunak yang sesuai. Anda juga dapat menggunakan bootloader ArduinoDuemilanove untuk ATmega 168 atau 328.
Dewan mempunyai ciri-ciri sebagai berikut:
Menggunakan mikrokontroler ATmega8 sebagai IC antarmuka
- Koneksi USB ke PC
- Tombol RESET standar
- 100% pin kompatibel dengan Arduino
- Pengatur 5V
- Keluaran 3.3V
- Ukuran dan desain yang kompatibel
- Semua komponen dimasukkan ke dalam lubang pemasangan di papan
- Sakelar daya USB atau DC
- LED untuk pin PIN13 dengan jumper
- LED Daya
- Konektor ICSP
- Mudah diproduksi
- Mikrokontroler ATmega8.168.328 menggunakan bootloader arduinoNG
- Soket listrik DC standar
Papan EGYDuino dapat diberi daya melalui konektor USB atau pengatur tegangan adaptor eksternal.
Skema
Diagram rangkaian lengkap perangkat ditunjukkan di bawah ini
PCB
Daftar elemen radio
Penamaan | Jenis | Denominasi | Kuantitas | Catatan | Toko | buku catatan saya |
---|---|---|---|---|---|---|
IC1 | Mikrokontroler | ATmega8-P | 1 | Ke buku catatan | ||
IC2 | MK AVR 8-bit | ATmega328 | 1 | Ke buku catatan | ||
IC3 | Pengatur linier | LM7805 | 1 | Ke buku catatan | ||
D1 | Dioda penyearah | 1N4001 | 1 | Ke buku catatan | ||
D2, D3 | dioda zener | 3,6V | 2 | Ke buku catatan | ||
C1, C2, C5, C6 | Kapasitor | 22 hal | 4 | Ke buku catatan | ||
C3 | Kapasitor | 1000 halF | 1 | Ke buku catatan | ||
C4, C7, C10 | Kapasitor | 0,1 mikrofarad | 3 | Ke buku catatan | ||
S8, S9 | Kapasitor elektrolitik | 100 μF | 2 | Ke buku catatan | ||
R1, R2 | Penghambat | 68 ohm | 2 | Ke buku catatan | ||
R3 | Penghambat | 1,5 kOhm | 1 | Ke buku catatan | ||
R4, R6 | Penghambat | 10 kOhm | 2 | Ke buku catatan | ||
R5 | Penghambat | 1 kOhm | 1 | Ke buku catatan | ||
R7 | Penghambat | 470 Ohm | 1 | Ke buku catatan | ||
Q1, Q2 | Resonator kuarsa | 16MHz | 2 | Ke buku catatan | ||
LED1 | DIPIMPIN | Merah | 1 |
Selamat siang. Dengan munculnya Arduino, robotika, otomasi, dan produk radio lainnya menjadi lebih mudah diakses oleh kita. Sebelumnya, sulit untuk membayangkan bahwa menulis firmware untuk mikrokontroler dapat dilakukan dengan kesederhanaan seperti itu, dengan munculnya Arduino Bahkan anak-anak pun bisa melakukan robotika. Kesederhanaan platform Arduino memungkinkan Anda melupakan operasi bitwise dan register avr yang digunakan di mana-mana. Namun karena platformnya bersifat universal, mikrokontroler juga dipilih bersifat universal. Misalnya, Arduino uno menyediakan atmel atmega328p, yang tidak diperlukan untuk pemrosesan sederhana dengan menekan tombol, dan jika Anda membuat sekumpulan perangkat sekaligus, Anda harus membayar untuk daya yang tidak terpakai.
Namun karena ide arduino tersedia secara gratis, siapa pun dapat dengan mudah menulis add-on dan pustaka, dan seringkali sangat berguna. Artikel ini akan membahas tentang perpustakaan papan berdasarkan ATmega8, ATmega48, ATmega88, ATmega168 yang disebut Inti Mini. Perpustakaan ini memungkinkan Anda menulis sketsa Arduino untuk mikrokontroler yang lebih lemah daripada atmega328p, dan ini memungkinkan Anda mengurangi biaya perangkat karena penggunaan daya yang rasional.
Mengapa mikrokontroler ini:
- Mikrokontroler ini memiliki pin dan arsitektur yang sama dan memiliki perbedaan minimal dari atmega328p (dapat diganti)
- Mereka murah dan populer (ada pula yang harganya kurang dari satu dolar)
- Semuanya memiliki paket DIP dan TQFP
Library ini mendukung semua indeks chip kecuali PB (yaitu A, P, PA), misalnya Anda tidak boleh menggunakan ATMEGA168PB-AU.
Sirkuit mikro berdasarkan karakteristik:
Atmeg328 | atmega168 | atmega88 | atmega48 | atmega8 | |
Kilatan | 32kb | 16kb | 8kb | 4 kb | 8kb |
RAM | 2 kb | 1 kb | 1 kb | 512b | 1 kb |
ROM | 1 kb | 512b | 512b | 256b | 512b |
saluran PWM | 6 | 6 | 6 | 6 | 3 |
Saatnya beralih dari teori ke praktik, mari instal Mini Core; untuk instalasi Anda memerlukan Arduino IDE versi 1.6.4 dan lebih tinggi. Jika Anda tidak memiliki Arduino atau yang lebih lama, unduh dari kantor. Lokasi.
1. Untuk menginstal, lakukan hal berikut:
2. Luncurkan Arduino IDE
3. Buka menu File ⇒ Pengaturan.
4. Setelah operasi di atas, tutup pengaturan dan masuk ke menu Buka menu “Alat” ⇒ “Papan:"...." ⇒ "Manajer Papan...".
5. Di board manager, pilih perpustakaan kami dan klik instal:
Catatan. Jika Anda menggunakan Arduino IDE 1.6.6, Anda mungkin perlu menutup Board Manager lalu membukanya kembali.
Setelah instalasi, di menu “Alat” ⇒ “Papan:".........”, opsi untuk papan dengan mikrokontroler kami akan muncul.
Pilihan paling nyaman untuk menggunakan mikrokontroler ini adalah dengan mengambil Arduino uno dengan chip dalam paket celup dan menggantinya dengan yang diinginkan. Anda juga dapat merakit papan dengan kabel sederhana:
Bagi yang membutuhkan pinout rangkaian mikro, foto di bawah ini:
Fitur penting lainnya adalah penulis menambahkan kemampuan untuk memilih resonator kuarsa pada beberapa frekuensi dan parameter kontrol daya, yang tidak tersedia secara default untuk papan standar. Semua manipulasi dengan parameter ini dilakukan di menu alat.
Pengaturan jam:
- Osilator eksternal 16 MHz (default)
- Osilator eksternal 20 MHz
- Generator eksternal 18,432 MHz *
- Osilator eksternal 12 MHz
- Osilator eksternal 8 MHz
- Osilator internal 8 MHz**
- Osilator bawaan 1 MHz
Sekarang mari kita beralih ke tindakan praktis. Kami akan mengubah papan debug menjadi Arduino, tetapi semua tindakan berlaku untuk MK sederhana, kuarsa, dan sepasang kondensor. Jadi, ayo pergi.
Kuarsa default pada papan ekspansi adalah 7.3728 MHz. Ini tidak akan berfungsi untuk Arduino. Jadi kita ambil dan ubah ke 16 MHz.
Selanjutnya kita perlu mengunggah bootloader ke board kita. Untuk melakukan ini, ambil papan Arduino apa pun. Saya memiliki Arduino UNO di tangan. Jika Anda belum memiliki Arduino, inilah saatnya untuk mendapatkannya. Anda dapat membelinya di toko Chip Resistor. Jadi, kami memiliki Arduino UNO. Kami menempatkan Arduino UNO di depan kami di sisi kanan meja, dan papan ekspansi ATmega8A di sebelah kiri. Di sisi kanan papan ini terdapat konektor ISP dengan pinout Atmel klasik.
Jangan ragu untuk mengambil kabel dan menyambungkan konektor ini satu ke satu, kecuali pin 5.
Sekarang kita ambil kabelnya dan masukkan salah satu ujungnya ke pin ke-5 pada papan ekspansi ATmega8A, dan ujung lainnya ke pin Arduino UNO Digital 10. Seharusnya menjadi seperti ini.
Hasilnya, setelah semua manipulasi, kita akan mendapatkan tampilan seperti ini.
Jika semuanya baik-baik saja, sambungkan ke USB komputer. Jika terhubung dengan benar, LED pada Arduino UNO dan LED merah pada papan ekspansi ATmega8A akan menyala. (Sayangnya, di foto, kabelnya menghalangi LED, tapi percayalah, itu menyala)
Mari beralih ke prosedur perangkat lunak. Dan di sini pengaturan besar dari pabrikan Arduino menunggu semua penggemar ATmega8 MK. Saat ini, IDE versi 1.6.3 tidak mendukung mikrokontroler tersebut. Lebih tepatnya, ada file konfigurasi dan bootloader, tetapi Anda tidak bisa mengunggahnya. Faktanya adalah Arduino beralih ke mikrokontroler ATmega328P minimal, dan infeksi ini memiliki Extended Byte Fuse. Tapi delapan kotor tidak. Karena omong kosong ini, bootloader tidak memuat, tetapi mengeluh tentang kurangnya bit-bit ini. Oleh karena itu, Anda perlu mengisi bootloader dengan IDE versi lama. Jika Anda belum memilikinya, Anda dapat mengunduhnya dari saya. Ini adalah versi 1.0.3 dan tidak perlu diinstal. Buka zipnya di suatu tempat dan selesai. Selanjutnya, jalankan saja program dari folder ini. Sekarang mari kita siapkan program untuk mengisi MK kita. Untuk memulainya, pilih seorang programmer dari contoh ArduinoISP dan unggah ke Arduino UNO atau apa pun yang sedang Anda gunakan.
Setelah diisi, Anda perlu mengganti papan Arduino UNO atau apapun yang Anda miliki Arduino NG atau lebih lama dengan ATmega8.
Semua. Anda bisa mengisinya. Klik Alat -> Bakar bootloader dan tunggu hingga rekaman selesai.
Siap. Arduino lahir. Kami melepaskan semua kabel, dan menggantung papan ekspansi pada papan debug GSMBOARD 1.1. Selanjutnya, ambil papan ekspansi USB-TTL dan sambungkan kabel GND - GND, RXD - TXD, TXD - RXD dan suplai daya. LED hijau akan menyala.
Jika semuanya berfungsi, matikan program lama dan luncurkan versi terbaru. Hari ini adalah 1.6.3 dan kami menulis kode berikut. void setup() ( pinMode(2, OUTPUT); ) void loop() ( digitalWrite(2, HIGH); delay(2000); digitalWrite(2, LOW); while(1); ) Apa yang sebenarnya terjadi di sini. Pertama kita inisialisasi pin 2 ke output. Lalu kita tampilkan satu di atasnya, tunggu dua detik dan tekan ke nol. Lalu kita terjatuh ke dalam lingkaran tanpa akhir. Untuk lebih jelasnya, berikut adalah gambar apa yang menjadi papan debug.
Seperti yang Anda lihat, pin kedua bertanggung jawab untuk menghidupkan dan mematikan modul. Sekarang saatnya mengunggah sketsa kita ke Arduino yang baru dipanggang. Untuk melakukan ini, mari konfigurasi ulang IDE dengan memilih item seperti pada gambar di bawah. Dan jangan lupa ganti portnya menjadi USB-TTL.
Semuanya sudah diatur. Klik unggah sketsa. Semuanya akan baik-baik saja, tetapi kesalahan muncul. Eh. Di sinilah penggaruk dimulai. Arduino menggunakan port COM virtual untuk mengunduh program. Ini bekerja seperti ini. Pertama, IDE mengkompilasi proyek, kemudian menarik tombol reset MK, dan sejak bootloader diluncurkan pertama kali, IDE, melihatnya, mulai menuangkan program ke dalam flash. Dan jika setelah kompilasi Anda tidak mereset MK, maka bootloader IDE tidak akan menunggu dan menimbulkan kesalahan. Untuk memicu reset, semua Arduino memiliki pin port DTR COM yang terhubung. Papan ekspansi USB-TTL tidak memiliki kaki ini, jadi ketika IDE mengkompilasi proyek dan menulis Memuat.
Kami dengan panik menekan dan melepaskan tombol reset pada papan ekspansi ATmega8A. IDE akan mengambil bootloader dan mengunggah program ke flash. Itu saja, program akan turun sedikit dan menyalakan modul GSM. Jika semuanya dilakukan dengan benar, maka akan terlihat seperti pada gambar.
Bagi pemilik adaptor USB-RS232 yang beruntung, Anda dapat melepas pin DTR dari port (tentu saja melalui chip MAX3232) untuk mereset MK. Ini adalah pin 5 pada konektor ISP melalui kapasitor 100nf. Artinya, DTR adalah kapasitor - RES. Dan kemudian IDE itu sendiri akan melakukan reset. Bagaimanapun, Anda harus mendapatkan gambaran seperti ini. Program dijalankan dan menghidupkan modul.
Sekarang Anda dapat mengutak-atik modul GSM. Jika Anda memiliki pertanyaan, tulislah. Mari kita coba mencari tahu.
ANONIM 02.02.16 22:32
Terima kasih untuk artikelnya. Sekarang saya bisa menggunakan Mega 8 di Arduino Uno saya.
niko19 25/12/16 23:03
Mengapa melakukan semua ini dengan papan ekspansi dan mendapatkan Arduino jika ada Arduino yang sudah jadi di atas meja? Pertanyaannya adalah bagaimana membuat Arduino buatan sendiri, katakanlah di papan tempat memotong roti, dari Mega8 dan kuarsa yang tergeletak di sekitar. Apa yang perlu diunggah ke Mega, secara harfiah poin demi poin, atau bahkan lebih baik lagi, file firmware yang sudah jadi misal saya punya programmer paralel, tapi saya juga punya serial, tapi Arduino yang sudah jadi belum ada...
Alexei 25/12/16 23:40
Arduino adalah mikrokontroler Atmel dengan bootloader yang dimuat untuk bekerja dengan Arduino IDE. Yang perlu Anda lakukan hanyalah mengatur sekering untuk bootloader, pilih sekering untuk mikrokontroler Anda dari folder firmware dan unggah. Jika secara singkat.
Entah bagaimana (beberapa bulan yang lalu) saat menelusuri berita di Internet, saya menemukan ulasan yang sangat bagus tentang proyek Arduino yang sangat populer. Ada tertulis bahwa hampir ibu rumah tangga menyukainya dan dapat mengotak-atiknya serta melakukan segala macam hal menarik dengan bantuannya. Baiklah... kalau begitu. Mengapa saya tidak mencoba, sepertinya saya punya tangan dan otak... Namun, baik keuangan maupun kekikiran alami tidak memungkinkan saya untuk membeli papan yang sudah jadi. Kami akan melakukannya sendiri dengan kumis. Berikut instruksi dari kantor. situs web: http://arduino.cc/en/Main/ArduinoBoardSerialSingleSided3
Di sana Anda akan menemukan daftar bagian dan gambar meterai.... Singkatnya, semua yang Anda butuhkan untuk pembuatannya. Saya membuat dua papan ini dan sangat senang.
Tapi ada satu hal. Dalam versi resmi, unit transistor bertindak sebagai konverter RS232.... dan ini menyebabkan pertukaran informasi tidak stabil.
Namun saya bukanlah orang pertama yang mengalami masalah seperti itu. Berikut adalah opsi pada konverter MAX232 asli
http://spiffie.org/electronics/archives/microcontrollers/Build%20a%20MaxSerial%20Freeduino.html
Itu layak dilakukan.
Inilah proses saya untuk menerapkan opsi ini.
Kami mengumpulkan semuanya ke tumpukan. Suku cadang dan konektor - harganya kurang dari $10.
Kami membutuhkan:
-- sepotong fiberglass satu sisi (95x65mm)
- mikrokontroler ATmega8 (atau ATmega168)
- Sirkuit mikro MAX232 (dapat diintegrasikan ILX232N)
— 7805 (pengatur tegangan 5V)
— 4 LED (sebaiknya warna berbeda)
— kuarsa 16 MHz
- tombol (dengan empat kontak)
— Konektor port COM (wanita) untuk menyolder
— konektor daya (2,1 mm)
- Kapasitor 22pF (ditandai 22 atau 220) - 2 pcs.
— kapasitor 0,1 μF (tanda 104) — 3 buah.
— resistor 1k (0,125 Watt) — 5 buah.
- Resistor 10k (0,125 Watt) - 1 pc.
— dioda 1N4004 (atau 1N4007) — 1 buah.
— elektrolit. kapasitor 10uF x16V - 5 buah (tinggi minimum, jika tidak, pelindung tidak akan muncul)
— elektrolit. kapasitor 100uF x16V - 2 buah (juga rendah)
- bantalan untuk sirkuit mikro (16 kaki - 1 buah, 28 kaki sempit - 1 buah)
baik, beberapa potong pin dan yang sesuai. aku ibu.
Yang paling penting adalah membuat stempelnya. ( file Word siap pakai untuk dicetak danLUT ).
Saya ulangi sekali lagi, SEMUA tergantung kualitas stempelnya!!!
Papan yang sudah jadi (tergores) harus dikalengkan. Jika ingin cantik, gunakan paduan Rose. Saya rasa Anda dapat dengan mudah menemukan deskripsi metode ini di Internet. Nah, Anda bisa melakukannya dengan cara lama dengan fluks dan solder.
Untuk keindahan dan kenyamanan, letak elemen dan prasasti dapat diterapkan pada sisi depan (dengan jarahan yang sama).
Yang tersisa hanyalah menyolder elemen-elemennya dengan hati-hati. Mulailah dengan jumper, lalu elemen pasif (resistor, kapasitor, kuarsa), lalu LED, konektor, bantalan. Kami menyolder semuanya tanpa "ingus" dan "celana pendek" :)
Lihat dari sisi penyolderan.
Dan itulah hasilnya. Versi saya jauh dari standar, tetapi cukup bisa diterapkan :)
Jadi, 2/3 pekerjaan sudah selesai. Yang tersisa hanyalah "menghirup kehidupan" - mem-flash papan dengan bootloader. :)
Untuk melakukan ini, Anda perlu membuat programmer kecil.
Berikut diagramnya:
Dan berikut implementasinya pada hardware:
Unduh perangkat lunak dari situs resminya. Kami menginstal. Mari kita luncurkan.
Kami mengikuti jalannya: -> ->
Kita sambungkan programmer ke Arduino, konektornya ada di LPT, kita suplai daya ke Arduino
Banyak amatir radio yang mulai mengenal mikrokontroler melalui Arduino. Sebagian besar pengguna mysku mengetahui tentang perancang elektronik ini dan platform yang nyaman untuk perkembangan pesat perangkat elektronik, jadi saya tidak akan membahas kelebihan dan kekurangan platform itu sendiri.
Tinjauan ini akan menjelaskan kemungkinan menggunakan Arduino sebagai programmer (lihat di bawah untuk Arduino ISP). Bagi siapa pun yang tertarik, silakan lihat kucing.
Setelah cukup bermain dengan berbagai modul untuk Arduino, saya memiliki keinginan untuk membuat perangkat lengkap yang berguna dalam kehidupan sehari-hari.
Karena tidak sengaja menemukan proyek tersebut di Internet, saya memutuskan untuk mencoba mengulanginya.
Setelah membaca deskripsi proyek, masalah utama bagi saya, atau, seperti yang mereka katakan, jebakan, dirumuskan:
- Pembuatan papan sirkuit tercetak;
- Firmware untuk mikrokontroler Atmega8A dalam paket TQFP-32.
Sebelumnya, saya belum pernah mengetsa satu papan pun dan hanya mem-flash mikrokontroler yang terpasang di Arduino dalam paket DIP.
Atmega8 dalam paket TQFP-32, selain kelebihan seperti harga lebih murah dan ukuran lebih kecil dibandingkan DIP, juga memiliki kekurangan - tidak nyaman untuk mem-flash mikrokontroler dan instalasi yang lebih rumit di papan.
Kelemahan pertama dapat dihilangkan dengan berbagai cara:
- Beli adaptor TQFP32 TO DIP32 yang memiliki mekanisme penjepit. Biayanya sekitar 1.000 rubel;
- Beli adaptor TQFP32 TO DIP32, yang tidak memiliki mekanisme penjepit dan dirancang untuk menyolder mikrokontroler. Harganya sekitar 100 rubel untuk 5 buah;
- Buat adaptor papan sirkuit cetak TQFP32 TO DIP32 dengan tangan Anda sendiri;
- Solder kabel tipis ke kaki yang diinginkan dan lepaskan soldernya setelah flashing.
Setelah memilih opsi kedua dari belakang, agar tidak menunggu satu bulan lagi untuk pengiriman, saya mulai membuat papan sirkuit tercetak menggunakan metode LUT. Ada banyak informasi dan video di Internet tentang metode ini dan siapa pun dapat dengan mudah mengulanginya di rumah. Dengan mengetsa papan dengan besi klorida dan menyolder pinnya, kami mendapatkan adaptor ini:
File sumber untuk Sprint Layout dapat diunduh.
Solder Atmega8 dengan pengering rambut atau besi solder. Anda hanya dapat "mengambil" 8 kaki yang terlibat dalam firmware. Saya tidak menyarankan penggunaan berbagai klem atau “pertanian kolektif” dengan jepitan.
Kami menghubungkan Arduino Uno ke komputer melalui USB dan mengunduh sketsa Arduino ISP. Kompilasi dan flashing Arduino Uno. Di kolom komentar ada petunjuk untuk menghubungkan firmware melalui Arduino ISP, kita memerlukan pin MOSI, MISO, RESET, GND, GND, VCC, VCC, SCK.
// nama pin: not-mega: mega(1280 dan 2560) // reset slave: 10:53 // MOSI: 11:51 // MISO: 12:50 // SCK: 13:52
Diagram koneksi umum akan terlihat seperti ini:
Untuk firmware kami akan menggunakan utilitas konsol:
Avrdude -p m8 -P USB15 -c arduino -b 19200 -U lfuse:w:0xE4:m -U hfuse:w:0xDA:m -U flash:w:main.hex
Dimana -p m8 - Mikrokontroler yang akan di-flash dalam kasus kami adalah Atmega8;
-P USB15 - Nama port tempat programmer Arduino ISP ditentukan;
-dengan Arduino - Tipe pemrogram;
-b 19200 - kecepatan port USB;
-U flash:w:main.hex - Firmware;
-U lfuse:w:0xE4:m -U hfuse:w:0xDA:m - Sekring.
Setelah flashing berhasil, Anda juga dapat membandingkan kode flash dengan file hex asli:
Avrdude -p m8 -P USB15 -c arduino -b 19200 -U flash:v:main.hex
Jika Anda tidak memiliki Arduino, Anda dapat menggunakannya sebagai programmer murah. Biayanya sekitar 100 rubel.
Sebagai penutup, saya akan menunjukkan foto-foto perangkat yang saya rakit sesuai dengan proyek ClusterM.
Foto
Keunikan:
- Emulasi iButton/Cyfral/Metacom;
- Membaca iButton/Cyfral;
- Sinkronisasi database kunci dengan komputer melalui USB;
- Ukuran papan kompak;
- Konsumsi daya rendah, penulis proyek melaporkan bahwa perangkat beroperasi selama sekitar satu tahun dengan satu set baterai;