Có những lựa chọn nào để lập trình MCU trong sản xuất?


7

Đối với dự án Super OSD của tôi, tôi sẽ cần phải lập trình các lô MCU lớn, có thể khoảng 10-15 bảng mỗi giờ. Tôi chỉ có thể sử dụng PICkit 2 đáng tin cậy của mình để lập trình cho chúng (có hai - có thể ba - trên mỗi bảng) nhưng sẽ rất tốn công khi tải từng tệp (kích thước tối đa 128KB và 256KB), nhấn chương trình và lặp lại cho mỗi MCU, và có lẽ sẽ không cho phép tôi đạt được tốc độ mục tiêu của mình. Ngoài ra, MCU là bề mặt gắn kết, vì vậy tôi phải có các tiêu đề trên bảng để cho phép điều này. Lý tưởng nhất, tôi muốn xóa các tiêu đề này, nhưng nó có thể không phải là một lựa chọn.

Vậy có những lựa chọn nào để lập trình hàng loạt cho MCU - có cách nào nhanh hơn để làm điều đó không? Tôi thuộc loại có ngân sách dưới 100 USD, vì vậy những thứ như MPLAB PM3 của Microchip có giá 895 USD, trong khi tốt, sẽ không phải là một lựa chọn.

Tôi đang làm việc với các loại vi điều khiển PIC thuộc nhiều loại khác nhau. Có PIC16F887, PIC24FJ64GA002 và dsPIC33FJ128GP802. Tuy nhiên, tôi cũng quan tâm đến các tùy chọn cho bộ xử lý AT32 và STM32, vì tôi cũng có thể đang sử dụng chúng.

Xin lưu ý, tôi hiện không xem xét việc đặt hàng chip từ các nhà sản xuất được lập trình sẵn bởi vì phần mềm có thể thay đổi theo thời gian chip đến và do chi phí bổ sung liên quan.


15 bảng mỗi giờ là bốn phút mỗi bảng. PICkit 2 mất bao lâu để lập trình phần của bạn?
đánh dấu

@markrages: Đó là khoảng 20 giây với cơ sở mã nhỏ (~ 6KB). Tôi tưởng tượng với nhiều mã hơn, có thể mất tới một phút rưỡi cho mỗi bảng, điều này không mang lại cho tôi nhiều phòng thở.
Thomas O

3
@Markrages, tôi có thể bảo đảm, tôi đã viết một dự án rất lớn với ICD2 LE và sẽ mất 2 hoặc 3 phút để lập trình. Khá khó chịu. Tuy nhiên, với pickit 3, nó đang hét rất nhanh.
Kortuk

Câu trả lời:


10

Những gì chúng tôi làm cho sản xuất, trước tiên là tải một chương trình vào PIC để kiểm tra bảng (sử dụng một bảng kiểm tra nhỏ xác minh độc lập đường ray 3.3v nằm trong thông số kỹ thuật bằng cách sử dụng một vài bộ so sánh, và sau đó chúng tôi sử dụng ADC trên PIC để kiểm tra mọi thứ khác. Chúng tôi có đủ chân còn lại để cho phép điều này (nó yêu cầu một số điện trở phụ đóng vai trò là bộ chia điện áp cho các điện áp trên 3v).

Sau khi các bài kiểm tra vượt qua, mã sản xuất thực được đưa vào micro. Một số thử nghiệm bổ sung được chạy và PCB đã sẵn sàng để lắp ráp vào vỏ máy.

Tất cả điều này được thực hiện thông qua một chương trình trên PC chỉ yêu cầu người vận hành kết nối bảng, nhấp vào một nút và chờ kết quả PASS / FAIL. Tất cả các kết quả kiểm tra (bao gồm cả bài đọc ADC) được ghi lại. Toàn bộ quá trình (bao gồm cả việc lập trình PIC thông qua ICD 3) được điều khiển thông qua chương trình PC, chạy các tập lệnh bó để thực hiện lập trình thực tế. Việc liên lạc với PIC để kiểm soát các bài kiểm tra được thực hiện thông qua một trong các UART, có các chân được đưa ra bảng thử nghiệm (vì vậy ngoài các chân cần thiết để lập trình, chúng tôi cũng có tối thiểu TX / RX).

Chúng tôi thiết lập một số trạm như thế này tại nhà sản xuất hợp đồng của chúng tôi.

BTW các ICD 3 là nhiều nhanh hơn so với ICD 2 (USB 2.0 vs 1.1).


Pickit 3 cũng chạy ở USB 2.0, đó là lý do tại sao tôi thích nó. ICD3 là một ít tốn kém cho tôi. Công ty tôi sử dụng MSP430 nên khá khác biệt.
Kortuk

Bạn có thể làm rõ cách bạn lập trình IC? ICSP của riêng bạn lên hay gì?
Erik Friesen

@ErikFriesen Tôi sử dụng một ICD 3 hoặc REAL Ice cho PIC Microchip. Cả hai có lẽ là quá đắt đối với hầu hết những người có sở thích (tương ứng $ 200 và $ 500). Các họ chip khác (Freescale, Silicon Labs, v.v.) có dòng lập trình viên riêng. Tôi bao gồm các tiêu đề trên PCB để kết nối với các lập trình viên. Sau khi một thiết bị ra ngoài hiện trường, nếu thiết bị có kết nối không dây (Di động hoặc WiFi), thiết bị có thể được cập nhật qua mạng không dây.
tcrosley

Tôi có cả hai và pm3. Pm3 sẽ không thực hiện tất cả các phần mà không kết nối với máy tính trên> X2.15, nó sẽ tách ra trên dòng pic32.
Erik Friesen

4

PICkit 2 không phải là một lập trình viên sản xuất. Bạn thực sự cần phải có một ICD 3, được phân loại là một lập trình viên sản xuất, nếu bạn muốn chắc chắn rằng các thiết bị đang được lập trình đúng. Ngoài ra, bạn có thể mua chip của mình được lập trình sẵn từ Microchip hoặc nhà phân phối, nếu bạn đã hoàn tất mã.


1
Đây sẽ là cách chính xác để đi về điều này.
Kortuk

Vui lòng cung cấp một trích dẫn cho nhận xét "lập trình viên sản xuất". Rõ ràng, Pickit không đủ mạnh về mặt vật lý cho một ứng dụng công nghiệp. Nhưng các tín hiệu mà nó đưa ra cho mục tiêu cũng giống như bất kỳ lập trình viên nào khác. (Ý nghĩa ban đầu của "lập trình viên sản xuất" là một số lập trình viên nhất định có thể thay đổi điện áp cung cấp và đọc lại nội dung chương trình để xác minh lập trình chính xác. Microchip đã không đề cập đến điều này trong bảng dữ liệu của họ trong khoảng một thập kỷ, nhưng văn hóa dân gian vẫn tồn tại Trớ trêu thay, PICkit 2 có thể thay đổi điện áp cung cấp ...)
đánh dấu

Điều này đã cắt lên trên diễn đàn Microchip gần đây. Tài liệu của ICD 3 nói rằng nó là một lập trình viên sản xuất, không giống như PICkit 2/3 mà ai đó từ Microchip tuyên bố không phải là lập trình viên sản xuất.
Leon Heller

4

Lập trình vi điều khiển thường là một phần nhỏ của quy trình kiểm tra chức năng lớn hơn. Phần còn lại của kế hoạch kiểm tra của bạn như thế nào?

Đối với bất kỳ sản phẩm không tầm thường, bạn sẽ cần thiết kế một bảng khác để kiểm tra bảng đang được sản xuất. Thông thường, bảng thử nghiệm sẽ có giao diện máy tính và sẽ kết nối mục tiêu với thiết bị thử nghiệm với khả năng RS-232 hoặc GPIB. Sau đó, một máy tính có thể chạy qua một kịch bản, lập trình bảng, sau đó chạy bất kỳ bài kiểm tra nào là phù hợp.

Nó rất hữu ích để có bảng thử nghiệm này chạy để phát triển phần sụn. Thực hiện đủ các thử nghiệm để bắt hồi quy trong phần sụn.

Sự khởi đầu của bảng thử nghiệm của bạn có lẽ là mạch PICkit 2. Phần sụn là nguồn mở, nó sẽ đảm nhiệm phần lập trình, nó có bộ tải khởi động tiện dụng và bạn có thể mở rộng nó để làm bất cứ điều gì khác mà bài kiểm tra chức năng của bạn sẽ cần.

Tôi thích viết các kịch bản thử nghiệm sản xuất của mình bằng Python, nhưng tôi nghĩ tiêu chuẩn công nghiệp là Labview.


Tôi sử dụng rất nhiều Python, nhưng không bao giờ cho kịch bản chung - thông thường tôi để nó lên bash / shell hoặc Perl. Cảm ơn vì những lời khuyên.
Thomas O

4

Nhận một pickit 3 và đưa nó vào lập trình để chuyển sang chế độ.

Bạn nói với nó rằng bạn muốn lập trình viên chuyển sang chế độ và bạn tải rom của mình, sau đó bạn không còn cần cổng usb để có nhiều năng lượng hơn nữa (vâng, bạn vẫn cần nó để cấp nguồn).

Khi bạn cắm vào các thiết bị, bạn nhấn nút chương trình và nó tải chương trình và cho bạn biết khi nào hoàn thành, mất ít hơn 20 giây một bảng. Chi phí không quá 50 $


3

Một phương pháp bạn có thể sử dụng là tạo một cái kẹp hoặc một cái gì đó giống với giường thử nghiệm ( ví dụ video ) bằng các chân pogo , do đó bạn không cần hàn các chân cho các đầu nối lập trình. Một đầu nối cạnh PCB, chẳng hạn như cáp mềm kiểu cũ, có thể là một tùy chọn rẻ hơn (nhưng đòi hỏi nhiều diện tích bo mạch hơn).

Bạn sẽ phải đưa ra một cách để lập trình cho mỗi vi điều khiển, có thể sử dụng nhiều lập trình viên hoặc một tệp bó như David đề xuất. Bạn có thể kết hợp nó với một công tắc lớn (có thể là một trong những công tắc xoay từ hộp công tắc chia sẻ máy in cũ hoặc một vài rơle), để kết nối lại lập trình viên từ PIC này sang PIC khác mà không cần di chuyển đầu nối.

Các kỹ thuật này cũng áp dụng cho các bộ điều khiển lập trình trong hệ thống khác, mặc dù các bộ điều khiển có khả năng JTAG có thể làm cho nó dễ dàng hơn vì JTAG TAP được thiết kế để bị xiềng xích, do đó sẽ không chuyển chương trình từ chip sang chip. Ngoài ra, đối với các chip như AVR có thể sử dụng các mức logic thông thường để lập trình, việc chuyển đổi có thể trở nên dễ dàng hơn.


Bạn thậm chí không cần ghim pogo: Tôi đặt ghim tiêu đề vào PICkit 2 và tôi có thể lập trình bằng cách chèn nó vào các lỗ trên bảng và nhấn sang một bên một chút, sau đó duy trì áp suất này cho đến khi hoàn tất lập trình.
markrages

@Markrages, đó là cách tôi làm trong công việc.
Kortuk

2

Có một tiện ích dòng lệnh có tên PK2CMD cho Windows và Linux cho phép bạn lập trình PIC của mình với PicKit (vì vậy bạn không phải sử dụng MPLAB hoặc một số GUI khác). Bạn có thể sử dụng ngôn ngữ kịch bản yêu thích của mình để tạo một chương trình nhỏ chạy lệnh PK2CMD chính xác khi bạn nhấn phím. Điều này sẽ làm cho phía máy tính của sản phẩm của bạn bớt tốn công sức hơn (chỉ cần 1 phím bấm cho mỗi MCU) nhưng bạn vẫn cần một cách để kết nối PicKit với mỗi 3 MCU của bạn.


1

Dịch vụ lập trình của Microchip rất rẻ lần trước tôi đã sử dụng nó, Một khi bạn trang trải chi phí thiết lập thì nó rất rẻ - đồng xu cho mỗi chip cho 12F - không nhìn vào những thứ cao cấp hơn. Họ cũng có thể thực hiện đánh dấu / ghi nhãn, vv Ngay cả khi bạn có ý định thay đổi FW, việc có bộ nạp khởi động được lập trình sẵn có thể giúp việc này dễ dàng hơn.

Đối với một lập trình viên sản xuất, tôi thích Asix Presto - hàng tấn tùy chọn cho các công cụ như tuần tự hóa, và rất nhanh

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.