Có thể có nhiều cách để lập trình bảng, sử dụng các công cụ khác nhau. Một trong số đó, có vẻ khá dễ dàng là sử dụng ST-Link V2 (google nó) và OpenOCD.
Để cả hai nút nhảy khởi động về "0". Kết nối các chân SWDIO, SWCLK, GND với các chân thích hợp của ST Link. Cấp nguồn cho bảng chú ý xem nó là 5V hay 3.3V. ST-Link thuận tiện có đầu ra 3,3V có thể được sử dụng. Vì bo mạch nhận 5V từ đầu nối USB, không kết nối các chân nguồn khác cùng lúc với cổng USB. Có thể hữu ích khi có một cáp có 4 thiết bị đầu cuối ở phía ST-Link và phân chia các thiết bị đầu cuối 3 + 1 ở phía bảng. Bảng sẽ sáng lên một đèn LED và có thể bắt đầu nhấp nháy với đèn kia, nếu nó được lập trình.
Đã cài đặt OpenOCD, các phiên bản gần đây có thể ít lỗi hơn (ví dụ: ít nhất là 0,9.x hoặc tốt hơn 0,10.x). Các phiên bản cũ hơn, có trong các bản phân phối Linux, có thể có vấn đề với việc đặt lại cấu hình và yêu cầu xử lý các tệp cấu hình.
[tùy chọn] Nếu bạn chạy Linux và không thoải mái khi chạy OpenOCD với quyền root, hãy tạo một tệp /etc/udev/rules.d
có nội dung sau:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", MODE="0664", GROUP="stlink"
Điều này sẽ cho phép các thành viên của stlink
nhóm truy cập vào thiết bị ST-Link. Tạo nhóm này và thêm chính mình vào nó. Bạn có thể sử dụng bất cứ nhóm nào thuận tiện.
Giả sử máy chủ Linux và cài đặt OpenOCD mặc định trên toàn hệ thống, kiểm tra xem kết nối có ổn không, MCU còn sống và OpenOCD có thể nói chuyện với nó:
openocd -f interface/stlink-v2.cfg -f target/stm32f1x_stlink.cfg
Tùy thuộc vào phiên bản OpenOCD, những điều sau đây cũng có thể hoạt động:
openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg
Nếu mọi thứ đều tốt, OpenOCD sẽ in một số thông tin về MCU (điện áp, số điểm ngắt CT, v.v.) và tiếp tục chạy.
Có thể chạy OpenOCD như một daemon và sử dụng telnet để sử dụng nó, nhưng tôi nghĩ sẽ thuận tiện hơn khi khởi động nó mỗi lần. Giả sử bạn có một tệp nhị phân được biên dịch đúng, giả sử blinky.bin
, bạn có thể lập trình nó vào MCU với tập lệnh sau:
OPENOCD="openocd -f interface/stlink-v2.cfg -f target/stm32f1x_stlink.cfg"
$OPENOCD -c "init" -c "reset halt" -c "stm32f1x mass_erase 0" -c "flash write_bank 0 blinky.bin 0" -c "reset run" -c "shutdown"
Lưu ý rằng có tên tệp trong tập lệnh này mà bạn sẽ cần điều chỉnh. Có lẽ là một ý tưởng tốt để bắt đầu với một cái gì đó thực sự đơn giản.
Ở trên chủ yếu giả định Linux là máy chủ lưu trữ, nhưng các bước nên tương tự về mặt khái niệm trong Windows, sau khi cài đặt trình điều khiển và điều chỉnh cách mọi thứ được cài đặt, như đường dẫn, v.v.