[KiCad] Projektowanie w KiCad 5.0 - Cz.4 Rysujemy pierwsze schematy, rozdział drugi

Tutaj dzielimy się doświadczeniem z używania programu KiCAD.

Moderator: ZbeeGin

Awatar użytkownika
ZbeeGin
User
User
Posty: 322
Rejestracja: sobota 08 lip 2017, 17:16
Lokalizacja: GOP
Kontaktowanie:

[KiCad] Projektowanie w KiCad 5.0 - Cz.4 Rysujemy pierwsze schematy, rozdział drugi

Postautor: ZbeeGin » sobota 28 kwie 2018, 18:16

Część 4. KiCad 5.0 - Rysujemy pierwsze schematy, rozdział drugi

W poprzednim rozdziale nauczyliśmy się już pewnych podstaw rysowania schematów: umieszczania symboli elementów, umieszczania portów zasilania, czy nadawania nazw połączeniom. W tym rozdziale pójdziemy o krok dalej i stworzymy prosty schemat gdzie główną rolę odegrają połączenia pseudo-magistralowe jak i magistralowe.

Połączenia za pomocą magistral w programie KiCad są dwojakiego rodzaju:
  1. Połączenia pseudo-magistralowe, gdzie do magistrali "dopinamy" zlepek różnorodnych sygnałów, by "przeprowadzić je" pomiędzy dwoma punktami schematu. Przy takim wykorzystaniu magistral, w zasadzie służą one tylko jako dekoracja. Nie wykorzystujemy tu wbudowanej logiki, którą magistrale udostępniają, a całość opiera się na poznanych już w poprzednim rozdziale etykietach lokalnych.
  2. Połączenia typowo magistralowe, gdzie każda magistrala ma swoją własną nazwę i związane z nią ponumerowane poszczególne sygnały jakie przenosi. W tym wypadku magistrale są już normalnym przedłużeniem połączeń wchodzących do magistrali i co więcej, w takim przypadku można sygnały będące składnikami magistral łączyć między sobą poprzez symboliczne połączenie magistral. W przypadku takich połączeń wykorzystana jest dość prosta ale przydatna logika.

Przygotowania i garść przydatnych funkcji na początek

Rozpocznijmy kolejny projekt. Do tego projektu będziemy potrzebować kilka układów logicznych z rodziny TTL, wyświetlacz alfanumeryczny oraz układ pamięci SRAM.
Najpierw narysujemy część zasilającą, gdzie znów wykorzystamy stabilizator 7805 i całą jego otoczkę w postaci kondensatorów, portów zasilania i złącza. Już pewnie kilka osób zakręci nosem, że ponownie będzie musiała to rysować. Czasem tak trzeba. W końcu każdy projekt powinien być rozpatrywany indywidualnie. Jednak mam dobrą wiadomość, dla tych którzy zapisali sobie poprzedni projekt. Możemy go wykorzystać by cały gotowy układ zasilania po prostu skopiować!

Uwaga! Operacje kopiowania pomiędzy schematami możemy bezpiecznie wykorzystać tylko, jeśli oba projekty mają zdefiniowane te same biblioteki! Nie musi to być stricte ten sam zestaw, ale wszystkie użyte biblioteki w projekcie źródłowym muszą być na liście w projekcie docelowym. W przeciwnym wypadku program zamiast brakujących symboli wyświetli prostokąt ze znakiem pytajnika.

Do kopiowania pomiędzy projektami posłużymy się dwoma, a nawet trzema przydatnymi poleceniami. Pierwsze z nich znajduje się w menu Plik i jest to Dołącz arkusz schematu.... Dzięki niemu możemy na nasz bieżący arkusz nanieść zawartość innego arkusza, z innego projektu (lub poprzedniej wersji tego, który właśnie obrabiamy). Kopia będzie zawierać tylko zawartość tego arkusza, do tego ta operacja nie będzie mogła zostać cofnięta, o czym przypomni nam sam program i poprosi o wybór czy zapisać bieżący stan arkusza czy nie.

rys1.png

Po kliknięciu Tak lub Nie - w zależności czy zapisujemy arkusz czy nie - wybieramy plik z rozszerzeniem `.sch` w folderze projektu z którego chcemy skopiować schemat za pomocą normalnego okna wyboru pliku i gotowe. Stary schemat naniósł się na bieżący arkusz projektu. Przeniesieniu uległy nie tylko elementy oraz połączenia na schemacie, ale też treść ramki tytułowej. Dlatego takie kopiowanie powinno się wykonywać jeszcze przed zmianami na obecnym schemacie. W przeciwnym wypadku nasze dane z ramki będą zastąpione.
Tak samo moglibyśmy sobie narobić niezłego bałaganu jeśli na schemacie umieściliśmy już jakieś elementy oraz połączenia i będą one kolidować z tymi ze schematu kopiowanego. Nie będziemy w stanie ich później łatwo rozdzielić!

My jednak kopiujemy na pusty arkusz, więc treść ramki możemy poprawić i żadnej kolizji nie doświadczymy. Wypadałoby nasz "stary-nowy" schemat nieco okroić, ponieważ wykorzystamy z niego tylko część dotyczącą zasilania. I w tym znów pomogą nam operacje na blokach, które wykorzystamy do grupowego usunięcia niepotrzebnych nam fragmentów.

Zaznaczmy więc samą część zasilającą i przesuńmy nieco wyżej w poznany już sposób. Teraz zaznaczmy wszystko co poniżej samego układu zasilania, ale tym razem w momencie jak pojawi się "rączka" zamiast kursora, naciśnijmy prawy klawisz myszy. W rozwiniętym menu znajdziemy polecenie Usuń blok, które spowoduje, że wszystko co zostało zaznaczone blokiem zostanie całkowicie usunięte. Aby nie "bawić się" w klikanie możemy też wykorzystać skrót klawiszowy. Jeśli przed i w trakcie zaznaczania bloku będziemy trzymać wciśnięte klawisze Shift oraz Ctrl to operacja kasowania rozpocznie się tuż po puszczeniu lewego klawisza myszy.

rys2.png

Operacje na blokach są często dość przydatne i warto się ich nauczyć. Jest ich kilka i poznamy je w trakcie w odpowiednich dla tego momentach. Chyba, że ktoś - nadprogramowo - chce poeksperymentować już teraz...

Co zrobić by pozbyć się tej drobnej wady z nakładaniem się schematów i samemu zdecydować co i gdzie skopiować? Możemy do tego wykorzystać polecenia związane z blokami, ale jest to o tyle nieco trudniejsze, gdyż projektanci Eeschema jeszcze nie zaimplementowali w 100% takiego wariantu kopiowania. Za pomocą operacji blokowych możemy kopiować fragmenty schematów i umieszczać je w dowolnym miejscu. Normalnie działa to w obrębie jednego schematu lub hierarchii, ale pewna sztuczka pozwoli nam na kopiowanie pomiędzy projektami.

Zamknijmy edytor schematów. Z menu start systemu Windows lub wyzwalaczach aplikacji w innych systemach uruchamiamy bezpośrednio program Eeschema, bez użycia przycisków Menadżera projektu. W menu Plik znajdziemy teraz niedostępne wcześniej polecenie Otwórz.... Otwieramy schemat z którego chcemy coś skopiować. Zaznaczamy to blokiem i z menu podręcznego wybieramy Kopiuj blok. Dzięki temu blok zapisze się w wewnętrznej pamięci edytora schematów. Nie zamykając programu, otwieramy teraz schemat gdzie chcemy nasz blok wkopiować. Teraz z górnego paska narzędziowego wybieramy ikonę wklejania. Nasz blok przykleił się do kursora i możemy go umieścić w wybranym przez nas miejscu. Po wstawieniu bloku zapisujemy schemat i zamykamy Eeschema.

rys3.png

Wracamy do naszego projektu i z niego otwieramy edytor schematów. Schemat powinien zawierać skopiowany przed chwilą blok na swoim miejscu.

Ważne! Bardzo istotne przy tej operacji jest pozostawienie otwartej jednej instancji programu Eeschema. Zamknięcie programu oczyszcza wszystkie bufory w pamięci i nasz blok zostanie zapomniany, gdyż nie jest to operacja wykonywana przez standardowy schowek.

Wracamy teraz do naszego projektu. Do jego narysowania będziemy potrzebować jeszcze kilku elementów. Proponuję w bibliotekach odszukać mikrokotroler ATmega161, zatrzask 74LS373, pamięć 6116 oraz wyświetlacz LCD HY1602E.
Nasz projekt będzie zakładał, że wykorzystamy zewnętrzną magistralę danych oraz adresową do odczytywania i zapisywania w zewnętrznej pamięci danych, a pod specjalnymi adresami - w tzw. dekodowaniu niepełnym - będzie też wyświetlacz.

rys4.png

By to wszystko razem połączyć normalnymi połączeniami musielibyśmy użyć ponad 50 różnych sygnałów: 16 adresów, 8 danych, parę sterujących. Rysując je jako normalne nitki połączeń to szybko schemat stałby się nieczytelny. Co więcej, pewnie nie zmieściłby się też na kartce rozmiaru A4. Dzięki magistralom schemat będzie wyglądał o wiele lepiej i przede wszystkim czytelniej.

Połączenia pseudo-magistralowe

Jak już wspomniałem na początku, w tym przypadku magistrale są w zasadzie tylko dekoracją, gdyż główną rolę będą odgrywać same etykiety, ale w połączeniu z magistralami powodują, że schemat staje się o wiele bardziej czytelny.

Info Bywają schematy, gdzie z użytych pinów wyprowadza się tylko krótkie połączenia by dodać do nich etykiety. Schemat nie wygląda wtedy najlepiej, ale jest to też pewna metoda na skomplikowane połączenia na schemacie. Takie postępowanie można uznać za stosowne jeśli wydzielimy na arkuszu schematu pewne funkcjonalne bloki, gdzie na "zewnątrz" bloki te będą się łączyć przez etykiety, ale połączenia "wewnątrz" bloku, wykonamy już w normalny sposób.

Rysowanie połączeń z wykorzystaniem magistral rozpocznijmy od pociągnięcia krótkich połączeń wyjściowych od wyprowadzeń elementów, które będziemy chcieli graficznie połączyć magistralami. W tym celu możemy skorzystać z dobrodziejstw klawisza powtarzającego: Insert. Rysujemy krótkie pierwsze połączenie od pinu PA0 i kończymy je mniej więcej w jednej trzeciej odległości od zatrzasku. Teraz, 7-krotnie naciskamy Insert...

rys5.png

Zauważcie co się stało. Program zaoszczędził nam nieco pracy powtarzając połączenia, ale za każdym razem dokonując skoku o 2 punkty siatki w dół! Podobnie zróbmy w przypadku portu PC, znów rysując tylko początek połączenia z portu PC0 i 7-krotnie powtarzając przez Insert.

Przełączmy się teraz na rysowanie magistrali i narysujmy jej fragment w odległości dwóch punktów siatki od końcówek połączeń portu PA. Tak by wyglądało to jak na obrazku poniżej:

rys6.png

Taka odległość jest zamierzona, gdyż użyjemy jeszcze specjalnych elementów zwanych wejściami do magistrali, a one właśnie tyle miejsca potrzebują. Wybieramy zatem narzędzie do stawiania wejść połączeń do magistrali z prawego paska narzędzi i rysujemy jedno z nich w miejscu punktu aktywnego - kwadracik na końcu linii - pierwszego połączenia. U mnie wejście pojawi się skierowane w dół. W zasadzie nie ma to znaczenia, ale jest możliwość jego obrócenia, by było skierowane w górę i z niego skorzystamy. W ten sposób wejścia do magistrali będą wyglądać nieco lepiej.
Ustawiamy kursor nad wejściem do magistrali i z menu dostępnego spod prawego klawisza myszy wybieramy Ustaw wejście magistrali. Wejście powinno się skierować w górę i ta orientacja zostanie teraz zapamiętana. Stawiamy kolejne wejście przy połączeniu wychodzącym z PA1 by się przekonać, czy tak jest. Jeśli wszystko zrobiliście dobrze to mamy już dwa wejścia z odpowiednią orientacją. Resztę narysujemy powtarzając klawiszem Insert.

rys7.png


Teraz zabierzmy się za stawianie etykiet, które nadadzą nam nazwy połączeń. Wybieramy narzędzie do umieszczania etykiet i stawiamy pierwszą na połączeniu z PA0. Nazwijmy ją D0 (D zero), bo będzie to część szyny danych. I teraz najlepszy trick: Naciśnijcie Insert...

Otórz program dodał kolejną etykietę poniżej czego się można było w sumie spodziewać, ale automatycznie zmienił jej numer na następny!

rys8.png

Właśnie poznaliście następną przyjazną funkcję programu. Program potrafi wstawiać kolejne etykiety i zmieniać im numerację o zadany krok. Domyślnie jest to krok o jeden, ale wcale nie musi tak być. Opcjami powtarzania klawiszem Insert w przypadku połączeń i etykiet zarządzają następujące opcje w ustawieniach programu Eeschema:

rys9.png

Tym prostym sposobem mamy już narysowany fragment magistrali i ponumerowane połączenia. Teraz w ramach zadania domowego możecie utworzyć pozostałe części połączeń pseudo-magistralowych oraz dodać pozostałe etykiety sygnałów adresowych, danych i sterujących, tak by wyglądało to mniej więcej w ten sposób:

rys10.png

Aby jednak schemat wyglądał jeszcze ładniej, należy te odcinki magistral jakoś połączyć. Możemy przeciągnąć kolejną linię magistrali po wierzchołkach pozostawionych części magistral, ale moim zdaniem nie będzie to wyglądało najlepiej. Warto na górnych końcach pionowych pododawać wejścia magistrali do magistrali. Dodaje się je i obraca tak samo jak wejścia zwykłych sygnałów do magistrali.

Gdy już pododajemy te wejścia, nie pozostanie nam nic innego jak dodać poziomą linię magistrali spinającą wszystko w całość.

rys11.png

Tym oto sposobem powstała pseudo-magistrala spinająca wszystkie sygnały i rozprowadzając je po całym schemacie. Nie mamy też większego bałaganu z krzyżującymi się połączeniami.

Połączenia magistralowe

Wiemy już jak skorzystać z możliwości rysowania pseudo-magistral by schemat stał się bardziej czytelny, lecz to nie koniec możliwości magistral w programie Eeschema. Jeśli dokonamy drobnej zmiany na schemacie:

rys12.png

Wtedy nasze magistrale staną się prawdziwymi magistralami.
Jak widać, mamy teraz dwie magistrale:
  1. Magistrala danych, zwana D[0..7],
  2. Magistrala adresowa, zwana A[0..15].
W dalszym ciągu by sygnały dołączyć do takich magistral musimy posługiwać się etykietami z oznaczeniem literowo-numerycznym - ale już bez nawiasu.

Co oznacza taki zapis D[0..7]? Informuje on o tym, że ta magistrala ma nazwę D i składa się z 8 linii ponumerowanych od 0 do 7. Numerować możemy prawie dowolnie, byleby pierwsza liczba indeksu była mniejsza niż druga liczba indeksu. Bez problemu możemy magistralę nazwać DANE[8..15]. W dalszym ciągu będzie to magistrala o 8 liniach, ale z inną numeracją.

Dodanie nazw dla magistral by stały się one takimi prawdziwymi magistralami może na pierwszy rzut oka wydawać się niepotrzebne, bo przecież to samo moglibyśmy zrobić stosując pseudo-magistrale, a połączenia i tak byłyby nawiązane. Jest jednak jedna właściwość takich magistral, obok której nie możemy przejść obojętnie. Takie magistrale można ze sobą łączyć z zachowaniem porządku liczbowego sygnałów!

Wyobraźcie sobie nieco abstrakcyjną sytuację, gdzie mamy magistralę DATA[0..15] i chcielibyśmy ją rozdzielić na dwie połówki: DATAL, którą transmitowaliśmy bajt LSB i DATAH, którą transmitowalibyśmy bajt MSB. Gdy do słowa DATAL dodamy indeks [0..7], a do DATAH indeks [8..15] to będziemy mieć w sumie trzy magistrale: DATA[0..15], DATAL[0..7], DATAH[8..15]. Jeśli połączymy je ze sobą - podobnie jak zwykłe połączenia za pomocą węzłów - to odpowiednie linie obu magistral połączą się ze sobą! Np. DATA0 połączy się z DATAL0, DATA14 zaś połączy się z DATAH14, itd.
rys13.png

Nie wygląda to może zbyt elegancko, ale tylko tą metodą można łączyć magistrale z wykorzystaniem tego mechanizmu.

Uwaga W tym miejscu bardzo ważna uwaga. Program łączy według nadanych indeksów, a nie według kolejnych linii składowych magistrali. Program nie połączy DATA[0..15] z magistralą DATAHIGH[16..31], tak by linia DATA0 połączyła się z DATAHIGH16.

Być może nie daje to teraz prawie żadnych korzyści, ale magistrale które jawnie nazwiemy i nadamy im indeksy będzie można stosować w schematach hierarchicznych, by daną magistralę wprowadzić do innych arkuszy takiego schematu.

Na zakończenie

W sumie to tyle w kwestii magistral na tym etapie poznawania programu. Co do następnego odcinka to zastanawiam się czy iść za ciosem i kontynuować tworzenie schematów - tym razem hierarchicznych, wieloarkuszowych - czy na chwilę przerwać i opisać tworzenie symboli bibliotecznych. Co o tym sądzicie?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Awatar użytkownika
acid3
User
User
Posty: 428
Rejestracja: czwartek 03 wrz 2015, 22:42
Lokalizacja: Kłopoty-Stanisławy
Kontaktowanie:

Re: [KiCad] Projektowanie w KiCad 5.0 - Cz.4 Rysujemy pierwsze schematy, rozdział drugi

Postautor: acid3 » sobota 26 sty 2019, 09:14

Schematy hierarchiczne, to jest właściwa droga :mrgreen:

Awatar użytkownika
Marcin
User
User
Posty: 198
Rejestracja: środa 09 wrz 2015, 19:30

Re: [KiCad] Projektowanie w KiCad 5.0 - Cz.4 Rysujemy pierwsze schematy, rozdział drugi

Postautor: Marcin » sobota 26 sty 2019, 19:21

acid3 pisze:Schematy hierarchiczne, to jest właściwa droga :mrgreen:

Potwierdzam i też jestem za kontynuacją tworzenia schematów w tym hierarchicznych.

zoom
Posty: 6
Rejestracja: wtorek 12 mar 2019, 21:31

Re: [KiCad] Projektowanie w KiCad 5.0 - Cz.4 Rysujemy pierwsze schematy, rozdział drugi

Postautor: zoom » środa 13 mar 2019, 22:28

Witam Panie i Panowie!
W pracy rysuję w Altium Designerze, a w domu... był Eagle, ale to mało eleganckie rozwiązanie mieć ograniczenia w wielkości płytki dla darmowej wersji.
Do KiCada już raz podchodziłem, jakoś szło. Jak się okazuje (czego dowiedziałem z poprzednich części), korzystałem ze stronki kolegi ZbeeGin - polskie centrum KiCada.
Teraz czytam ten kurs - świetny! Przyjemnie się brnie z autorem przez kolejne zagadnienia.
Świetna seria :!:

P.S.
Miło było odkryć tu dawnych "kolegów", a raczej mentorów, których się podziwiało na elportalu! ;) Było to ze 12 lat temu!
ZbeeGin, który dawno już odszedł z tamtego forum - pamiętam do dziś...
Tasza!
wojtek!
i inni...

Super sprawa odkryć Was na nowo!

Wracam do kursu... ;)


Wróć do „KiCAD”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość