Rozpoczęcie programowania PIC

13

Zastanawiałem się nad programowaniem PIC, ale w przeciwieństwie do innych dostępnych mikrokontrolerów, sama liczba dostępnych dostępnych układów spowodowała pewne zamieszanie. Wygląda również na to, że niektóre żetony sugerowane na niektórych stronach jako dobry wybór dla osób rozpoczynających programowanie w PIC mogły zostać zastąpione (lub mogę być coraz bardziej zdezorientowany).

Moje pytanie sprowadza się więc do trzech części:

  • Jaki byłby dobry układ PIC na początek?

  • Cieszę się, że korzystam z asemblera lub innego języka, więc jakie IDE / języki sugerowałbyś dla Linuksa?

  • Co byś polecił, jeśli chodzi o wprowadzenie kodu do układu, przez połączenie USB z laptopa z systemem Linux (PicKit 2? Była jedna możliwość) i jakiej konfiguracji obwodu / płytki będę potrzebował?

Edycja: Po długiej dyskusji z Kortukiem (patrz komentarze poniżej) na temat zalet różnych części zestawu, postanowiłem zacząć od zestawu startowego PicKit2. Jest to dostarczane z zainstalowanym układem PIC16F690.

Amos
źródło

Odpowiedzi:

7

Zgadzam się z PIC18, ale dla kogoś, kto dopiero zaczyna, może być trochę intensywny. Obecnie uczę inżynierów elektryków wyższego szczebla rozwoju PIC, a nawet w tych samych klasach ich pochodzenie może być zdumiewające.

Obecnie uczę ludzi z kompilatorem CCS PIC-C, ale to kosztuje. Jest to niewiarygodnie proste i zostało wybrane, ponieważ większość naszych studentów pracowała tylko w laboratorium z podstawowym montażem lub programowaniem x86.

Mam wrażenie, że bardzo prosty PIC16 może być lepiej dopasowany, ale będzie zależeć od twojego pochodzenia. PIC16F688 to bardzo prosty PIC, którego używamy w naszym pierwszym projekcie do rozgrzania ludzi.

Kortuk
źródło
1
Mam dyplom pierwszej klasy w dziedzinie informatyki, który obejmował dużo programowania (głównie C ++, trochę VB6, trochę asemblera). Mam również dyplom z matematyki i uczę matematyki dzieci ze szkół średnich. Mogę i robię programy w różnych językach (choć nie w C) i szukam różnych nowych rzeczy, w tym gry z mikrokontrolerami.
Amos,
1
16F88 to idealny wybór. Istnieje milion różnych PIC i myślę, że około 50 000 z nich jest dobrych na start. Programowanie Mikrokontrolery bardzo często stwarza problemy osobom, którym pomogłem z wykształceniem CS, ponieważ nie wzięli wielu zajęć na temat elektryczności, co chciałbym, aby dodali do programów studiów. Nie sądzę, aby programowanie było w ogóle trudne, ale prawdopodobnie nie byłoby złym wyborem, aby dostać swoją płytę programistyczną. Wpłynie to na twój przedział cenowy. microchipdirect.com/ProductSearch.aspx?Ke
words=DV164120
1
Myślę, że ostatni link, który opublikowałem, może być dobrym wyborem, da ci już przygotowaną płytę do pracy za 50 dolarów (-25%, jeśli masz e-mail .edu), a następnie masz programistę, którego możesz użyć wszelkie inne otrzymane żetony. Z niecierpliwością czekam na informacje na temat waszych projektów.
Kortuk
1
Jeśli dostaniesz DM164120-1, sugerowałbym użycie dołączonego do niego PIC. Jestem właśnie w trakcie pomagania komuś w projekcie, którego jutro będzie musiał uczyć na zajęciach, inaczej bym szukał więcej, ale w każdym miejscu, w którym znajduję tablicę, nie mogę znaleźć schematu. Mogę powiedzieć, w oparciu o pin-out PIC16F631, że nie jest kompatybilny z PIC16F88. Styki zasilania i programowania nie będą się zgadzały. Jeśli kupisz tablicę programistów, skorzystaj z dołączonego do niej PIC, dzięki czemu będziesz znacznie szczęśliwszy.
Kortuk
2
Tak, dobrze wykonałeś swoje badania. Moja pomoc mogła być nieco myląca. Jeśli chcesz zmoczyć stopy, tablica rozwojowa jest sposobem na uniknięcie radzenia sobie ze sprzętem budowy PIC, zanim będziesz gotowy. Jeśli pójdziesz tą ścieżką, sugerowałbym użycie PIC, który jest dołączony do planszy i ustalenie następnego wyboru PIC, gdy będziesz gotowy do zbudowania własnych plansz. Jeśli chcesz mieć własne zdjęcie od samego początku, kup programistę, zdjęcie i wszystko, czego potrzebujesz, aby uruchomić zdjęcie od początku. Możesz zaoszczędzić pieniądze i skorzystać z deski do krojenia.
Kortuk
4

W przypadku PIC istnieje kompilator open source o nazwie JAL (Just Another Language)

Podobnie jak inne języki programowania, umożliwia to wykorzystanie bibliotek sprzętowych w celu znacznego uproszczenia procesu podłączania wybranego PIC do innego sprzętu. Oprogramowanie pozwala również na kompilowanie i przesyłanie programów za pośrednictwem PIC2 (lub klon tego programatora)

JAL jest językiem opartym na Pascal i jest wolnym oprogramowaniem (zawsze dobre, jeśli dopiero zaczynasz)

Wpis JAL Wiki

Jeśli chodzi o książki, „Mikrokontrolery PIC, 50 projektów dla początkujących i ekspertów” autorstwa Bert Van Dam warto zapoznać się ze wstępem do JAL

Do tej pory użyłem tylko układu 16F877A z PIC, najwyraźniej dobry układ dla początkujących. Dość tanie i wiele dostępnych portów.

Justblair
źródło
Na zdrowie, popatrzę. Czy JAL używa określonego IDE, które jest dostępne dla Linuksa?
Amos,
1
Tak, ma jeden o nazwie JAL Edit, utrzyma cię po stronie kodowania i ma typowe narzędzia, które zwykle znajdziesz na stronie jal.sunish.net/jaledit
Justblair,
Niestety jest to tylko system Windows, wydaje się, że istnieje jeden dla Linuksa o nazwie PicShell, obecna wersja beta znajduje się pod adresem: linux.softpedia.com/get/Text-Editing-Processing/IDEs/…
Amos
2

Jeśli chodzi o układy scalone w serii 18F, prawie tak tanie jak 16F, o wiele więcej odwagi. 18F2550 to fajny układ i zawiera USB, są też inne z tej samej serii. Spójrz na wykresy wyboru mikroczipów na ich stronie internetowej.

Darmowe IDE z mikroczipa, w tym C, którego powinieneś używać nad asemblerem IMHO. Nie jestem pewien, czy mikroczip IDE działa w systemie Linux, ale może tak być.

PicKit może być dobry do programowania, może za pierwszym razem wypalić bootloader, a potem bootload przez USB. Bitwacker (google it) to niezła konfiguracja do użycia lub kopiowania.

Istnieje mnóstwo forów i innych witryn, wystarczy google. Jednym z problemów związanych z PIC jest to, że istnieje tak wiele języków i żaden z nich nie jest taki sam (nawet w kompilatorach c). Jeśli możesz napisać dobre pytanie, zadaj pytanie na piclist.com, ale najpierw odrób pracę domową. Fora nie są najlepszym miejscem do nauki, poszukaj w tym celu stron z samouczkami (znowu strona z bitwacherami jest dobra, również Google „Embedded Adventures”, facet zrobił dużo w C (ale nie ten z mikroczipem)

russ_hensel
źródło
Zaznaczyłem zakładki Embedded Adventures, gdy mam godzinę lub dwie do zabicia, i rzuciłem okiem na Bitwackera w celu uzyskania w przyszłości. Twoje zdrowie.
Amos,
1

Plansza Dwengo jest oparta na PIC18F4550, mają również tani klon PICkit2 i kilka bardzo dobrych samouczków na początek: http://www.dwengo.org/tutorials

Wim
źródło
Ciekawy. Nie byłbyś tym samym Wimem, który jest również jednym z Dwengo Team, prawda?
Amos,
Tak, ten sam ;-)
Wim,
1

Dla odniesień do niektórych rzeczy, zrobiłem małe programowanie z PIC przy użyciu Pik Kit 2 Pickit 1, poleciłbym 100 projektów mikrokontrolerów dla złego geniuszu, mam też kilka postów na blogu, które zajmują się takimi rzeczami

http://blog.onaclovtech.com/2010/01/interrupts.html

http://blog.onaclovtech.com/2010/01/analog-inputs.html

http://blog.onaclovtech.com/2010/02/pic-16f913-quick-reference-guide.html

http://blog.onaclovtech.com/2010/02/pic-16f913.html

Planuję opublikować aktualizację SPI, a kiedy wymyślę, jak radzić sobie z ruchem magistrali CAN za pomocą mikroukładów, też będę mieć aktualizacje.

Dziękuję Ci,

onacłow

onaclov2000
źródło
Wygląda interesująco, przyjrzę się bliżej twoim rzeczom, kiedy dostanę minutę.
Amos,
Może po prostu nie wiem przez cały czas, ale czuję, że w porównaniu do avr i arduino praktycznie nie ma samouczków na temat PIC i naprawdę chciałbym to zmienić ...
onaclov2000
1

Jeśli chcesz używać PIC, poważnie rozważę serię 16-bitowych zdjęć PIC24 lub bardzo podobny dsPIC33. Są szybsze, wydajniejsze, na wiele sposobów łatwiejsze do zaprogramowania i nie kosztują więcej niż najbardziej podstawowe 8-bitowe. Dolne końce są również dostępne w przyjaznych dla breadboardów gniazdach DIP.

O wiele trudniej jest znaleźć przykłady w Internecie, ale o ile wiem, jest to główna wada.

John Burton
źródło