Makieta uruchomieniowa dla procesorów rodzin 51 AVR MSP AR…

Transkrypt

Makieta uruchomieniowa dla procesorów rodzin 51 AVR MSP AR…
Makieta uruchomieniowa
dla procesorów rodzin: ’51, AVR, MSP i ARM
Opracowanie Marcin Saj
Spis treści
1. Geneza projektu makieta
1.1
1.2
1.3
1.4
1.5
Pomysł……………………………………………………………..3
Problemy…………………………………………………………..3
Prototyp……………………………………………………………4
Makieta uruchomieniowa dla procesora AT89C5131…………10
Rozbudowa makiety……………………………………………...10
2. Makieta uruchomieniowa dla procesorów rodzin: ’51, AVR,
MSP430 i ARM
2.1
2.2
Problemy………………………………………………………….11
Makieta – opis…………………………………………………….13
2.2.1 Zworki……………………………………………………..14
2.3
Dodatek……………………………………………………………15
1. Geneza projektu makieta
2
1.1. Pomysł
Pierwowzorem makiety uruchomieniowej dla 4 rodzin procesorów była makieta
przystosowana do pracy tylko z jednym procesorem - rodziny ’51 a mianowicie
AT89C5131.
Pomysłodawcą projektu był dr inŜ. Andrzej Stępień kierownik dydaktyki Katedry
Metrologii Elektronicznej i Fotonicznej, opiekun koła naukowego MOS – Microsystems
Oriented Society.
1.2. Problemy
Przed przystąpieniem do projektowania makiety waŜnym elementem, który musiał
zostać sprawdzony to czy poziom napięć wejściowych, które pojawiały się na porcie
procesora AT89C5131 podczas pracy z wyświetlaczem LCD nie uszkodzą procesora –
wyświetlacz zastosowany w makiecie jest zasilany napięciem 5V zaś sterowany
poziomami 3,3V, podczas sprawdzania zajętości wyświetlacza, wyświetlacz wystawia na
linie danych sygnały o poziomie 5V co mogło spowodować uszkodzenie portu procesora.
Mimo próśb o odpowiedź w tej kwestii, producent nie odpowiedział. Współpraca
wyświetlacza z procesorem AT89C5131 musiała zostać sprawdzona doświadczalnie.
Przeprowadzona próba rozwiała wątpliwości w kwestii odporności procesora na
poziomy napięć rzędu 5V.
Rys 1. Współpraca procesora z wyświetlaczem LCD
3
1.3. Prototyp.
Po stworzeniu schematu ideowego makiety, drugą bardzo waŜną kwestią było
zbudowanie prototypu. W warunkach domowych przy uŜyciu pseudo profesjonalnych
narzędzi zbudowano prototyp makiety.
Rys 2. Pokrywanie laminatu emulsją światłoczułą.
Rys 2. Naświetlanie laminatu przez maskę lampą ultrafioletową.
4
Rys 3. Wywoływanie.
Rys 4. Proces trawienia.
5
Rys 5. Proces trawienia.
Rys 6. Proces trawienia.
6
Rys 7. Punktowanie.
Rys 8. Nawiercanie.
7
Rys 9. Pokrywanie płytki kalafonią.
Rys 10. MontaŜ.
8
Rys 11. Działający prototyp
9
1.4. Makieta uruchomieniowa dla procesora AT89C5131
Po uruchomieniu prototypu, przyszedł czas na profesjonalne wykonanie.
Rys 12. Makieta uruchomieniowa dla procesora AT89C5131
Sercem Makiety był procesor AT89C5131, programowany przez port USB.
Makieta mogła być zasilana z portu USB lub z zewnętrznego zasilacza ( wybór zasilania
zworką VCC/USB). Makieta została wyposaŜona w wyświetlacz LCD 2*16, czujnik
temperatury DS1820, zegar czasu rzeczywistego DS1338C (z wbudowanym rezonatorem
kwarcowym) wraz z baterią podtrzymującą zasilanie RTC, szereg diod sygnalizacyjnych
(diody dołączone do portu wraz z klawiszami, diody dołączone do źródeł prądowych oraz
diody sygnalizujące zasilanie makiety i komunikację RS232), klawiszy dołączonych do portu
i wejść przerwań, dwa stabilizatory napięcia 5V (zasilanie wyświetlacza) i 3,3V (zasilanie
makiety), szereg zworek do wyboru róŜnych opcji makiety, układ MAX3232 – konwerter
poziomu napięć - do komunikacji przez RS232 z komputerem i piezo bez generatora do
prostych efektów akustycznych, zostały teŜ wyprowadzone wszystkie porty procesora.
1.5. Rozbudowa makiety
Z chwilą, gdy powstała makieta zrodził się nowy pomysł.
Pomysł Ŝeby stworzyć uniwersalną makietę dla kilku rodzin procesorów.
10
2. Makieta uruchomieniowa dla procesorów rodzin: ’51, AVR, MSP430 i ARM.
2.1. Problemy.
Pierwszym problemem, który się pojawił był sposób dołączenia do makiety modułów z
innymi mikrokontrolerami. Jedynym rozsądnym rozwiązaniem było wlutowanie w miejsce
podstawki PLCC52 - w której był nasz podstawowy procesor – gniazda na piny precyzyjne
Rys. 13a. W gniazdo to mogła być wpinana bezpośrednio podstawka z naszym procesorem
Rys. 13b i jak planowano, teŜ moduły (poprzez piny precyzyjne dwustronne, które z jednej
strony musiały zostać wlutowane w płytkę modułu z interesującym nas procesorem innej
rodziny, co obrazuje rysunek 13c).
Na początku próbowano makietę przystosować do modułu z procesorem rodziny AVR ATmega16, ale gdy przystąpiono do prac z procesorem rodziny MSP okazało się, Ŝe prac
„uśredniających” makietę nie moŜna przeprowadzać dla kaŜdego mikrokontrolera osobno,
poniewaŜ występuje wiele róŜnic, które uniemoŜliwiałyby poprawną współpracę makiety z
procesorami innych rodzin.
Rys 13a. Gniazdo na piny precyzyjne.
Rys 13b. Podstawka w gnieździe precyzyjnym.
11
Rys 13c. Dwustronne piny precyzyjne
Priorytetem w łączeniu modułów z makietą miała być kolejność pinów w
poszczególnych portach. Chodzi o to, Ŝe moduły z mikrokontrolerami innych rodzin miały
być wpinane w gniazdo o ściśle przyporządkowanych wcześniej pinach. JeŜeli przykładowo
łączymy port pierwszy mikrokontrolera rodziny ’51 (tutaj symbolicznie – chodzi o piny
gniazda precyzyjnego, które gdy był dołączony nasz mikrokontroler rodziny ’51 odpowiadały
wyprowadzonemu portowi) z portem pierwszym (port A) mikrokontrolera rodziny AVR
konkretnie ATmega16 to automatycznie straciliśmy dostęp do interfejsu SPI na makiecie,
poniewaŜ w ATmega16, interfejs SPI jest na porcie C a w naszej ‘51nce na porcie pierwszym.
Dalej jeŜeli połączymy port pierwszy ‘51ki do portu C AVRa (w dalszej części oznaczenia
mikrokontrolerów będą podawane skrótowo np. ’51, AVR itp.) i jak wyŜej wspomniane
priorytetem będzie układ pinów (pin P1.0 do pinu PC.0, P1.1 do PC.1 itd.) to w dalszym
ciągu nie mamy dostępu do SPI poniewaŜ odpowiadające sygnały MOSI MISO itd. były
wyprowadzone w AVR na inne piny niŜ w ‘51nce. Z kolei, gdy próbowano zaprojektować
moduł z procesorem MSP (wybrano MSP430F135) i połączono port P3 MSP z portem P1
‘51ki okazało się Ŝe piny interfejsu SPI teŜ są w innych miejscach a w dodatku teŜ w innej
kolejności niŜ w AVR. Na domiar złego na tym samym porcie w MSP było łącze szeregowe,
które na makiecie jest na porcie P3 (w AVR na porcie PD) nie wspominając o tym, Ŝe do
portu P1 ‘51ki dołączone są teŜ klawisze z diodami LED. Czym więcej rodzin procesorów,
problemy rosną wykładniczo. To jest tylko przykład występujących problemów, zostały teŜ
inne interfejsy I2C, 1wire czy LCD albo cztery diody LED, które były dołączone do źródeł
prądowych ‘51ki bez szeregowego rezystora. Dołączając inny procesor (pozostałe wybrane
procesory innych rodzin nie mają źródeł prądowych) mógł on zostać uszkodzony przez
płynący prąd bez szeregowego rezystora.
Zaprojektowanie makiety dla kilku rodzin procesorów nie było łatwym zadaniem. Problem
interfejsu SPI został rozwiązany w sprytny sposób, stworzono układ zworek, które ulokowano
w odpowiednie miejsca dla ‘51ki, AVR i MSP, dołączając poszczególne sygnały tam gdzie
one powinny być. Łącze szeregowe zostało uratowane w podobny sposób.
Dla procesora ARM makieta nie była specjalnie przygotowywana jak dla pozostałych
procesorów, poniewaŜ dodatkowo skomplikowałoby to makietę i uniemoŜliwiłoby to jej
budowę. Aby procesor ARM poprawnie współpracował, zmodyfikowano w odpowiedni
sposób płytkę modułu z tymŜe procesorem. WyposaŜoną ją w szereg zworek do wyboru opcji
podobnie jak w przypadku interfejsu SPI.
12
2.2. Makieta – opis
Rys 14. Makieta uruchomieniowa dla procesorów rodzin ’51, AVR, MSP430 i ARM.
Nowa uniwersalna makieta zawiera w swej budowie to, co pierwsza wersja makiety,
ale dodatkowo: przetwornik AC, przetwornik CA, podstawkę na pastylki firmy maxim-dallas,
wyprowadzono napięcia zasilające i makietę wyposaŜono w układ zworek, dzięki którym
makieta stała się uniwersalna (przy zmianie modułu dołączanego do gniazda precyzyjnego
musimy odpowiednio ustawić zworki).
13
2.2.1. Zworki
USB_VCC - wybór źródła zasilania makiety,
piezo_J - dołączanie piezo do pinu procesora,
RW_J - opcja odczytu stanu zajętości wyświetlacza,
LT_J - opcja podświetlania wyświetlacza,
LCD_LT - opcja wyboru dla wyświetlaczy z róŜnym układem pinów zasilania
podświetlenia wyświetlacza – zworka powinna zostać ustawiona „na stałe” po
ustaleniu pinów podświetlania,
(naleŜy sprawdzić w dokumentacji wyświetlacza kolejność pinów podświetlenia
i skorelować ze schematem ideowym makiety a następnie ustawić odpowiednio
zworki LCD_LT i LT_J)
INT1/Dp4 - wybór obsługi wejścia przerwań bądź diody LED Dp4,
SPI/Dp3 - ustawić na SPI w przypadku korzystania z przetworników AC lub CA,
RST_J - podczas programowania procesora MSP mogą wystąpić problemy z
resetowaniem procesora, naleŜy wtedy zworkę ustawić na OFF,
JP–SPI - w przypadku korzystania z SPI naleŜy odpowiednio ustawić zworki w
zaleŜności od typu procesora,
Rys 15a. ’51
Rys 15b. AVR
Rys 15c. MSP
Rys 15d. ARM
14
LED&SPI/RS(MSP) - wybór opcji poprawnego działania komunikacji przez
RS232 w przypadku pracy z procesorem MSP lub SPI i diod LED,
Rys 16a. LED&SPI
Rys 16b. RS(MSP)
2.3. Dodatek
Klawisze PSEN i Vref (otwieranie sesji USB) – uŜywane tylko podczas programowania
procesora ‘51 – patrz do opisu „Flip – programowanie procesora AT89C5131”
Obsługiwane typy procesorów – patrz do opisów: „Moduł AVR”, „Moduł MSP” i
„Moduł ARM”,
Szczegółowy opis projektu makieta – patrz do opisu „Makieta – schemat i płytka”
15

Podobne dokumenty