Chủ Nhật, 18 tháng 10, 2015

BẮT ĐẦU VỚI VI ĐIỀU KHIỂN STM32

BẮT ĐẦU VỚI VI ĐIỀU KHIỂN STM32 

Khi bắt đầu tìm hiểu về một dòng vi điều khiển mới chắc điều các bạn phải làm đầu tiên là viết một chương trình nháy led đơn giản với nó. Để làm được điều đấy các bạn cần phải biết mình sẽ sử dụng công cụ nào để lập trình và nạp chương trình xuống vi điều khiển. Bài viết sau đây tôi sẽ hướng dẫn các bạn các công cụ các bạn sẽ sử dụng để lập trình dòng vi điều khiển STM32. Ưu điểm lớn nhất của dòng vi điều khiển hãng này so với các hãng khác chắc hẳn các bạn đã biết là về giá thành.
KIT STM32F103C8T6
          

        -  Để lập trình với dòng vi điều khiển STM32 bạn có thể sử dụng IAR hoặc Keil C. Có lẽ với các bạn làm việc với hệ thống nhúng hai phần mềm này đã khá quen thuộc. Trong khuôn khổ bài viết này tôi sẽ hướng dẫn các bạn sử dụng phần mềm Keil C.Đầu tiên các bạn tải Keil C 4.x tại link sau:
http://www.mediafire.com/download/zs8pce23ux5yo6u/MDK_ARM_4.72_%26_HLP.rar
Chắc các bạn đã khá quen thuộc với phần mềm này. Nó được sử dụng để soạn thảo và dịch code sang mã hex. Nó khác với bản sử dụng cho dòng chip 8051 mà các bạn vẫn dùng. Đây là phiên bản sử dụng cho arm.
Sau khi cài đặt xong phần mềm,các bạn Crack nó bằng cách copy file trong thư mục “Rus_font_dll” đến đường dẫn vừa cài đặt và chạy file “FontSubstitutes”. Lúc này Keil C của bạn đã được crack và bạn có thể thoải mái code mà không bị giới hạn về dung lượng.
         - Tiếp theo để việc lập trình trên dòng STM32 được dễ dàng hơn bạn phải download thư viện CMSIS của hãng. Các bạn có thể tìm và download nó tại đây: http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1031?sc=internet/mcu/subclass/1169.jsp
Thư viện này hỗ trợ các hàm để bạn không phải trực tiếp thao tác với các thanh ghi của arm. Sử dụng thư viện này sẽ giảm đi những phức tạp khi lập trình. Trong thư viện gốc có một số file không cần thiết nên tôi đã download về và giữ lại những file cần thiết tạo một thư viện riêng cho mình. Các bạn  có thể download thư viện của tôi tại link sau:
http://www.mediafire.com/download/78jju6b5gmzubzf/Mylib.rar
Trong thư viện của tôi được chia ra là 2 folder :
·        CMSIS: chứa các file chứa các hàm cấu hình nhân arm của vi điều khiển như, các file định nghĩa các thanh ghi…
·        STM32F10x_StdPeriph_Driver_a: thư mục này chứa thư viện ngoại vi của vi điều khiển bao gồm các file *.c và *.h phục vụ cho việc cấu hình: timer, ngắt, DMA, ngoại vi…
·        File “start-up”: Mỗi dòng arm sử dụng một file stm32 riêng. Con STM32F103C8T6 mà tôi sắp sửa hướng dẫn các bạn dưới đâu thuộc dòng stm32f103_md nên nó sử dụng file startup “startup_stm32f10x_md.s”
           - Phần mềm nạp chip: STM32 có hỗ trợ 2 chuẩn nạp của nhà sản xuất JTAG, SWD một số loại mạch nạp thông dụng như J-LINK, ST-LINK, U-LINK. Tùy vào loại mạch nạp bạn sử dụng mà bạn có thể nạp chịp trực tiếp từ Keil C hoặc phải dùng phần mềm khác. Tôi thường dùng mạch nạp ST-LINK 2 bởi vì nó rẻ hơn so với các mạch nạp còn lại (khoảng 150k) và nó có thể dùng chung cho dòng chip STM8.
Mạch nạp STM32



    Để dùng mạch nạp chip này bạn phải dụng thêm phần mềm sau:
·        Đầu tiên là driver cho mạch nạp: http://www.mediafire.com/download/3npz6mpbusb2qmn/st-link_v2_usbdriver.zip
·        Tiếp đến là phần mềm để nạp code: http://www.mediafire.com/download/hdqtwipujlilg0a/STM32_ST-LINK_Utility_v3.6.0.exe
Bên cạnh những chuẩn nạp chip mà nhà sản xuất hỗ trợ bạn có thể nạp chip bằng bootloader (tức nạp chip qua cổng UART) . Phương pháp này bạn chỉ cần thêm 1 mạch chuyển đổi USB to TTL 232 như hình sau:
Bộ chuyển đổi USB to TTL

Giá của nó trên thị trường khoảng 50k. Khi sử dụng phương pháp nạp chip này bạn cần thêm phần mềm:
http://www.mediafire.com/download/ccgr2czxkwaoavp/Flash_Loader_Demonstrator_v2.5.0_Setup.exe
Tuy nạp theo kiểu này giá thành rẻ nhưng việc nạp này rất mất thời gian vì bạn luôn phải chuyển đổi giữa hai chế độ nạp và chạy bằng cách thay đổi trạng thái trên hai chân BOOT 0 và BOOT 1 (trên các kit thường dùng switch để thay đổi giữa hai chế độ này). Hơn thế với trường hợp kích cỡ của code hơi lớn bạn sẽ cảm nhận được sự ì ạch khi nạp chip theo chuẩn này.
Như vậy bạn đã có đầy đủ các công cụ cần thiết để lập trình STM32. Hãy theo dõi blog và chờ những bài viết tiếp theo.

2 nhận xét:

Em chào admin. Em cũng là sinh viên Đại học Bách Khoa Hà Nội, em khoá K62. Em muốn học và tìm hiểu về dòng vi điều khiển STM32 thì không biết anh có lời khuyên hay lộ trình hay cách thức học như thế nào không ạ. Mong anh chỉ giáo em với ạ. Em cám ơn anh

Điều trị tắc tia sữa ở Bình Dương uy tín
Tại Bình Dương, Phòng khám Đa khoa Phương Nam là địa chỉ thông tắc tia sữa uy tín mà các mẹ có thể lựa chọn cho mình. Bởi tại đây hội tụ đầy đủ các y bác sĩ chuyên khoa tay nghề cao có thể giúp các mẹ điều trị tắc sữa nhanh chóng và chuyên nghiệp.>>>Tư vấn bạn chọn địa chỉ trị tắc tia sữa uy tín ??

Đăng nhận xét