- คำอธิบายฮาร์ดแวร์ของบอร์ดพัฒนา STM32 Nucleo 64
- การเขียนโปรแกรมบอร์ดพัฒนา STM32 Nucleo 64
- เริ่มต้นกับ STM32F401
- สรุป
- วิดีโอ
สำหรับคนส่วนใหญ่ที่นั่นบอร์ดพัฒนาแบบฝังตัวแรกที่พวกเขาใช้งานได้ส่วนใหญ่น่าจะเป็น Arduino Board แต่เช่นเดียวกับที่ทุกคนเห็นด้วย Arduino ของคุณอาจพาคุณไปได้จนถึงตอนนี้และสักวันคุณต้องย้ายไปที่แพลตฟอร์มไมโครคอนโทรลเลอร์ กระบวนการนี้สามารถทำได้ง่ายขึ้นมากด้วยบอร์ดพัฒนา STM32นี้เนื่องจากสามารถรองรับ Arduino shields ทั้งหมดเพื่อช่วยคุณในด้านฮาร์ดแวร์และยังมีไลบรารีและฟังก์ชั่นในตัวมากมายที่จะช่วยคุณในด้านซอฟต์แวร์ การทำความคุ้นเคยกับไมโครคอนโทรลเลอร์ STM32 จะช่วยให้คุณสำรวจโมดูลการพัฒนาอื่น ๆ จาก ST เช่น SensorTile.Box ที่เราได้ตรวจสอบก่อนหน้านี้ได้อย่างง่ายดาย ดังนั้นในบทความนี้เรามาดูบอร์ดพัฒนา STM32 Nucleo-64และเรียนรู้วิธีการใช้งานกัน
ขณะนี้มีหลายรุ่นของบอร์ด STM32 ใช้ได้และเป็นหนึ่งในนี้โดยเฉพาะในมือของฉันเรียกว่าSTM32F401 Nucleo-64 ชื่อ STM32 แสดงให้เห็นว่าเรามีไมโครคอนโทรลเลอร์ 32 บิตในคณะกรรมการการพัฒนาของเราและชื่อ Nucleo-64 หมายถึงว่าไมโครคอนโทรลเลอร์มี64 หมุด ในทำนองเดียวกันมีบอร์ด Nucleo 64 เวอร์ชันอื่น ๆ อีกมากมายเช่น STM32F103, STM32F303 เป็นต้น แต่เมื่อคุณเรียนรู้เกี่ยวกับบอร์ดหนึ่งบอร์ดอื่น ๆ ทั้งหมดก็ค่อนข้างคล้ายกัน
คำอธิบายฮาร์ดแวร์ของบอร์ดพัฒนา STM32 Nucleo 64
เริ่มต้นด้วยการแกะกล่องบอร์ดพัฒนาของเรา ดังที่คุณเห็นแพคเกจทั้งหมดประกอบด้วยบอร์ดพัฒนาและการ์ดคำสั่งของเราเท่านั้น การ์ดคำสั่งกล่าวถึงคุณสมบัติของคอนโทรลเลอร์พินเอาต์และที่ด้านหลังเรามีข้อมูลเกี่ยวกับวิธีเริ่มต้นใช้งานและตัวเลือก toolchain ที่มีอยู่
เมื่อพิจารณาดูกระดานอย่างละเอียดเราจะพบว่ากระดานแบ่งออกเป็นสองภูมิภาค ส่วนบนสุดคือดีบักเกอร์ST-Link / V2และโปรแกรมเมอร์ในขณะที่ส่วนล่างคือบอร์ดพัฒนาจริงของคุณ ด้วยวิธีนี้คุณสามารถตั้งโปรแกรมและแก้ปัญหาบอร์ดของคุณได้อย่างง่ายดายเพียงแค่ใช้สาย USB เพิ่มเติมที่สามารถเชื่อมต่อกับพอร์ต USB mini บนบอร์ด
ในรูปลักษณ์แรกกระดานอาจดูเหมือนมีจัมเปอร์และส่วนประกอบมากมาย แต่ทั้งหมดนี้มีไว้เพื่อให้เราง่ายขึ้น จัมเปอร์สองตัวที่คุณพบทั้งสองข้างของบอร์ด CN11 และ CN12 นั้นเป็นจัมเปอร์จำลองจริงๆแล้วจัมเปอร์เหล่านี้สามารถใช้เพื่อวัตถุประสงค์อื่นได้หากจำเป็นในอนาคต จัมเปอร์สองตัวบน CN2 ใช้เพื่อเชื่อมต่อโปรแกรมเมอร์และส่วนดีบักเกอร์กับบอร์ดพัฒนาของเรา ในอนาคตคุณสามารถถอดจัมเปอร์เหล่านี้ออกเพื่อใช้โปรแกรมเมอร์สำหรับไมโครคอนโทรลเลอร์ ST อื่น ๆ ผ่านพินเหล่านี้ และขาขั้วต่อ JP1 นี้สามารถปิดได้เพื่อ จำกัด กระแส USB ไว้ที่ 100mA หากเปิดทิ้งไว้กระแสไฟฟ้าสูงสุดจะเป็น 300mA ตรงนี้เรามีไฟ LED Tricolor (LD1) ซึ่งจะเปิดเป็นสีแดงเมื่อบอร์ดเปิดอยู่และเปลี่ยนเป็นสีเขียวเมื่อตั้งโปรแกรมบอร์ดสำเร็จและจะเปลี่ยนเป็นสีส้มเมื่อมีการสื่อสารล้มเหลว
ย้ายลงไปที่ส่วนการพัฒนาที่เรามีองค์ประกอบที่สำคัญที่สุดของเราที่นี่ที่STM32F401RET6 ไมโครคอนโทรลเลอร์นี่คือไมโครคอนโทรลเลอร์ 64-Pin 32 บิตพร้อมโปรเซสเซอร์ ARM Cortex M4 ที่ทำงานที่ 84MHz นอกจากนี้ยังมีแฟลช 512 Kb และ 96KB SRAM ไมโครคอนโทรลเลอร์มี 10 ตัวจับเวลา 16 บิตและ 32 บิตและ ADC 12 บิตเดียว นอกจากนี้ยังมี USART สามตัว, I2C สามตัว, SPI สี่ตัวและ USB 2.0 หนึ่งตัวสำหรับการสื่อสารภายนอก คุณสามารถตรวจสอบแผ่นข้อมูล STM32F401 เพื่อรับข้อมูลทางเทคนิคเพิ่มเติม
ตอนนี้เป็นส่วนที่น่าสนใจอย่างที่บอกไปก่อนหน้านี้ว่าบอร์ดรองรับ Arduino shieldsทั้งหมด บอร์ดมีขั้วต่อสองชุดหมุดตัวเมียใช้สำหรับโล่ Arduino ซึ่งพอดีกับ ESP8266 Wi-Fi Shield และ Semtech Arduino LoRa Shield ของเราอย่างที่คุณเห็นในภาพด้านล่าง
ตัวผู้อีกตัวเรียกว่าหมุด ST morphoซึ่งสามารถใช้เพื่อใช้หมุดคว้านบนไมโครคอนโทรลเลอร์ 64 พินของเรา จากนั้นเรามีปุ่มรีเซ็ตที่นี่และปุ่มที่ผู้ใช้กำหนดได้ซึ่งเชื่อมต่อกับพิน PC13 และ LED ที่นี่ซึ่งเชื่อมต่อกับพิน D13 เช่นเดียวกับ Arduino ในการจ่ายไฟให้กับบอร์ดเราสามารถใช้พอร์ต USB หรือให้ 5V ที่ควบคุมโดยตรงกับ E5V หรือไปที่ขา 5V อย่าลืมเปลี่ยนจัมเปอร์นี้เพื่อระบุว่าคุณกำลังเปิดบอร์ดอย่างไร U5V แสดงว่าบอร์ดใช้พลังงานจาก USB นอกจากนี้เรายังมีหมุดจัมเปอร์ที่น่าสนใจอีกตัวหนึ่งที่นี่เรียกว่า IDD ซึ่งสามารถใช้วัดปริมาณไมโครคอนโทรลเลอร์ของคุณในปัจจุบันโดยเชื่อมต่อแอมป์มิเตอร์กับพินเหล่านี้
การเขียนโปรแกรมบอร์ดพัฒนา STM32 Nucleo 64
มาถึงส่วนซอฟต์แวร์บอร์ดนี้มีไลบรารีขนาดใหญ่และรองรับการเขียนโปรแกรมและสามารถตั้งโปรแกรมได้โดยใช้Keil, IAR workbenchและ IDE อื่น ๆ อีกมากมาย แต่สิ่งที่น่าสนใจคือรองรับสภาพแวดล้อมการพัฒนาARM MbedและSTM32Cubeเพื่อประโยชน์ของบทความนี้ผมตัดสินใจที่จะใช้แพลตฟอร์ม ARM mbed เพราะมันเป็นเครื่องมือออนไลน์และผมพบว่ามันน่าสนใจมากเพราะคุณสามารถไม่เพียงกระดาน ST ของคุณกับมัน แต่หลายบอร์ดการพัฒนาอื่น ๆ ที่ใช้ไมโครคอนโทรลเลอร์ ARM
สำหรับผู้ที่เป็นมือใหม่ARM MBEDเป็นแพลตฟอร์มการพัฒนาออนไลน์ที่ให้บริการโดย ARM เองและมอบระบบปฏิบัติการฝังตัวบริการคลาวด์และคุณสมบัติด้านความปลอดภัยเพื่อสร้างโซลูชันฝังตัวที่ใช้ IoT เป็นชุมชนโอเพ่นซอร์สขนาดใหญ่และการจะลงรายละเอียดจะต้องมีบทความแยก
เริ่มต้นกับ STM32F401
แต่ในการเริ่มต้นให้ใช้สาย USB mini เพื่อเชื่อมต่อบอร์ดพัฒนา STM32 กับคอมพิวเตอร์ของคุณ เมื่อเปิดเครื่องแล้วคุณจะสังเกตเห็นไฟ LED ของ LD1 และ LD3 สว่างเป็นสีแดงและ LED LD2 ที่ตั้งโปรแกรมได้จะกะพริบเป็นสีเขียวเช่นนี้
คุณจะสังเกตเห็นแฟลชไดรฟ์ใหม่บนคอมพิวเตอร์ของคุณชื่อ“ NODE_F401RE” เปิดขึ้นมาคุณจะพบไฟล์สองไฟล์คือ details.txt และ mbed.htm ดังที่แสดงด้านล่าง
คุณสามารถเปิดไฟล์ Mbed.htm เพื่อเริ่มการเขียนโปรแกรมบอร์ดออนไลน์โดยตรงโดยใช้ arm Mbed แต่ก่อนที่เราจะไปถึงที่นั่นเราได้ติดตั้งไดรเวอร์ที่จำเป็นและสมัครใช้งาน Mbed ค้นหาซอฟต์แวร์ไดรเวอร์ STSW-link009 และดาวน์โหลดโดยตรงจากเว็บไซต์ ST ติดตั้งไดรเวอร์และตรวจสอบว่าอุปกรณ์ถูกค้นพบอย่างถูกต้องในตัวจัดการอุปกรณ์ของคุณดังที่แสดงไว้ที่นี่
กลับไปที่แพลตฟอร์ม mbed ของคุณเพื่อลงทะเบียนบน MBED.com ด้วยข้อมูลประจำตัวของคุณ จากนั้นคลิกที่ไฟล์ MBED.HTM และคุณจะพบกับหน้าต่อไปนี้
เลื่อนลงและคลิกที่“ Open Mbed compiler ” ดังที่คุณเห็นคอมไพเลอร์ได้ยอมรับแพลตฟอร์มของเราแล้วว่าเป็น Nucleo-F401RE และให้โปรแกรมตัวอย่างพื้นฐานมากมายแก่เรา ในตอนนี้ให้ฉันเลือก“ รหัส LED Blinky ” และแก้ไขเพื่อให้ไฟ LED ดับทุกครั้งที่ฉันกดปุ่ม
เมื่อรหัสพร้อมดังที่แสดงด้านล่างคุณสามารถคลิกที่ปุ่มคอมไพล์ซึ่งจะให้ไฟล์ bin เพียงคัดลอกไฟล์ bin แล้ววางลงในแฟลชไดรฟ์เพื่อตั้งโปรแกรมบอร์ดของคุณ คุณจะสังเกตเห็น LED LD1 เปลี่ยนเป็นสีเขียวเมื่อการเขียนโปรแกรมเสร็จสมบูรณ์ ตอนนี้กดปุ่มสีน้ำเงินและคุณจะสังเกตเห็นไฟ LED สีเขียวดับลง เช่นเดียวกับที่คุณสามารถลองใช้โปรแกรมตัวอย่างเพื่อเรียนรู้ฟังก์ชันต่างๆของบอร์ดได้ คุณยังสามารถกลับไปที่หน้าหลักเพื่อรับเอกสารทางเทคนิคอื่น ๆ และการสนับสนุนจากชุมชน
คุณยังสามารถดูวิดีโอที่เชื่อมโยงที่ด้านล่างของหน้านี้เพื่อดูบทวิจารณ์ทั้งหมดบนบอร์ดนี้
สรุป
โดยรวมแล้วฉันเชื่อว่าบอร์ดเหล่านี้เป็นตัวเลือกที่ยอดเยี่ยมหากคุณพยายามเพิ่มระดับทักษะและพัฒนาแอปพลิเคชันขั้นสูง ด้วยการสนับสนุนฮาร์ดแวร์ที่ใช้งานได้จริงและชุมชนออนไลน์เส้นโค้งการเรียนรู้ของบอร์ดเหล่านี้ก็ค่อนข้างง่ายดังนั้นคุณอาจต้องการลองดู ฉันหวังว่าคุณจะสนุกกับบทความนี้และได้เรียนรู้สิ่งที่เป็นประโยชน์จากมัน หากคุณมีคำถามใด ๆ โปรดทิ้งไว้ในส่วนความคิดเห็นด้านล่างหรือใช้ฟอรัมของเราสำหรับคำถามทางเทคนิคอื่น ๆ