Saya tidak mendapatkan konsep Arduino

8

Saya telah berjuang dengan membuat Arduino untuk sementara waktu (berhasil membuat versi papan tempat memotong roti menggunakan kabel programmer ISP ). Mereka mengatakan bahwa bootloader Arduino dibuat sehingga tidak ada sirkuit eksternal yang diperlukan untuk memprogram ATmega8 . Tetapi ketika saya melihat ke dalam skema ada rangkaian normal yang diperlukan untuk koneksi serial. Lalu apa sebenarnya yang dilakukan bootloader?

Rick_2047
sumber
1
tidak ada sirkuit eksternal yang merupakan klaim tidak masuk akal ... untuk berbicara dengan komputer melalui port serial Anda setidaknya memerlukan transciever RS232, seperti semacam MAX232; atau seperti yang dilakukan Arduino, Anda dapat berbicara TTL UART langsung ke chip antarmuka USB seperti FTDI.
vicatcu

Jawaban:

12

Bootloader adalah program kecil dalam flash AVR yang tidak pernah ditimpa dan berjalan pada powerup. Tugas bootloader adalah membaca data program dari UART dan menuliskannya ke flash internal. Tanpa bootloader, satu-satunya cara untuk memuat kode adalah menggunakan ISP.

AVR ATMega8 hadir tanpa kode dalam flash. Kode dapat diunggah melalui pin ISP (in-system-programming), menggunakan programmer AVR ISP (atau bahkan Arduino lainnya).

Untuk Arduino, ISP hanya digunakan sekali (saat pembuatan) - untuk mengunggah bootloader kecil. Pada powerup, bootloader berjalan dan berkomunikasi dengan serial UART (pin TX + RX). Sekarang, Arduino dapat diprogram melalui pin serial menggunakan protokol STK500.

Karena pin serial terhubung (biasanya) ke USB FTDI ke chip seri, Arduino juga dapat diprogram melalui USB.

Toby Jaffey
sumber
Jadi Anda mengatakan bahwa jika saya memiliki chip atmega8 dengan bootloader yang dibakar di dalamnya, saya dapat menghapus semua sirkuit untuk ISP dan hanya menghubungkan pin yang tepat dari serial ke arduino? Anda juga dapat memberi tahu saya bagaimana saya akan menghubungkan serial dengan atmega8
Rick_2047
2
Setelah Anda memiliki bootloader, inilah sirkuit Arduino yang sangat minim. Hubungkan PC Anda (melalui konverter level TTL) ke pin TX / RX / GND. profmason.com/wp-content/uploads/2008/09/arduinopins.jpg Lihat pertanyaan ini untuk lebih jelasnya: chiphacker.com/questions/2512/ftdi-basic-breakout-5v
Toby Jaffey
1
Max232 mengubah serial level RS232 (seperti yang berasal dari konektor 9-pin pada PC) ke sinyal level TTL (5v) yang cocok untuk berbicara dengan Arduino / AVR. Sirkuit max232 dapat diganti dengan FTDI USB ke TTL serial chip untuk terhubung ke PC.
Toby Jaffey
2
Sedikit catatan di sini: Bootloader Arduino hanya mendengarkan pada port serial untuk kode baru untuk waktu yang sangat singkat saat startup. Bootloader Arduino yang lebih lama menunggu beberapa detik sebelum mulai menjalankan kode. Bootloader baru mulai dengan sangat cepat dan harus diatur ulang oleh garis DTR dari FT232. Jika Anda berencana menggunakan max232, unggah bootloader yang lebih lama. Juga periksa Sparkfun ( sparkfun.com/commerce/tutorial_info.php?tutorials_id=104 ) untuk beberapa tutorial AVR yang hebat.
bpijls
2
Ini adalah kode objek AVR yang sebenarnya. Arduino mengalahkan beberapa platform saingan (mis. Cap Dasar) karena menjalankan kode objek yang dikompilasi bukan seorang juru bahasa.
Toby Jaffey
3

Anda dapat membeli chip ATmega328 dengan boot-loader di sini .

Leon Heller
sumber
Saya baru memesan 4 hari ini (dari situs ZA) :)
leppie
1

Mereka mungkin berarti bahwa jika Anda membeli Arduino Uno yang sudah dirakit dan dirakit, Anda juga tidak perlu membeli seorang programmer. Seperti halnya dengan banyak pemula elektronik lainnya. Anda dapat memprogram papan Arduino Uno hanya dengan kabel usb (A> B).

Namun jika Anda akan membangun Arduino Anda sendiri, tentu saja Anda akan membutuhkan rangkaian eksternal (misalnya programmer AVR ISP) atau jenis barang Max232 atau FTDI.

Superpelican
sumber
0

Ide di balik bootloader Arduino adalah bahwa Anda tidak memerlukan khusus perangkat keras atau sirkuit untuk re-program yang mereka, dibandingkan dengan pemrograman awal, atau mikrokontroler yang lebih tua, yang sering membutuhkan programmer khusus (seperti Pickit2 untuk PIC MCUs). Bootloader memungkinkan pemrograman melalui koneksi serial dasar.

Tentu saja, pada saat itu, Anda memerlukan tautan serial, biasanya konverter rs232 dari TTL ke RS232. Kemudian port serial dihapus, usb ke serial menjadi mana-mana, memungkinkan untuk mengganti max232 atau serupa. Dan sekarang, penggunaan mikrokontroler Atmel yang diaktifkan USB memungkinkan hal itu menjadi tidak perlu, sehingga satu ic dengan bagian pasif minimal dapat menyediakan fungsi Arduino dan USB ke Serial. Sekarang Anda hanya perlu kabel usb dan beberapa pasif untuk mengunggah sketsa. Pemrograman awal bootloader masih membutuhkan pemrograman ICSP tradisional.

Pejalan kaki
sumber