Persyaratan sirkuit ARM minimal

13

Saya telah melakukan beberapa pengembangan dengan ATMega dan saya ingin memperluas wawasan saya. Saya punya beberapa chip seri Cortex M4 dan ingin membuat ARM yang setara dengan Breadboarduino

Saya berencana untuk etsa papan saya sendiri atau menggunakan papan breakout untuk ARM dan papan tempat memotong roti sisanya. Referensi atau skema komponen minimum akan sangat dihargai.

Apakah ada sumber daya yang baik untuk menentukan komponen minimum yang diperlukan untuk beroperasi, dan idealnya memprogram, chip ARM?

MEMPERBARUI:

Saya terbuka untuk saran perangkat keras alternatif. Di bawah ini adalah chip yang saat ini saya coba kerjakan:

ZnArK
sumber
7
Bisakah Anda memberi tahu kami perangkat mana yang Anda miliki? Tautan ke lembar data akan sangat bagus.
stevenvh
Saya harap ini bukan paket WLCSP yang ingin Anda etsa PCB Anda sendiri untuk: BGA pitch 0,4 mm! : - /
stevenvh
@stevenvh aku tidak seberani itu. Ini adalah paket LQFP 144
ZnArK
1
Periksa seri NXP LPC, mereka (semua?) Memiliki bootloader serial terpasang. lpc21isp adalah alat sisi-pc yang bagus. LPC1114 bahkan tersedia di DIP28! Lpc1343 memiliki bootloader usb (!) Buokt-in (yang terdengar bagus, tetapi agak rumit untuk menggunakan IMO).
Wouter van Ooijen
1
@Wouter - Ya, saya juga menemukan DIP itu (lihat jawaban). LPC1114 adalah satu-satunya Cortex - apa pun pabrikan yang terdaftar di Digikey yang tersedia di DIP.
stevenvh

Jawaban:

9

Ini sangat tergantung pada chip yang Anda gunakan - Anda tidak menentukan yang mana yang Anda dapatkan. Biasanya Anda akan memerlukan setidaknya kristal, topi decoupling dan reset logika. Antarmuka pemrograman mungkin antarmuka JTAG sederhana.

Tetapi semua ini harus dinyatakan dalam lembar data chip.

Pembaruan (untuk STM32F407):

Lihatlah halaman-halaman berikut dalam lembar data

  • 23ff. untuk voltase yang dibutuhkan (1.8-3.6V, jadi Anda memerlukan regulator), dan cara menggunakan regulator internal (dengan menarik pin PDR_ON tinggi)
  • 69ff. untuk pinouts
  • 69 + 74 untuk skema catu daya (ini adalah halaman yang paling menarik karena menunjukkan koneksi catu daya dan kapasitor yang diperlukan)

Anda tidak akan memerlukan rangkaian reset (ini terintegrasi - lihat halaman 23) atau osilator (osilator 16MHz terintegrasi dipilih saat startup, lihat halaman 22). Jadi menggunakan papan breakout LQFP144 (seperti yang dari futurlec (lihat bagian bawah halaman) mungkin benar-benar cukup.

Anda juga dapat melihat skema papan STM32F4DISCOVERY (lihat buku panduan pengguna , halaman 33. Apa yang Anda lihat di sini adalah sirkuit dasar - dan bahkan berisi kristal eksternal.

hli
sumber
Terima kasih atas masukan Anda. Saya mengajukan pertanyaan ini karena datasheetnya besar dan terus terang saya tidak mengerti semua yang ada di dalamnya. Saya tahu solusi sebenarnya adalah untuk mendapatkan gelar EE tetapi karier saya saat ini dan tanggung jawab lainnya tidak memungkinkan hal ini sekarang. Apakah ada proyek perangkat keras terbuka yang akan memiliki skema rangkaian ARM mereka. Saya yakin saya bisa memilih itu dan membuat proyek yang dapat digunakan.
ZnArK
1
Papan demo STM yang ditautkan di atas dilengkapi dengan skema, sehingga Anda dapat mulai dengan ini. Kalau tidak, Olimex membuka skema mereka, misalnya untuk board M4 ini .
hli
Saya tidak menyadarinya. Terimakasih atas infonya. Sangat membantu,
ZnArK
10

Anda yakin ingin melakukan ini untuk Cortex-M4? Ini adalah lompatan besar dari AVR, dan saya tidak melihat bagaimana Anda akan menggunakan semua fitur yang disediakannya. Untuk memulai dengan Cortex-M4 biasanya datang dalam paket besar, biasanya lebih dari 80 pin untuk bagian entry level, dan 200+ tidak terkecuali, pikirkan QFP atau BGA. Apakah akan membuat papan breakout dengan dua baris 40 pin ke papan tempat memotong roti?

Cortex-M4 juga dirancang untuk kecepatan tinggi: 120 MHz hingga 200+ MHz. OK, Anda mungkin tidak perlu mendesain PCB untuk kecepatan itu jika Anda menggunakan PLL on-chip. Tetapi bagaimana dengan peripheral, seperti USB atau Ethernet?

Tentu saja Anda dapat menjalankannya pada kecepatan yang lebih rendah, dan meninggalkan banyak fungsi on-chip, tapi saya ingin tahu apa penggunaan Cortex-M4 sebagai permulaan. Saya pikir Cortex-M3 atau bahkan -M0 lebih tepat untuk memulai. Saya tidak ingin mengecewakan Anda, saya ingin tetap realistis.

Jika Anda tidak ingin pergi ke depan dengan Cortex-M4 yang dapat Anda lakukan dengan hardware eksternal minimal. NXP LPC407x misalnya memiliki osilator RC internal yang merupakan osilator default saat reset, sehingga Anda bahkan tidak memerlukan kristal. Sirkuit reset dan decoupling catu daya yang tepat akan menjadi semua yang Anda butuhkan untuk menjalankannya.

Untuk Cortex-M0, NXP LPC111x mungkin layak untuk dilihat. Memang, itu tidak datang dengan banyak memori, tetapi tersedia dalam paket DIL-28 , yang jarang untuk ARM. Atau Anda dapat menggunakan papan pengembangan seperti LPCXpresso ,

masukkan deskripsi gambar di sini

di mana bagian kanan adalah papan aplikasi, yang dapat dipisahkan dari tautan-LPC. Seperti yang Anda lihat, hampir tidak ada perangkat keras eksternal yang diperlukan untuk aplikasi tersebut. Dan jika Anda menyolder satu set header di atasnya, Anda dapat menancapkannya ke papan tempat memotong roti.

stevenvh
sumber
Umpan balik yang bagus. Saya tidak sulit menggunakan Cortex-M4. Saya akan melihat model M3 / M0. Saya akan memeriksa chip yang tepat dan paket yang saya miliki dan memperbarui pertanyaan.
ZnArK
1
Saya telah melakukan lompatan dari PIC18s ke LPC2100s (ini pada 2008, sekarang ARM7 digantikan oleh Cortex-M3). Itu adalah lompatan besar dalam kinerja, tetapi itu bukan lompatan besar dalam kompleksitas perangkat keras di tingkat papan.
Nick Alexeev
1
@Nick - Saya menggunakan beberapa bagian LPC2000 juga, tapi seperti yang Anda katakan mereka digantikan oleh Cortex-M3. Cortex-M4 adalah liga yang berbeda.
stevenvh
8

Seperti yang dikatakan Steven, ini adalah lompatan yang cukup besar untuk ARM dari mikro 8-bit, jadi harapkan sedikit pembelajaran / waktu yang dihabiskan dalam perjalanan.
Saya juga tidak akan menggunakan M4 untuk ARM pertama Anda, hanya karena belum terlalu lama dan ada sedikit dukungan / info untuk itu. Saya pikir M3 atau M0 adalah pilihan yang lebih baik, dan akan banyak untuk melanjutkan.

Anda tentu dapat membuat papan Anda sendiri, tetapi mungkin akan lebih baik untuk mengambil papan dev kecil / murah terlebih dahulu. Dari segi pengembangan, ada banyak pilihan, dari yang gratis (gerhana + GCC + OpenOCD) hingga yang mahal (Keil, Rowley, dll.) Secara pribadi saya menggunakan Raisonance Ride7 IDE dan alat-alat dengan seri STM32 ARM M3 / M4s, yang sedikit lebih murah dari Keil / Rowely tapi cukup bagus.

Lihatlah salah satu papan dev sederhana dari seseorang seperti ST, Olimex, dll. Papan dev ini memiliki skema paling sederhana yang bisa saya temukan, untuk STM32 Cortex-M3.

masukkan deskripsi gambar di sini

Oli Glaser
sumber
Saran bagus. Saya memiliki papan dev di jalan (Stellaris Launchpad) saya berencana membiasakan diri dengan itu sebelum membuat papan saya sendiri. Saya juga memperbarui posting saya dengan informasi perangkat keras.
ZnArK
Perhatikan bahwa papan biaya sekitar 3x sebanyak penawaran ST sendiri.
Chris Stratton
Launchpad terbaru @ChrisStratton TI tersedia dengan harga $ 5 . Mungkin masih tersedia. Harga yang sulit untuk dikalahkan.
ZnArK
@ ChrisStratton - ya, saya menambahkannya untuk skema daripada harga (bahkan tidak memeriksa). Saya memiliki salah satu papan STM32F4 penemuan, mereka memang sangat murah tapi saya pikir itu mungkin membingungkan sedikit dengan semua hal tambahan di sana dan programmer STLink onboard tanpa koneksi JTAG "standar". Namun, dengan harga kurang dari $ 10 (atau apa pun itu sekarang), mungkin layak untuk mengambil salah satunya juga (mungkin versi M3 lebih baik seperti yang disebutkan)
Oli Glaser
Untuk proyek embedded sederhana, saya menemukan 4-pin SWD jauh lebih nyaman daripada jtag. Dalam bentuk asli vendor-lock-in-tools-form mungkin tidak, tetapi ada solusi terbuka untuk berbicara dengan adaptor sekarang.
Chris Stratton
5

The Arduino Karena harus keluar cukup segera:

adruino karena

Chip adalah SAM3X8 Cortex-M3 dari Atmel. Mungkin pantas ditunggu jika Anda sudah terbiasa dengan papan gaya Arduino dan dokumentasi gaya Atmel. Dan karena itu akan menjadi open source untuk memenuhi persyaratan Arduino, Anda tentu saja bisa menggunakan breadboard-duino itu.

tertanam.kyle
sumber
Saran bagus. Saya tahu ini keluar tetapi tidak berpikir untuk menggunakan model ini. Saran bagus.
ZnArK
4

Saya akan merekomendasikan Anda memeriksa Mbed dengan perangkat korteks-m3 dengan beberapa periferal yang bagus, nxp menyediakan kompiler dan banyak perpustakaan dan perpustakaan komunitas, cara yang sangat mudah untuk memprogramnya dan sudah dalam satu paket untuk digunakan pada papan tempat memotong roti. Saya pikir ini akan menjadi cara termudah untuk beralih dari AVR ke ARM.

Kvegaoro
sumber
2

Banyak bagian ST dapat, setidaknya jika tidak menggunakan transceiver USB, menjalankan osilator kecepatan tinggi internal mereka.

Itu pada dasarnya berarti "sirkuit" Anda terdiri dari bypass caps dan beberapa resistor pada hal-hal seperti reset dan sebagai terminasi pada antarmuka SWD.

Papan eval $ 8-10 ST akan memprogram bagian-bagian yang Anda letakkan di papan Anda sendiri di atas bus SWD; ada alat open source untuk mereka juga, sehingga Anda dapat menempatkan operasi pemrograman tepat di Makefile Anda.

Melakukan sesuatu dalam 48 PQFP mungkin akan membuat hidup lebih mudah pada upaya papan pertama Anda. Anda dapat memasang ini tanpa perbesaran (hanya memiliki jalinan halus yang tersedia untuk memperbaiki satu atau dua jembatan yang mungkin Anda buat per sisi), tetapi memiliki pembesar yang tersedia untuk memeriksa pekerjaan Anda akan sangat membantu.

Chris Stratton
sumber
1
$ 8-10 tidak akan menjadi Cortex-M4, kurasa. Bisakah Anda menentukan bagian mana yang Anda pikirkan? Juga untuk paket QFP-48? TIA
stevenvh
1
Cortex M3 ... mereka cenderung membuat setiap versi dalam beberapa paket, yang mana QFP-48 akan menjadi yang paling mudah untuk dikerjakan dengan tangan.
Chris Stratton