- Lựa chọn công cụ phát triển phần cứng và phần mềm
- Phát triển STM8S103F3P6
- Lập trình viên STM8S103F3P6
- STM8S103F3P6 IDE và Trình biên dịch
- STM8S với Arduino bằng Sduino
- Tải xuống phần mềm bắt buộc
- Thiết lập trình biên dịch STVD và Cosmic C
- Thư viện ngoại vi tiêu chuẩn cho STM8S103F3P6
- Biên soạn chương trình đầu tiên
- Tải lên mã từ STVD lên bảng phát triển STM8S bằng cách sử dụng ST-Link V2
Các STM8 là một loạt các vi điều khiển 8-bit từ STMicroelectronics mà đã trở thành một lựa chọn phổ biến của vi điều khiển để phát triển sản phẩm tiết kiệm chi phí nhạy cảm. Trước đây tôi đã làm việc với AVR, PIC và một số Vi điều khiển ARM Cortex khác, nhưng chắc chắn trong một số ứng dụng, chúng trở nên quá mức cần thiết và làm tăng chi phí BOM đáng kể. Gần đây, sau khi xé bỏ một vài sản phẩm giá rẻ của Trung Quốc, tôi thấy rằng hầu hết chúng đều có vi điều khiển STM8 bên trong. IC không chỉ rẻ mà còn được tích hợp rất nhiều tính năng và tùy chọn khiến nó phù hợp để sử dụng trong nhiều ứng dụng khác nhau. Ví dụ, STM8S loạt bộ điều khiển (mà chúng ta sẽ tìm hiểu trong loạt bài hướng dẫn này) là một bộ điều khiển đa năng nhưng có những loạt khác như STM8A cho Thiết kế Ô tô và STM8L cho các thiết kế chạy bằng pin Công suất thấp giúp mở rộng ứng dụng của các bộ điều khiển này.
Trong loạt bài hướng dẫn này, chúng ta sẽ tìm hiểu cách lập trình vi điều khiển STM8S, cụ thể hơn là STM8S103F3P6. Lý do để bắt đầu với số bộ phận cụ thể này là vì giá cả so với yếu tố hiệu suất của nó. Giống!! chỉ cần nhìn vào nó chỉ với 0,25 đô la (khoảng 20 Rupee), chúng tôi nhận được một bộ vi điều khiển 8 bit với Bộ dao động nội bộ 16Mhz, 8kB Flash, 10 bit ADC, UART, SPI và I2C. Ai sẽ không bị hấp dẫn? Ngoài ra, STM8S103F3P6 cũng phổ biến rộng rãi và do đó là người mới bắt đầu, bạn sẽ tìm thấy đủ hỗ trợ nếu cần trợ giúp ngoài các hướng dẫn. Bắt đầu từ phần này, chúng ta sẽ có một chuỗi các hướng dẫn, tương tự như Hướng dẫn lập trình PIC, nơi chúng ta sẽ học cách lập trình bộ điều khiển này từ một cái nháy mắt cơ bản đến các giao diện hiển thị và cảm biến khác nhau. Bạn cũng có thể xem Hướng dẫn STM32F103C8 và các dự án nếu bạn quan tâm đến Bộ vi điều khiển STM 32-bit.
Lựa chọn công cụ phát triển phần cứng và phần mềm
Bây giờ chúng ta đã hủy diệt bộ vi điều khiển, chúng ta sẽ phải chọn các công cụ phát triển phần cứng và phần mềm để bắt đầu quá trình học tập của mình. Có rất nhiều tùy chọn, ở đây tôi đã chọn những cái miễn phí để sử dụng và dễ dàng cung cấp cho mọi người.
Phát triển STM8S103F3P6
Bảng phát triển chính thức cho Vi điều khiển 8-bit của ST được gọi là bộ STM8 Discovery, nhưng chúng tôi sẽ sử dụng một bảng phát triển giá rẻ khác mà bạn có thể dễ dàng tìm thấy với nhà cung cấp địa phương hoặc trên cửa hàng trực tuyến. Hình ảnh của bo mạch Phát triển STM8S103F3P6 mà chúng tôi sẽ sử dụng trong hướng dẫn này được hiển thị bên dưới.
Bo mạch chỉ bao gồm các thành phần tối thiểu cần thiết để bắt đầu phát triển. Nó thân thiện với breadboard và thích hợp cho các ứng dụng nhỏ gọn. Sơ đồ mạch bên trong cho bảng phát triển được hiển thị bên dưới.
Để ý kỹ hơn, bạn sẽ nhận thấy, ngoài bộ điều khiển STM8S103F3p6, chúng ta có một nút reset để thiết lập lại bộ điều khiển. Một đèn led nguồn và một đèn led kiểm tra được kết nối với PB5 (Cổng B chân 5) và một bộ điều chỉnh điện áp AMS1117 giúp chuyển đổi 5V từ cổng USB thành 3,3V cho bộ điều khiển. Bộ điều khiển cũng có thể được thực hiện để hoạt động trên 5V nếu được yêu cầu. Các phần khác nhau trên bộ điều khiển được đánh dấu bên dưới. Chúng tôi cũng có 4 chân lập trình là 3.3V, GND, SWIM và NRST có thể được sử dụng để dễ dàng lập trình và gỡ lỗi bộ vi điều khiển của chúng tôi.
Lập trình viên STM8S103F3P6
Để lập trình bộ điều khiển của chúng tôi, chúng tôi sẽ sử dụng ST-LINK v2 rẻ và dễ dàng có sẵn trực tuyến. Có nhiều biến thể (kim loại, nhựa, vàng, hồng, bảng trần) của bảng ST-LINK v2 này và tất cả đều phục vụ cùng một mục đích. Của tôi được hiển thị bên dưới nhưng bạn có thể sử dụng bất kỳ loại lập trình ST-LINK nào, sơ đồ chân sẽ khác nhau, vì vậy chỉ cần đảm bảo bạn đọc sơ đồ chân trên vỏ một cách chính xác. Ngoài ra còn có ST-LINK V3 từ chính ST-Microelectronics có thể được sử dụng để gỡ lỗi nghiêm trọng. Chúng tôi sẽ không sử dụng nó bây giờ vì nó hơi đắt, chúng tôi sẽ tiết kiệm nó cho tương lai.
STM8S103F3P6 IDE và Trình biên dịch
Việc chọn đúng IDE và Trình biên dịch cho STM8S103F3P6 là một sự phức tạp, đơn giản vì có rất nhiều tùy chọn để lựa chọn. Các công cụ chính thức có sẵn cho Vi điều khiển STM8 được hiển thị trong hình ảnh bên dưới.
Về mặt Cấu hình, chúng tôi có STM8CubeMx, tôi đã thử phần mềm và nó hoàn toàn khiến tôi thất vọng. Không giống như STM32Cube, STM8Cube không thể tự động tạo mã. Nó chỉ có thể tạo ánh xạ pin cho mục đích trực quan hóa và có thể hữu ích nếu bạn đang chuyển mã của mình từ bộ điều khiển này sang bộ điều khiển khác. Ngoài ra, tôi sẽ không sử dụng nó. Vì vậy, trong loạt bài hướng dẫn này, chúng tôi sẽ không sử dụng nó.
Đối với IDE và Trình biên dịch, chúng ta có rất nhiều tùy chọn để lựa chọn. Hai lựa chọn hàng đầu cho IDE là IAR workbench và ST Visual Develop (STVD), cả hai phần mềm này đều cho cảm giác như chúng có từ những năm 90 nhưng sau một thời gian chơi với nó, tôi thấy STVD là một lựa chọn tốt chỉ vì nó hoàn toàn miễn phí. Tương tự, đối với Trình biên dịch, chúng tôi sẽ sử dụng Trình biên dịch Cosmic C, một lần nữa chỉ vì nó hoàn toàn miễn phí. Một lý do khác để chọn IDE và Trình biên dịch này là khi chúng ta đã làm quen với môi trường, sẽ dễ dàng sử dụng bất kỳ Vi điều khiển 8-bit nào khác từ ST mà không cần nỗ lực nhiều. Chúng ta sẽ đi sâu vào cách cài đặt và thiết lập STVD với trình biên dịch Cosmic C ở phần sau của bài viết này.
Đối với Flashing, chúng ta sẽ sử dụng ST Visual Programmer (STVP), công cụ này sẽ tự động được cài đặt khi chúng ta cài đặt STVD. Nó sẽ được tích hợp trong chính IDE, giúp chúng ta lập trình và gỡ lỗi nhanh chóng. Phần mềm cuối cùng sẽ là STMStudio, một phần mềm Giám sát STM8. Phần mềm có thể giúp gỡ lỗi thời gian thực của STM8 và có một số tính năng thú vị như giám sát giá trị biến, vẽ biểu đồ, v.v. Tôi chưa thử nghiệm đủ với phần mềm này. Và, ít nhất là trong một vài hướng dẫn đầu tiên, chúng tôi sẽ không sử dụng phần mềm này vì chúng tôi sẽ không cần các yêu cầu gỡ lỗi lớn.
Thư viện Ngoại vi Chuẩn STM8S: ST Microelectronics cung cấp một tập hợp các thư viện để giúp phát triển mã dễ dàng hơn cho các Bộ vi điều khiển STM8S, thư viện này được gọi là “ Thư viện Ngoại vi Chuẩn ” hay viết tắt là SPL. Thư viện rất tuyệt, ngoại trừ việc nó được viết bằng cách ghi nhớ tất cả các bộ điều khiển có thể có trong họ STM8S / A 8-bit chứ không chỉ bộ điều khiển STM8S103F3P6 mà chúng ta sẽ sử dụng. Do đó, chúng tôi phải thực hiện một số chỉnh sửa ở đây và ở đó để làm cho nó hoạt động (mà tôi sẽ chia sẻ sau). Tuy nhiên, tôi tin rằng nó đáng để thử vì nó có thể giúp phát triển rất nhanh và do đó, chúng tôi sẽ sử dụng nó trong hướng dẫn của mình.
Nếu bạn không muốn sử dụng thư viện, bạn phải truy cập trực tiếp vào thanh ghi của bộ điều khiển hoặc lập trình lắp ráp kim loại trần. Cả hai điều này đều thú vị, miễn là bạn có thời gian để tìm hiểu và sử dụng nó. Ý tưởng của tôi là sử dụng thư viện SPL ở bất cứ nơi nào nó hoạt động tốt và sau đó cũng hoạt động ở mức đăng ký và lắp ráp nếu được yêu cầu. Chúng ta hãy cố gắng không phát minh lại bánh xe!
STM8S với Arduino bằng Sduino
Thảo luận về các tùy chọn phần mềm sẽ không bao giờ hoàn thành nếu tôi không đề cập đến hỗ trợ Arduino IDE STM8S. Có, cùng một bảng STM8S103F3P6 có thể được lập trình trực tiếp từ Arduino IDE bằng Sduino, nhờ Michael Mayer. Tuy nhiên, dự án vẫn đang trong giai đoạn phát triển và có thể sẽ mất một thời gian và sự hỗ trợ của cộng đồng để Sduino cung cấp hỗ trợ nền tảng hoàn chỉnh. Tuy nhiên, chỉ trong vòng vài phút chơi với Sduino, tôi bắt đầu thích nó và do đó tôi quyết định làm một bài viết riêng về cách lập trình Vi điều khiển STM8S với Arduino. Tôi sẽ liên kết bài viết ở đây khi nó đã sẵn sàng. Bài viết đó sẽ thảo luận tại sao và tại sao bạn không nên sử dụng Arduino IDE để lập trình Vi điều khiển STM8S của mình.
Vì vậy, đây là những lựa chọn của tôi cho Phần mềm và Phần cứng, hãy cho tôi biết trong phần bình luận nếu bạn nghĩ rằng một số phần mềm khác sẽ là lựa chọn tốt hơn và tại sao. Tôi cũng muốn khám phá các tùy chọn khác.
Tải xuống phần mềm bắt buộc
Bây giờ chúng ta đã quyết định về phần mềm sẽ sử dụng cho hướng dẫn này, hãy tiếp tục và tải chúng xuống bằng liên kết sau. Tất cả các phần mềm đều miễn phí để tải xuống và sử dụng, bạn chỉ cần đăng ký một tài khoản miễn phí trên ST và Cosmic nếu chưa có.
- ST Visual Develop (STVD)
- Trình biên dịch Cosmic C
- Thư viện ngoại vi tiêu chuẩn
- STM8Cube Mx (Tùy chọn)
- STMStudio cho STM8 (Tùy chọn)
Thiết lập trình biên dịch STVD và Cosmic C
Sau khi bạn đã tải xuống cả hai phần mềm, chỉ cần làm theo hướng dẫn trên màn hình để cài đặt chúng. Tôi khuyên bạn nên để chúng ở các thư mục mặc định để tránh nhầm lẫn sau này. STVD IDE sẽ cài đặt mà không cần nỗ lực. Đối với trình biên dịch Cosmic C, bạn phải có khóa cấp phép miễn phí trong quá trình cài đặt. Bạn chỉ cần cung cấp thông tin công ty với E-mail ID, nếu bạn là sinh viên, chỉ cần đề cập đến điều đó. Các quy trình nhận khóa cấp phép là tức thời và tự động, mặc dù hướng dẫn thiết lập nói rằng có thể mất một hoặc hai ngày, tôi đã nhận được khóa cấp phép tự động trên ID E-Mail của mình ngay sau khi tôi gửi nó, chỉ cần đảm bảo rằng bạn kiểm tra SPAM. E-Mail Xác nhận của tôi được hiển thị bên dưới.
Theo hướng dẫn E-mail, chỉ cần sao chép tệp license.lic và dán vào thư mục con “giấy phép” trong thư mục cài đặt của bạn. Đối với tôi, đường dẫn là “C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8 \ License” . Chỉ cần dán tệp vào vị trí như hình dưới đây.
Thư viện ngoại vi tiêu chuẩn cho STM8S103F3P6
Như đã nói trước đó, ST Microelectronics cung cấp các Thư viện được gọi là SPL có thể được sử dụng cho tất cả các Bộ vi điều khiển STM8S / A 8-bit. Bạn có thể tải xuống SPL gốc từ ST Microelectronics và thực hiện các thay đổi cần thiết hoặc tải xuống các thư viện SPL STM8S103F3P6 của tôi và sử dụng chúng như vậy. Tôi muốn giới thiệu sau này.
SPL gốc từ ST Microelectronics
STM8S103F3P6 SPL
Trong khi bạn ở đó, hãy đảm bảo tải xuống Hướng dẫn sử dụng SPL, sẽ rất hữu ích khi lập trình bộ điều khiển.
Biên soạn chương trình đầu tiên
Bây giờ mọi thứ đã sẵn sàng, hãy thử biên dịch chương trình đầu tiên của chúng tôi để kiểm tra xem IDE, Trình biên dịch và Thư viện có đang hoạt động theo cách mà chúng cần hay không. Bạn cũng có thể xem video ở cuối trang để được hướng dẫn chi tiết.
Bắt đầu bằng cách mở STVD và chọn Tệp -> Không gian làm việc, trong cửa sổ bật lên, chọn “Không gian làm việc mới” và nhập tên Dự án và đường dẫn nơi chương trình sẽ được lưu. Tôi đang đặt tên chương trình của mình là BareMinimum và lưu nó trong một thư mục trên màn hình nền. Nhấn OK và bạn sẽ nhận được hộp thoại New Project như hình dưới đây.
Tôi lại đặt tên dự án là bareminimum và trong chuỗi công cụ, chúng tôi phải chỉ định gốc chuỗi công cụ cho đường dẫn nơi trình biên dịch STM8 Cosmic được cài đặt. Địa chỉ đường dẫn mặc định là “C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8” . Sau đó, chỉ cần nhấp vào OK để có cửa sổ “Lựa chọn MCU”.
Tìm kiếm STM8S103F3P và chọn nó và bấm OK. Thao tác này sẽ mở ra một dự án mới cho STM8S103F3P trên STVD, các cửa sổ sẽ trông như thế này khi hoàn tất.
Nhấp chuột phải vào “tệp nguồn” và chọn “Thêm tệp vào thư mục” để bao gồm tất cả các tệp c từ thư viện SPL của chúng tôi, tương tự nhấp chuột phải vào Bao gồm tệp để bao gồm tất cả các tệp tiêu đề. Mọi thắc mắc bạn có thể tham khảo video bên dưới. Khi tất cả các tệp được thêm vào, hãy nhấp vào Xây dựng -> xây dựng lại tất cả và sau đó Biên dịch để kiểm tra xem trình biên dịch và SPL có hoạt động như mong đợi hay không. Nếu mọi thứ suôn sẻ, bạn sẽ thấy màn hình sau với lỗi kết quả xây dựng 0 và cảnh báo 0.
Với điều này được thực hiện, bây giờ chúng tôi có thể chắc chắn rằng tất cả các thư viện SPL của chúng tôi đang hoạt động với trình biên dịch Cosmic và STVD. Đây là quy trình tiêu chuẩn mà chúng tôi sẽ tuân theo cho mọi dự án mới. Bạn cũng có thể chỉ bao gồm các tệp tiêu đề và nguồn cần thiết cho dự án để giảm thời gian xây dựng nếu được yêu cầu.
Tải lên mã từ STVD lên bảng phát triển STM8S bằng cách sử dụng ST-Link V2
Kết nối ST-Link V2 với bảng phát triển như hình dưới đây.
Các kết nối khá thẳng về phía trước và phần tốt nhất là bạn không cần các thành phần bên ngoài. Thiết lập phần cứng của tôi để lập trình được hiển thị bên dưới, tôi vừa sử dụng các dây tiêu đề cái để tạo kết nối. Tuy nhiên, hãy lưu ý rằng sơ đồ chân của ST-Link của bạn có thể khác với sơ đồ của tôi, hãy đảm bảo làm theo sơ đồ chân trên thiết bị trước khi thực hiện kết nối.
Thực hiện kết nối và kết nối thiết bị với máy tính của bạn, quá trình cài đặt trình điều khiển sẽ tự động bắt đầu. Bạn có thể sử dụng trình quản lý thiết bị để đảm bảo máy tính của bạn có phát hiện đúng ST-LINK V2 hay không. Bạn cũng sẽ nhận thấy đèn LED kiểm tra trên bảng nhấp nháy nếu đây là lần đầu tiên cấp nguồn cho bảng. Ngay sau khi chúng tôi đã biên dịch thành công mã trên STVD, chúng tôi sẽ nhận được một tệp Extention “S19” trong thư mục gỡ lỗi của thư mục dự án. Tệp S19 của tôi được hiển thị bên dưới.
S19 này giống như tệp Hex cần được tải lên bộ điều khiển. Để tải lên chương trình, hãy mở ST Visual Programmer (STVP) mà lẽ ra phải cài đặt cùng với STVD. Sau đó trong cửa sổ cấu hình, chọn như trong hình dưới đây và nhấn OK.
Sau đó nhấp vào Tệp-> Mở và điều hướng đến tệp S19 mà chúng tôi đã hiển thị trước đó. Sau đó, để flash thiết bị, hãy làm theo Chương trình -> Tab Hiện tại . Nếu quá trình nhấp nháy thành công, bạn sẽ thấy kết quả sau.
Theo mặc định, khi bạn mua STM8S, nó sẽ có chương trình nhấp nháy làm nhấp nháy đèn LED kiểm tra. Bây giờ sau khi tải lên mã trống này, đèn LED sẽ không còn nhấp nháy nữa.
Quan trọng: Tôi nhận thấy rằng ST-Link của tôi không tự động đặt lại bảng sau khi lập trình. Tôi đã phải ngắt kết nối và kết nối lại nó để kiểm tra đầu ra của chương trình của mình. Tôi không chắc đây có phải là vấn đề của mọi người hay không, hãy cho tôi biết trong phần bình luận. Ngoài ra, hãy xem video ở dưới cùng giải thích giải pháp cho điều này.
Với điều này, hãy kết thúc hướng dẫn này, chúng ta đã học những kiến thức cơ bản về phần cứng, thiết lập môi trường phát triển và học cách biên dịch và tải lên mã. Bây giờ chúng tôi đã sẵn sàng để phát triển và chúng tôi sẽ sử dụng điều này trong tất cả các hướng dẫn sắp tới của chúng tôi. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trên diễn đàn của chúng tôi và theo dõi để biết thêm !!