Chọn một kết nối gỡ lỗi/lập trình cho vi điều khiển

Tóm tắt TL;DR: cho ARM SWD, TI Spy-Bi-Wire, hoặc Microchip ICD, sử dụng bản mẫu Tag-Connect Không Chân với các bố trí chân/pad tiêu chuẩn, và sử dụng cáp Tag-Connect.

Khi thiết kế thiết bị sử dụng vi điều khiển, cần phải cung cấp một kết nối gỡ lỗi và lập trình. Điều này có thể chỉ được sử dụng cho việc phát triển, khi viết và gỡ lỗi phần mềm, hoặc cũng có thể được giữ lại trong các đơn vị sản xuất, để lập trình trong nhà máy.

Các nhà sản xuất và nhà sản xuất công cụ đã đảm bảo rằng chúng ta sống trong một thế giới có nhiều loại kết nối gỡ lỗi với nhiều sự nhầm lẫn xung quanh chúng. Đây là lý do tại sao chúng ta kết thúc với điều này:

Vậy, nên chọn loại kết nối nào cho thiết kế mới?

Bài viết này chủ yếu tập trung vào các thiết bị ARM có giao diện SWD (Single-Wire Debug), nhưng cũng áp dụng cho các linh kiện khác, như Texas Instruments MSP430 sử dụng giao thức Spy Bi-Wire (JTAG 2 dây), Microchip ICD, hoặc thậm chí các linh kiện cần một bộ đầy đủ hơn các chân JTAG.

Các kết nối gỡ lỗi phổ biến

Một số lựa chọn phổ biến thường được xem xét:

  • Kết nối JTAG 10 chân trên một tiêu đề IDC 0.1". Thông thường, một tiêu đề nam được sử dụng. Nhược điểm: nó rất lớn, và tiêu đề tốn tiền.
  • Kết nối gỡ lỗi Cortex sử dụng tiêu đề micro 0.05" (10 chân hoặc 20 chân, Samtec FTSH-110 và FTSH-105). Kết nối 10 chân khá nhỏ và có sẵn dưới dạng linh kiện SMD, nhưng đắt hơn so với các kết nối IDC.
  • Kết nối IDC 20 chân 0.1". Bạn không nghiêm túc khi xem xét con khủng long đó, phải không? Nó lớn hơn một số bảng mạch tôi đã thiết kế.
  • Bộ tùy chỉnh 4 hoặc 6 chân (hoặc vias, hoặc miếng đồng). Vấn đề ở đây là phần "tùy chỉnh". Nó sẽ không thể tránh khỏi quay lại cắn bạn trong tương lai, ngày mà kết nối tùy chỉnh của bạn bị hỏng trên sàn nhà máy và bạn phải vận chuyển một cái mới từ nước ngoài, trong khi sản xuất bị tạm dừng.
  • Dấu chân Tag-Connect 6 chân trong một trong các biến thể (có chân hoặc không chân). Lưu ý rằng ở đây không có kết nối: chỉ là một dấu chân tiêu chuẩn trên PCB.
  • Tag-Connect 6 chân + Tag-Connect 10 chân (cho tín hiệu ETM): đối với sự kết hợp này, thậm chí còn có một cáp được xây dựng sẵn, với một kết nối IDC 20 chân và các bổn phận chân tiêu chuẩn ARM Cortex 20 chân.

Một quan sát ngay lập tức là hầu hết các bộ kết nối này đều yêu cầu, chà, các bộ kết nối. Đó là một thành phần bổ sung mà bạn cần đặt trên bảng mạch, chi phí tiền. Đối với các đơn vị sản xuất hoặc các lần chạy nguyên mẫu lớn hơn, bộ kết nối đó chỉ được sử dụng một lần trong suốt vòng đời của sản phẩm, đó là một sự lãng phí.

Giải pháp Tag-Connect hoặc các bản mẫu tùy chỉnh với các kết nối dựa trên pogo-pin có một lợi thế rõ ràng ở chỗ chúng không yêu cầu bất kỳ linh kiện nào được đặt trên PCB, vì vậy chi phí kết nối gỡ lỗi trên mỗi bảng mạch giảm xuống còn 0, điều này rất tuyệt!

Đây là cách một dấu chân Tag-Connect trông như thế nào trên một bảng mạch thực tế:

Và đây là cái cáp với các đầu nối pogo-pins trông như thế nào: Yếu tố thứ hai cần xem xét là kích thước, và yêu cầu không gian trên bảng mạch. Các đối thủ cạnh tranh duy nhất là micro-header 10 chân 0.05" và bản in chân Tag-Connect 6 chân. Micro-header 10 chân thực sự nhỏ hơn một chút theo một hướng, nhưng sự khác biệt không đáng kể. Đây là hình ảnh của micro-header 10 chân 0.05" (cái này từ bảng phát triển Nordic Semiconductor nRF52832, PCA10040):

Chân hoặc Không Chân?

Có hai biến thể của cáp kết nối Tag-Connect: một có "chân" và một không có "chân". Sự khác biệt là gì?

Tag-Connect sử dụng các đầu nối pogo, có lò xo bên trong và đẩy vào PCB. Nếu bạn muốn kết nối ở lại đúng vị trí, bạn phải liên tục áp dụng lực vào nó. Điều này tốt cho việc lập trình nhanh, nơi bạn có thể sử dụng một tay để giữ kết nối tại chỗ và tay kia để khởi chạy công việc lập trình, nhưng không hoạt động tốt lắm cho các phiên gỡ lỗi kéo dài. Đối với điều đó, bản in chân "chân" (và kết nối) hoạt động tốt hơn nhiều. Các chân hoạt động như các kẹp nhỏ, vì vậy một khi bạn chèn kết nối, chúng sẽ bấm vào chỗ và giữ chặt các đầu nối pogo vào bảng mạch, trong thời gian không giới hạn.

Vấn đề với dạng chân "legs" là kích thước của nó: nó đáng kể lớn hơn biến thể "no-legs". Điều tồi tệ hơn, nó cần bốn lỗ lớn trên bảng mạch. Lỗ lớn luôn là một vấn đề: chúng (rõ ràng) cần phải xuyên qua tất cả các lớp, và bạn cần một khu vực không gian xung quanh chúng nữa. Điều này có nghĩa là ảnh hưởng của dạng chân "legs" đối với thiết kế của bạn lớn hơn nhiều so với biến thể "no legs".

Đối với các đơn vị sản xuất, nơi kết nối có thể chỉ được thực hiện một lần trong suốt thời gian sống của sản phẩm, và có thể dễ dàng giữ bằng tay mọi lúc, không có gì phải bàn cãi: bạn chắc chắn ưa thích dạng chân 'không chân', tiết kiệm không gian trên bảng mạch. Nhưng làm thế nào về các mẫu? Một mặt, bạn có thể chấp nhận không gian trên bảng mạch, nhưng mặt khác, bạn không muốn thiết kế lại PCB chỉ vì bạn cần loại bỏ các lỗ trong bản sửa đổi cuối cùng.

May mắn thay, có một giải pháp khác. Tag-Connect bán một loại kẹp giữ nhỏ. Đó là một miếng PCB với ba ổ cắm vừa với các chân của cáp Tag-Connect. Đây không phải là giải pháp hoàn hảo về mặt cơ khí và các kẹp có xu hướng hỏng theo thời gian (chúng cũng cực kỳ dễ mất!), nhưng trên thực tế nó hoạt động khá tốt.

Lời khuyên của tôi là luôn chọn "không chân" và cáp, mua một số kẹp giữ và tiết kiệm không gian trên bảng mạch và thiết kế lại bảng mạch.

Sử dụng một phân công tín hiệu tiêu chuẩn

Tôi đã thấy phần cứng ngoài đời thực, nơi các nhà thiết kế sử dụng một bản mẫu Tag-Connect cho ARM SWD (trên một Cortex-M0), nhưng gán tín hiệu một cách khác nhau. Có lẽ động cơ là để làm mờ giao diện.

Đây không phải là điều tôi khuyến khích: việc che giấu dễ dàng bị phát hiện, và cuối cùng sẽ dẫn đến một dấu chân không tương thích, điều này chắc chắn sẽ gây rắc rối trong tương lai.

Thực Tiễn

Tag-Connect khuyến nghị rằng không nên đặt linh kiện (hoặc dẫn đường) ở mặt đối diện của bản mạch. Mặc dù đó là một lời khuyên tốt, nhưng không phải lúc nào bạn cũng có được sự xa xỉ đó, đặc biệt là trên các bảng mạch nhỏ với các ràng buộc bố trí chặt chẽ.

Như tôi đã phát hiện, bạn có thể thoải mái đặt các linh kiện ở phía bên kia, ngay cả khi bạn sử dụng kẹp giữ để giữ cáp tại chỗ. Tôi sẽ đề xuất sử dụng một miếng cách điện giữa các linh kiện và kẹp giữ, mặc dù, để ngăn chặn bất kỳ sự chạm mạch nào có thể xảy ra (giấy hoạt động tốt). Mặc dù không phải là thực hành được khuyến nghị, nhưng điều này vẫn hoạt động, mặc dù việc cố định bộ kết nối gỡ lỗi trở nên phức tạp hơn một chút.

Dưới đây là ví dụ về một bảng mạch nguyên mẫu (xin lỗi về chất lượng hàn nguyên mẫu) nơi các linh kiện được đặt trong khu vực của bản in chân lớn để gỡ lỗi:

Phê bình

Không phải tất cả đều tốt đẹp với Tag-Connect. Trang web không được tổ chức tốt, vì vậy khó có thể tìm thông tin bạn đang tìm kiếm. Có rất nhiều biến thể được cung cấp, và mặc dù hầu hết mọi người sẽ cần một loại cáp duy nhất, nó không được hiển thị nổi bật. Thật không may, điều này dường như là truyền thống với các công ty sản xuất thiết bị gỡ lỗi và lập trình trong thế giới nhúng.

Lỗi thứ hai tôi có là công ty cung cấp thư viện CAD có thể tải xuống với bản mạch Tag-Connect, nhưng tuyên bố rằng:

Các tệp này được cung cấp 'NHƯ LÀ' và không đảm bảo rằng chúng đầy đủ, không có lỗi hoặc phù hợp để sử dụng. Hãy kiểm tra kỹ các decal đã nhập so với bảng dữ liệu mới nhất được cung cấp trên trang web Tag-Connect (xem bên dưới). Đặc biệt là kiểm tra kích thước lỗ, đánh số chân, và chú ý đặc biệt đến lớp mặt nạ hàn để đảm bảo không có hàn chảy được đặt trên các pad của linh kiện.

Nếu bạn xem trong các tệp ZIP được cung cấp, thường sẽ có một số biến thể footprint cho một CAD nhất định. Tôi nên sử dụng cái nào? Và tại sao đó là trách nhiệm của tôi để xác minh nó?

Tôi nghĩ Tag-Connect nên dọn dẹp thư viện này và cung cấp một bộ các khuôn mẫu được hỗ trợ, ít nhất là cho các gói CAD phổ biến hơn, mà không cần tuyên bố miễn trừ. Nó nên là một phần của giá trị của giải pháp này.

Kết luận

Xét tất cả mọi thứ, Tag-Connect vẫn là giải pháp gỡ lỗi và lập trình tốt nhất có sẵn. Tôi sẽ khuyên bạn nên chuẩn hóa nó và sử dụng nó trong tất cả các thiết kế của mình.

Các bài đăng trên blog trước đó: KiCon 2019 (2019-03-27)
Bài viết trên blog sau: Có gì mới: Tháng 5 năm 2020 (2020-05-16)

PartsBox là một ứng dụng trực tuyến giúp bạn kiểm soát kho linh kiện điện tử, định giá BOM và sản xuất quy mô nhỏ. Nó theo dõi vị trí lưu trữ của các linh kiện, mức kho hiện tại là bao nhiêu, và linh kiện nào được sử dụng trong các dự án/BOM nào.

Chỉ Mục Blog