Pytanie:
Jakie są opcje programowania MCU w produkcji?
Thomas O
2010-11-28 03:31:06 UTC
view on stackexchange narkive permalink

W moim projekcie Super OSD będę musiał zaprogramować duże partie MCU, prawdopodobnie około 10-15 płyt na godzinę. Mógłbym po prostu użyć mojego zaufanego zestawu PICkit 2, aby je zaprogramować (na każdej płycie są dwa - może trzy -), ale ładowanie każdego pliku (do 128KB i 256KB rozmiaru) byłoby bardzo pracochłonne, uruchamianie programu i powtarzanie dla każdego MCU i prawdopodobnie nie pozwoliłoby mi osiągnąć mojej docelowej prędkości. Ponadto MCU są montowane powierzchniowo, więc muszę mieć nagłówki na płycie, aby to umożliwić. Idealnie chciałbym usunąć te nagłówki, ale może to nie być opcja.

Jakie są więc opcje masowego programowania MCU - czy są szybsze sposoby na zrobienie tego? Mam budżet mniejszy niż 100 USD, więc takie rzeczy jak MPLAB PM3 firmy Microchip za 895 USD, choć ładne, nie byłyby opcją.

Mam do czynienia z mikrokontrolerami PIC różnych rodzaje. Jest PIC16F887, PIC24FJ64GA002 i dsPIC33FJ128GP802. Jednak jestem również zainteresowany opcjami dla procesorów AT32 i STM32, ponieważ mogę ich również używać.

Uwaga: obecnie nie rozważam zamawiania wstępnie zaprogramowanych chipów od producentów, ponieważ oprogramowanie może zmienić się do czasu dostarczenia żetonów i ze względu na dodatkowe koszty.

15 tablic na godzinę to cztery minuty na tablicę. Jak długo PICkit 2 zajmie zaprogramowanie twojej części?
@markrages: To około 20 sekund z małą bazą kodu (~ 6KB). Wyobrażam sobie, że przy większej ilości kodu może to zająć do półtorej minuty dla każdej tablicy, co nie daje mi dużo miejsca na oddech.
@Markrages, Mogę ręczyć, że napisałem bardzo duży projekt z ICD2 LE i programowanie zajmie 2 lub 3 minuty. Dość irytujące. Jednak z pickitem 3, wrzeszczy szybko.
Siedem odpowiedzi:
tcrosley
2010-11-28 06:36:49 UTC
view on stackexchange narkive permalink

W przypadku produkcji najpierw ładujemy program do PIC, który testuje płytkę (za pomocą małej płytki testowej, która niezależnie weryfikuje, czy szyna 3,3 V jest zgodna ze specyfikacją przy użyciu kilku komparatorów, a następnie używamy ADC na PIC, aby sprawdzić wszystko inne. Zostało nam wystarczająco dużo pinów, aby to umożliwić (wymagało to kilku dodatkowych rezystorów, aby działały jako dzielniki napięcia dla napięć powyżej 3 V).

Po zakończeniu testów rzeczywisty kod produkcyjny jest flashowany do mikro. Przeprowadzane są dodatkowe testy, a płytka PCB jest gotowa do montażu w obudowie.

Wszystko to odbywa się za pomocą programu na PC, który wymaga jedynie połączenia operatora na płytce, kliknij jeden przycisk i poczekaj na wynik PASS / FAIL. Wszystkie wyniki testów (w tym odczyty ADC) są rejestrowane. Cały proces (w tym programowanie PIC przez ICD 3) jest kontrolowany przez program na PC, który uruchamia skrypty wsadowe do faktycznego programowania Komunikacja do PIC w celu kontroli testów odbywa się za pośrednictwem jednego UART, których piny są wyprowadzone na płytkę testową (więc oprócz pinów wymaganych do programowania mamy także co najmniej TX / RX).

Kilka takich stacji ustawiliśmy w nasz kontraktowy producent.

Przy okazji ICD 3 jest dużo szybszy niż ICD 2 (USB 2.0 vs 1.1).

Pickit 3 działa również na USB 2.0, dlatego go uwielbiam. ICD3 jest dla mnie trochę drogi. Moja firma korzysta z MSP430, więc jest zupełnie inaczej.
Czy możesz wyjaśnić, jak zaprogramujesz IC?Twój własny uwarzony ICSP czy co?
@ErikFriesen Używam ICD 3 lub REAL Ice do układów Microchip PIC.Oba są prawdopodobnie zbyt drogie dla większości hobbystów (odpowiednio 200 USD i 500 USD).Inne rodziny chipów (Freescale, Silicon Labs itp.) Mają własną linię programistów.Dołączam nagłówki na PCB do połączenia z programistami.Gdy urządzenie znajduje się w terenie, jeśli ma łączność bezprzewodową (komórkową lub WiFi), można je zaktualizować bezprzewodowo.
Mam oba i plik pm3.PM3 nie zrobi wszystkich części bez podłączenia do komputera na> X2.15, rozdziela się na linii pic32.
Kortuk
2010-11-28 06:23:40 UTC
view on stackexchange narkive permalink

Zdobądź pickit 3 i ustaw go w trybie programmer to go.

Mówisz mu, że chcesz, aby programator przeszedł w tryb i ładujesz swój ROM, wtedy nie potrzebujesz już portu USB dla czegoś więcej niż zasilania (tak, nadal potrzebujesz go do zasilania).

Kiedy podłączasz urządzenie, naciskasz przycisk programu, ładuje program i informuje Cię, kiedy jest gotowy, zajmuje mniej niż 20 sekund płyta. Kosztuje nie więcej niż 50 $

Leon Heller
2010-11-28 04:01:23 UTC
view on stackexchange narkive permalink

PICkit 2 nie jest programistą produkcyjnym. Naprawdę musisz zdobyć ICD 3, który jest sklasyfikowany jako programista produkcyjny, jeśli chcesz mieć pewność, że urządzenia są programowane poprawnie. Alternatywnie, możesz kupić wstępnie zaprogramowane chipy od firmy Microchip lub dystrybutora, jeśli masz sfinalizowany kod.

To byłby właściwy sposób rozwiązania tego problemu.
Proszę podać cytat dla komentarza „programista produkcji”. Oczywiście Pickit nie jest wystarczająco wytrzymały fizycznie do zastosowań przemysłowych. Ale sygnały, które przekazuje do celu, są takie same, jak w przypadku każdego innego programisty. (Oryginalne znaczenie „programisty produkcyjnego” jest takie, że niektórzy programiści byli w stanie zmieniać napięcie zasilania i odczytywać zawartość programu, aby zweryfikować poprawność programowania. Firma Microchip nie wspominała o tym w swoich arkuszach danych od około dziesięciu lat, ale folklor żyje dalej . Jak na ironię, PICkit 2 * może * zmieniać napięcie zasilania ...)
Niedawno pojawiło się to na forum Microchip. Dokumentacja ICD 3 stwierdza, że ​​jest to programista produkcyjny, w przeciwieństwie do PICkit 2/3, o którym ktoś z firmy Microchip stwierdził, że nie był programistą produkcyjnym.
markrages
2010-11-28 05:45:48 UTC
view on stackexchange narkive permalink

Programowanie mikrokontrolerów jest zwykle małą częścią większego procesu testowania funkcjonalnego. Jaka jest reszta twojego planu testów?

Dla każdego nietrywialnego produktu będziesz musiał zaprojektować inną płytkę, aby przetestować płytkę w produkcji. Zwykle płyta testowa będzie miała interfejs komputerowy i będzie łączyć cel ze sprzętem testowym z możliwościami RS-232 lub GPIB. Następnie komputer może uruchomić skrypt, programując płytkę, a następnie wykonując odpowiednie testy.

Ta płyta testowa jest również przydatna do tworzenia oprogramowania sprzętowego. Wykonaj wystarczającą liczbę testów, aby wychwycić regresje w oprogramowaniu sprzętowym.

Początkiem płytki testowej jest prawdopodobnie obwód PICkit 2. Oprogramowanie jest open-source, zajmie się częścią programistyczną, ma poręczny bootloader i możesz go rozszerzyć, aby zrobić wszystko, czego będzie potrzebował twój test funkcjonalny.

Lubię pisać moją produkcję testować skrypty w Pythonie, ale myślę, że standardem branżowym jest Labview.

Używam dużo Pythona, ale nigdy do ogólnego pisania skryptów - zwykle zostawiam to bash / shell lub Perl. Dzięki za wskazówki.
Yann Vernier
2010-11-28 04:42:41 UTC
view on stackexchange narkive permalink

Jedną z metod, których możesz użyć, jest wykonanie zacisku lub czegoś podobnego do stanowiska testowego ( przykładowy film) z szpilkami pogo, aby nie trzeba było kołki lutownicze do złączy programujących. Złącze krawędziowe PCB, takie jak kabel dyskietek starego typu, może być tańszą opcją (ale bardziej wymagającą obszaru płytki).

Będziesz musiał wymyślić sposób zaprogramowania każdego mikrokontrolera, prawdopodobnie używając albo wielu programistów, albo plik wsadowy, jak zasugerował David. Można go połączyć z dużym przełącznikiem (być może jednym z przełączników obrotowych ze starej skrzynki rozdzielczej drukarki lub kilkoma przekaźnikami), aby ponownie podłączyć programator z jednego PIC do drugiego bez przesuwania złącza.

Techniki te mają również zastosowanie do innych kontrolerów programowalnych w systemie, chociaż te obsługujące JTAG mogą to jeszcze ułatwić, ponieważ JTAG TAP jest zaprojektowany do łączenia łańcuchowego, więc nie byłoby przenoszenia programatora z chipa na żeton. Również w przypadku układów scalonych, takich jak AVR, które mogą używać zwykłych poziomów logicznych do programowania, przełączanie mogłoby stać się łatwiejsze.

Nie potrzebujesz nawet szpilek pogo: umieściłem pin nagłówka w PICkit 2 i mogę zaprogramować, wkładając go do otworów w płycie i naciskając trochę w bok, a następnie utrzymując ten nacisk do zakończenia programowania.
@Markrages, tak to robię w pracy.
DavidEGrayson
2010-11-28 03:52:18 UTC
view on stackexchange narkive permalink

Istnieje narzędzie wiersza poleceń o nazwie PK2CMD dla systemów Windows i Linux, które umożliwia programowanie plików PIC za pomocą PicKit (więc nie musisz używać MPLAB lub innego GUI). Możesz użyć swojego ulubionego języka skryptowego do stworzenia małego programu, który uruchamia poprawne polecenie PK2CMD po naciśnięciu klawisza. Dzięki temu komputerowa strona produkcji byłaby mniej pracochłonna (tylko 1 naciśnięcie klawisza na MCU), ale nadal potrzebujesz sposobu na podłączenie PicKit do każdego z 3 MCU.

mikeselectricstuff
2010-11-28 04:51:27 UTC
view on stackexchange narkive permalink

Usługa programowania firmy Microchip jest bardzo tania, gdy ostatnio jej użyłem. Po pokryciu kosztów konfiguracji jest bardzo tania - grosze za chip za 12F - nie patrząc na te z wyższej półki. Mogą również wykonywać znakowanie / etykietowanie itp. Nawet jeśli zamierzasz zmienić FW, posiadanie wstępnie zaprogramowanego bootloadera może to ułatwić.

Dla programisty produkcyjnego lubię Asix Presto - mnóstwo opcji takich jak serializacja i bardzo szybkie



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 2.0, w ramach której jest rozpowszechniana.
Loading...