Saya telah mengerjakan proyek Arduino. Setelah saya mendapatkan semuanya berfungsi menggunakan Arduino, saya ingin pindah ke solusi yang TIDAK menggunakan Arduino. Artinya, saya ingin menggunakan mikrokontroler tanpa melibatkan papan Arduino. Ini akan memungkinkan satu papan, tidak ada solusi perisai.
Saya tahu ada metode untuk membuat Arduino saya sendiri di atas papan tempat memotong roti, tetapi itu bukan yang sebenarnya saya coba lakukan.
Saya tidak begitu yakin bagaimana melakukan ini.
Kecuali ada pilihan yang lebih baik, saya cenderung menggunakan ATmega328, yang digunakan oleh Arduino. Saya mengerti bahwa alat pengembangan tersedia gratis atau setidaknya tidak terlalu mahal.
Untuk keperluan pertanyaan ini, anggap saya bisa mendapatkan + 5V ke sirkuit saya.
Pertanyaan pertama saya adalah bagaimana memprogram MCU. Saya percaya ada dua opsi:
- Beli programmer, program MCU, dan kemudian tempatkan chip di sirkuit saya.
- Rancang sirkuit saya untuk memasukkan dukungan untuk pemrograman dalam-sirkuit.
Saya berasumsi bahwa jika saya menggunakan opsi # 1, semudah memasukkan chip yang diprogram di sirkuit saya; Saya tidak butuh yang lain. Tentu saja mengubah perangkat lunak akan merepotkan.
Tetapi untuk opsi # 2, saya tidak yakin apa yang saya butuhkan. Dari sedikit bacaan yang telah saya lakukan, saya pikir saya perlu kabel pemrograman, dan konektor di papan saya (tipe apa?). Lalu saya kira saya (benar) memasang konektor ke pin tertentu pada ATmega.
Either way, saya akan membutuhkan Atmel studio.
Kedua, selain catu daya, apakah ada sesuatu di Arduino yang benar-benar saya butuhkan? Saya kira mungkin saklar reset?
sumber
Jawaban:
Selamat datang di dunia Atmel yang indah. Izinkan saya menawarkan beberapa jawaban untuk pertanyaan Anda berdasarkan hobi dan pengalaman profesional saya.
Jangan repot-repot dengan apa pun TAPI pemrograman dalam sirkuit. Kecuali jika Anda adalah pembuat kode yang sempurna, mengeluarkan sebuah chip setiap kali Anda ingin memprogramnya adalah mimpi buruk. Saya merekomendasikan AVRISPmkII sebagai alat pemrograman tingkat pemula. Kerugiannya adalah tidak ada debug hardware yang didukung. Alternatif adalah naga tetapi saya tidak punya pengalaman dengan itu. Saya dapat mengatakan bahwa JTAGICEmk3 adalah alat debug yang bagus.
Atmel studio bagus untuk pemrograman. Ini sebenarnya lingkungan pengembangan tertanam favorit saya. Anda dapat menggunakan alat CLI seperti AVRDUDE dan AVR-GCC tetapi IDE yang menangani itu untuk Anda.
SINGKATNYA:
Beli AVRISP hanya untuk pemrograman (lebih mudah, pasang & mainkan) atau DRAGON (Saya tidak bisa memberikan saran).
Di papan Anda, keluarkan pin ICSP ke header ganda 6-pin 0,100 "- koneksi dijelaskan dalam lembar data ini .
Reset switch tidak diperlukan.
sumber
Anda tidak harus "lulus" sekaligus. Inilah cara saya mengonversi:
Sebagai permulaan, saya terus menggunakan Arduino tetapi mengubah panggilan ke perpustakaan Arduino menjadi register baca dan tulis, satu baris pada satu waktu, melihat apakah program saya masih berfungsi. Dengan cara ini saya terbiasa menggunakan register dan melihat bahwa mereka tidak secara radikal terputus dengan cara Arduino dalam melakukan sesuatu. Fungsi Arduino seperti digitalWrite () cukup memanipulasi register - Anda bebas membaca dan menulis secara langsung di sketsa Anda.
Langkah saya selanjutnya adalah menempatkan ATTiny 85 di atas papan tempat memotong roti dan memprogramnya dengan Arduino sebagai ISP ( http://highlowtech.org/?p=1695 ). Jika Anda membeli catu daya papan tempat memotong roti dan menggunakan osilator internal ATTiny, ini membutuhkan kabel yang sangat sedikit. Saya menggunakan Arduino IDE untuk mengkompilasi tetapi tetap menggunakan register sebanyak yang saya bisa.
Kemudian, saya menginstal toolchain baris perintah Crosspack gratis dan menyusun program blinky. Setelah beberapa percobaan dan kesalahan lagi, saya berhasil memprogram ATTiny dengan avrdude saja, tetap sepenuhnya di luar ekosistem Arudino.
Setelah Anda mencapai blinky hanya dengan alat-alat baris perintah, Anda bebas dari Arduino. Jelajahi berbagai periferal dan register mereka dan segera itu akan benar-benar alami.
Setelah semua ini, saya sering menemukan diri saya menggunakan Arduino karena lebih cepat. Saya telah menemukan bahwa meneliti deskripsi register agak menyebalkan; tidak masuk akal melakukan itu jika Anda tidak perlu. Meskipun demikian, ada baiknya untuk mengetahui caranya.
sumber
Saya setuju dengan komentar HL-DSK di atas. Saya akan menghabiskan uang ekstra dan mendapatkan seorang programmer dengan kemampuan debug. Saya menggunakan JTAGICE3, sekitar $ 110 untuk digi-key.
Baca di pemrograman ISP sini . Ini akan menunjukkan kepada Anda bagaimana mengeluarkan koneksi SPI. Koneksi SPI pada chip Anda akan ada dalam lembar data ATmega. Lihat halaman 2 untuk pin MISO / MOSI / SCK / RESET. Programmer harus dapat mengendalikan garis reset. Ingatlah untuk menggunakan resistor pull-up pada garis reset sehingga chip Anda akan berjalan setelah programmer terputus.
Dapatkan tajuk 2x3 di sini . Atau buat sendiri menggunakan header yang memisahkan diri.
sumber
Perbedaan antara Arduino dan ATmega328 yang telanjang hanyalah dua hal. Arduino Bootloader, dan perpustakaan Arduino. Anda dapat mengode Arduino dengan bare C atau C ++ tanpa menggunakan pustaka apa pun. Anda juga bisa menggunakan rakitan. Bootloader memungkinkan Anda memuat kode baru melalui serial tanpa melalui (sedikit) pemrograman dalam rangkaian yang lebih rumit (pada dasarnya SPI).
Anda dapat menggunakan perpustakaan pemrograman standar dan avr-gcc dengan hampir semua ide. Berlawanan dengan apa yang orang lain katakan, pengkodean Arduino pada dasarnya seperti pengkodean mikrokontroler telanjang, dengan beberapa kemudahan tambahan dengan mengorbankan beberapa kinerja.
sumber
Saya membeli chip Atmega328P pre-bootload dan memprogram mereka di-sirkuit dengan kabel FTDI dan avrdude, identik dengan bagaimana saya memprogram Arduino. Saya suka Eclipse IDE tetapi Anda dapat menggunakan lingkungan yang Anda suka - Atmel Studio, Arduino IDE, emacs, atau bertelanjang kaki pada baris perintah.
Papan ini sedang dibangun pada titik di mana cukup lengkap untuk menguji dengan program Hello, menggunakan kabel untuk pemrograman, daya, dan terminal. Masih perlu catu daya - LM2936 regulator tegangan arus ultra-rendah dan konektor baterai, dalam kasus saya - dan apa pun komponen on-board dan koneksi off-board lain yang dibutuhkan proyek:
Karena Anda memiliki Arduino, Anda bisa menghemat sedikit uang dan menggunakan chip yang tidak terprogram, menggunakan Arduino untuk menginstal bootloader. Label pin-out biru yang bagus membantu menurunkan tingkat kesalahan saya! Saya menggunakan kristal 16MHz tetapi jika Anda dapat menjalankannya dengan osilator internal, jumlah komponen Anda turun sebanyak 3 (kapasitor xtal dan 2).
sumber
Untuk pindah dari Arduino di mana perangkat keras disediakan dan perangkat lunaknya adalah overlay bahasa C, saya ingin membuat beberapa saran. Saya melihat orang telah memposting beberapa jawaban yang berguna tetapi saya telah berada di tempat Anda berada dan saya akan melakukan hal-hal yang sedikit berbeda.
Saya punya beberapa ide skematis yang saya pelajari sendiri sehingga Anda memiliki antarmuka yang bersih dan halus untuk mikro Anda. Beri tahu saya jika Anda membutuhkan bantuan.
sumber
Nasihat Jujur
Arduino adalah untuk pemula, ada dua cara untuk pergi dari sini
Cara 1: Memahami cara kerja pengontrol mikro / prosesor (pendekatan yang lebih disukai)
Maksud saya belajar arsitektur dan kode perakitan (atau logam kosong) untuk micro p / c. Jika Anda memerlukan titik awal untuk ini saya akan menyarankan Atmel 8051 yang merupakan pengontrol mikro 8 bit dengan arsitektur dan perakitan instruksi set yang paling sederhana. Prosesor 32bit atau 64bit modern lainnya memiliki bentuk arsitektur yang diturunkan darinya. Pengontrol mikro ini masih digunakan sebagai bagian dari kursus pascasarjana saya karena ini merupakan titik awal yang baik dan banyak literatur tersedia.
Oh dan kit untuk membuat papan ISP Anda dijual (kit yang dirakit lengkap dengan proseso, komponen solder ke kit papan dan Anda dapat membuat papan pengembangan sendiri hanya membutuhkan beberapa kabel / soket IC dan RS-232)
Karena teknologi rendah semua komponen akan murah.
Cara 2: Lompat ke pendekatan perangkat keras-perangkat lunak (kurang disukai)
Ini adalah pendekatan untuk pemalas yang telah menyelami sedikit perakitan dan "mengetuk" ATAU orang yang ingin beralih ke lebih banyak perangkat lunak daripada perangkat keras. Saya akan menyarankan pindah ke papan hobi lain seperti Raspberry Pi atau BeagleBoneBlack dengan prosesor ARM dan mulai melakukan proyek dan kreativitas mereka.
sumber
Anda dapat menggunakan papan Arduino, tanpa menggunakan perpustakaan dan lingkungan kotak pasir, Anda dapat memprogram semuanya sendiri secara langsung. Jika Anda ingin menggunakan bootloader mereka melalui serial / uart untuk memprogram, itu berfungsi dengan baik. Tetapi sebagian besar / semua bagian avr juga dapat diprogram dengan cara lain, dengan bagian diadakan di reset yang berarti itu tidak brickable. cukup mudah untuk menggigit bang spi dari arduino atau mikrokontroler lainnya atau dengan ftdi keluar dari rasa. sparkfun memiliki arduino dan papan non-arduino (32u misalnya) yang header spi jelas. dan papan breakout ftdi yang Anda dapat dengan mudah bitbang menggunakan perpustakaan ftdi atau perpustakaan ftdi yang datang dengan linux.
Dokumentasi untuk setiap bagian menunjukkan opsi booting dan opsi pemrograman flash. ya tidak sulit untuk hanya membeli beberapa bagian juga dan membuat papan breakout Anda sendiri. Saya tidak akan melakukan itu sampai Anda telah menggunakan breakout yang ada atau papan eval sederhana dan kemudian mengkloning itu jika perlu. Idealnya mulai dengan bagian dengan osilator rc internal, pada dasarnya pin daya, pentanahan, dan pemrograman ...
sumber