Spisu treści:

JALPIC One Development Board: 5 kroków (ze zdjęciami)
JALPIC One Development Board: 5 kroków (ze zdjęciami)

Wideo: JALPIC One Development Board: 5 kroków (ze zdjęciami)

Wideo: JALPIC One Development Board: 5 kroków (ze zdjęciami)
Wideo: JALPIC One, an Arduino like solution for the PIC Microcontroller 2024, Lipiec
Anonim
JALPIC One Development Board
JALPIC One Development Board

Jeśli śledzisz moje projekty Instructables, wiesz, że jestem wielkim fanem języka programowania JAL w połączeniu z mikrokontrolerem PIC. JAL jest językiem programowania podobnym do Pascala, opracowanym dla 8-bitowych mikrokontrolerów PIC firmy Microchip. Większość ludzi zna Arduino za pomocą mikrokontrolera ATMEL. Jedną z fajnych cech płyty Arduino jest to, że można zaprogramować mikrokontroler bez konieczności posiadania osobnego programatora.

Ta nieobecność programisty przywiodła mnie do tego projektu. Chciałem zrobić płytkę podobną do Arduino Uno dla mikrokontrolera PIC rozwijającego oprogramowanie dla tej płytki w języku programowania JAL. Płytka nie musiała mieć dokładnego rozmiaru płytki Arduino Uno, ale złącza na płytce powinny mieć – tam, gdzie to możliwe – te same połączenia, co złącza Arduino Uno. I tak narodziła się płyta rozwojowa JALPIC One.

Krok 1: Projektowanie tablicy

Projektowanie tablicy
Projektowanie tablicy
Projektowanie tablicy
Projektowanie tablicy

Zanim zacząłem projekt, dobrze przyjrzałem się projektowi Arduino i zdecydowałem, że:

  • Chciałem, aby płyta była zbudowana ze standardowych komponentów, więc nie ma projektu montażu powierzchniowego (SMD). Powodem tego jest to, że hobbystom łatwiej byłoby złożyć deskę.
  • Złącza powinny mieć jak najbardziej taką samą funkcjonalność jak Arduino Uno. Na zdjęciu z przodu jeszcze nie montowałem złączy.
  • Sterowanie płytą musiało być wykonane przez PIC i ten PIC powinien być zaprogramowany przy użyciu języka programowania JAL.
  • Do celów testowych płyta powinna mieć diodę LED, którą można kontrolować z PIC, który uruchamia aplikację. Ta funkcja jest również obecna w Arduino Uno.
  • PIC, na którym uruchamiana jest aplikacja, powinien mieć wystarczającą ilość pamięci i pamięci RAM, aby ułatwić tworzenie aplikacji.

Na załączonym schemacie znajduje się projekt płytki rozwojowej JALPIC One. Dołączyłem również zrzut ekranu PCB. Podobnie jak Arduino, płytka może być zasilana przez port USB lub przez zewnętrzny zasilacz DC, gdy jest używana samodzielnie.

Dodałem zdjęcie przedstawiające Arduino i płytkę rozwojową JALPIC One.

PIC aplikacji na płycie jest programowany przy użyciu pliku szesnastkowego, który jest tworzony przez kompilator JAL.

Krok 2: Wymagane składniki

Wymagane składniki
Wymagane składniki

Musisz mieć następujące komponenty do tego projektu obok samej płyty:

IC

  • 1 * LM2940CT-5.0: IC1
  • 1 * LM3940IT-3.3: IC2
  • 1 * PIC16F18557P: IC3 (PIC aplikacji)
  • 1 * PIC16F1455P: IC4 (sterowanie PIC)

Kryształ

  • 1*20 MHz: Q1
  • 1*12 MHz: Q2

Dioda

  • 1 * 1N4004: D1
  • 1 * 1N4148: D2

PROWADZONY

  • 1 * żółta dioda LED: LED1
  • 1 * bursztynowa dioda LED: LED2
  • 1 * czerwona dioda LED: LED3

Złącze

  • 1 * gniazdo zasilania: J1
  • 1 * złącze USB: X1
  • 2 * 6-pinowy nagłówek: SV2, SV5
  • 2 * 8-pinowe złącze: SV1, SV4
  • 1 * 10-pinowy nagłówek: SV3
  • 1 * zworka 3-pinowa: JP1
  • 1 * zworka 2-pinowa: JP2

Kondensator

  • 4*22 pF: C1, C3, C11, C13
  • 5*100 nF: C2, C6, C7, C8, C9
  • 1*470 nF/ceramika: C10

Kondensator elektrolityczny

3*10 uF/25 V: C4, C5, C12

Rezystor

  • 2*22 Ohm: R10, R11
  • 2*330 omów: R1, R8
  • 6*1 kΩ: R2, R3, R4, R5, R6, R7
  • 1*33 kOhm: R9

Przełącznik

1 * przycisk Omron: S1

W załączonym układzie planszy widać, gdzie powinien iść każdy element.

Krok 3: Oprogramowanie płyty

Większość prac polegała na opracowaniu oprogramowania sterującego do sterowania PIC na płycie. Płyta posiada prosty zestaw poleceń do kasowania PIC aplikacji, programowania PIC aplikacji i kilku innych poleceń. Jak wspomniano, został napisany w JAL. Oprogramowanie składa się z 3 głównych komponentów:

  1. Główny program, który zapewnia interfejs z USB, interpretuje polecenia i wysyła odpowiedzi.
  2. Parser pliku szesnastkowego, który sprawdza zawartość pliku szesnastkowego, wyodrębnia adres i dane do zaprogramowania.
  3. Programator, który kasuje pamięć PIC aplikacji i programuje PIC aplikacji danymi pochodzącymi z parsera.

Ponieważ kontrolny PIC nie ma dużej pamięci wewnętrznej, parsowanie pliku hex odbywa się w czasie rzeczywistym i linia po linii, po czym dane są przekazywane do oprogramowania programistycznego, które następnie programuje PIC aplikacji na linii według linii.

Załączony plik szesnastkowy może być użyty do zaprogramowania sterownika PIC.

Krok 4: Jak wygląda program aplikacyjny

Ponieważ sprzęt PIC aplikacji jest znany, prosty plik dołączany może być użyty do zdefiniowania wszelkiego rodzaju ustawień potrzebnych do działania PIC aplikacji. Osoba pisząca program może wtedy skupić się na samym programie. Prosty program z miganiem w JAL wygląda następująco:

include jalpic_one -- dołącz plik definicji tablicy

enable_digital_io() -- uczyń wszystkie piny cyfrowymi I/O

alias led to pin_a0 -- alias dla pinu z diodą LED

pin_a0_direction = WYJŚCIE

wieczna pętla

dioda = WŁĄCZONA

_usec_delay(100_000)

dioda = WYŁ

_usec_delay(400_000)

pętla końcowa

Ten program wykorzystuje diodę LED, która jest obecna na płytce rozwojowej JALPIC One. Po zakończeniu programu wystarczy 1 kliknięcie przycisku w edytorze o nazwie JalEdit, aby skompilować program i pobrać go na tablicę. Krótki film pokazuje, jak to działa.

Krok 5: Samodzielne zbudowanie tablicy

Nie mogłem opisać wszystkiego w tym Instructable, ale cały projekt płyty, oprogramowanie i dokumentację można pobrać z jednego z wydań Jallib w folderze „project / jalpic_one”.

Ponieważ to nowe rozwiązanie nie zostało jeszcze oficjalnie wydane w nowej wersji Jallib, należy je pobrać za pomocą najnowszego pakietu pszczół ze strony pobierania JAL.

Stronę pobierania można znaleźć pod adresem: Just Another JAL Website

Baw się dobrze, budując własny projekt i czekając na Twoje reakcje.

Zalecana: