Archiwa kategorii: Quick-TIP

Niekompatybilność plików z wersji testowych

Rozwinięcie problemu

Niektórzy użytkownicy wersji testowych (jak i tzw. Nightlies) z pewnością zauważyli, że próby otwarcia plików .kicad_pcb zapisanych przez nie w wersjach stabilnych są skazane na niepowodzenie. Jest to związane z drobnymi zmianami w formatach plików, które uwzględniają nowe opcje pojawiające się w wersjach testowych, których wersje wersje stabilne po prostu nie rozumieją.

Problem nr. 1 – Parametry trasowania par różnicowych

Pierwszy problem może wystąpić podczas odczytu plików, które tylko zostały otwarte i ponownie zapisane przez wersję testową. Dodaje ona do każdej sekcji net_class dwa dodatkowe parametry określające reguły trasowania par różnicowych (wartości mogą się różnić):

(diff_pair_gap 0.25) 
(diff_pair_width 0.2)

Aby wyeliminować ten problem, należy odszukać te parametry we wszystkich sekcjach net_class i po prostu całkowicie usunąć te linie. Po tej operacji pliki powinny dać się odczytać ponownie w wersjach stabilnych.

Problem nr. 2 – Parametry pól lutowniczych

Drugi problem jest znacznie poważniejszy, gdyż wymaga nieco większej interwencji w pliku .kicad_pcb a możliwe, że także w plikach .kicad_mod.

Okazuje się, że do kształtów pól lutowniczych został dodany nowy kształt w postaci zaokrąglonego prostokąta. Dlatego edycja samego pliku z obwodem drukowanym może nie wystarczyć, jeśli takie pola występują również w bibliotekach footprintów. Poniżej znajduje się przykład takiego pola:

(pad 1 thru_hole roundrect (at -1.905 0) (size 2.0 2.0) (drill 0.8) (layers *.Cu *.Mask)(roundrect_rratio 0.25))

Aby wyeliminować ten problem można skasować taką linię, ale pozbywamy się wtedy pola lutowniczego, które po ponownym otwarciu piku należy dodać. Lepiej jest zamienić treść linii na taką, która zostanie poprawnie zinterpretowana. Pierwszą możliwością, jest zamiana pola z zaokrąglonego prostokąta na zwykły prostokąt:

(pad 1 thru_hole rect (at -1.905 0) (size 2.0 2.0) (drill 0.8) (layers *.Cu *.Mask))

Zamieniamy w tym celu słowo roundrect na rect i wycinamy ostatni parametr roundrect_rratio.  Druga możliwość to zamiana pola na okrągły:

(pad 1 thru_hole circle (at 1.905 0) (size 2.0 2.0) (drill 0.8) (layers *.Cu *.Mask))

Tym razem zamieniając słowo roundrect na circle i tak jak wyżej pozbywając się ostatniego parametru.

Przy tego typu problemie warto też przeanalizować footprinty w bibliotekach jakie zostały wykorzystane w tym projekcie, aby ustrzec się przed dalszymi błędami wynikłymi z użycia tej biblioteki. Dlatego przy tej edycji warto spojrzeć na linię znajdującą się nieco wyżej:

(module Wire_Pads:SolderWirePad_RR_2x_0-8mmDrill ...

Wskaże ona nam w jakiej bibliotece i w jakim footprincie znajdziemy problematyczne pole.

Po edycji typu pól lutowniczych w pliku .kicad_pcb obowiązkowe jest przeprowadzenie ponownego procesu wypełniania stref oraz przeprowadzenia kontroli reguł projektowych DRC.

Problem nr. 3 – Dodatkowy parametr hide

Ten błąd może się pojawić po zapisaniu projektu z obwodem drukowanym w testowej kompilacji BZR7525. W sekcji module może pojawić się dodatkowy parmetr hide występujący na końcu linii. Zwykłe usunięcie tego parametru rozwiązuje problem.

Ponieważ parametr ten należy także do prawidłowej składni formatu plików .kicad_pcb w wersji 4.0.x i jego wystąpienie w innych miejscach zwykle jest prawidłowe należy bardzo uważać aby nie usunąć całkowicie poprawnego parametru. Dlatego należy się bezwzględnie posiłkować danymi z okna błędu, gdzie wskazano w której linii występuje niezrozumiały parametr.

ps. Błąd ten został zgłoszony i obecnie może już nie występować. Osoby, które zainstalowały ostatnio wersję stabilna programu mogły zainstalować już wersję odporną na ten błąd.

Na zakończenie

Każda modyfikacja plików za pomocą edytora powinna odbywać się po uprzednim zapisaniu kopii zapasowej (!!!) edytowanych plików.

Należy również pamiętać, by do edycji plików używać edytora, który poprawnie rozpoznaje pliki z kodowaniem UTF-8 (bez BOM), np. Notepad++. Inaczej edycja może zakończyć się komunikatem o rzekomym błędzie w pierwszej linii.

 

Błędy ERC i jak z nimi walczyć

Jednym z końcowych etapów projektowania schematu powinno być wywołanie funkcji sprawdzenia jego podstawowej poprawności – w skrócie zwanej ERC (Elecrical Rule Check). Z reguły podczas tego testu pojawiają się błędy i ostrzeżenia, które trzeba wyeliminować.

Oto wykaz błędów i ostrzeżeń zgłaszanych przez funkcję ERC i sposoby radzenia sobie z nimi.

ErrType(1) – Zdublowane nazwy arkuszy w podanym arkuszu

Należy przejrzeć nazwy arkuszy hierarchicznych umieszczonych na bieżącym arkuszu i wyeliminować ich duplikaty.  Taka sytuacja może się zdarzyć gdy kopiowano fragment schematu za pomocą operacji na blokach.

ErrType(2) – Pin nie jest połączony (i nie ma przypisanego symbolu „Niepołączone”)

Należy sprawdzić czy wszystkie nitki połączeń kończą się dokładnie w miejscu punktu aktywnego pinu, oraz sprawdzić czy wszystkie piny nie mające połączenia są oznaczone symbolem „Niepołączone”. Pierwsza sytuacja może wystąpić, jeśli podczas projektowania symboli wykorzystano nietypową siatkę.

ErrType(3) – Pin połączony do innych pinów, ale nie ma pinu sterującego

Błąd zgłaszany często dla pinów o charakterze wejścia zasilania. Porty zasilania – z biblioteki power.lib nie stanowią źródeł zasilania, gdyż są traktowane jako specjalne etykiety globlalne. Dlatego należy dodatkowo oznaczyć takie sieci symbolem PWR_FLAG jeśli nie mają one połączenia z innym sybmolem będącym wyjściem zasilania, np. baterią.

ErrType(4) – Pin połączony z innym pinem: Ostrzeżenie

Ostrzeżenie to występuje, jeśli narysowano połączenie pomiędzy pinami, ale nie uwzględniono faktu, że pewne rodzaje pinów wejściowych potrzebują określonych sygnałów wyjściowych lub może wystąpić pomiędzy nimi konflikt. Błąd ten najczęściej pojawia się gdy połączymy pin wyjściowy z pinem typu otwarty kolektor/emiter.

ErrType(5) – Pin połączony z innym pinem: Błąd

Błąd ten występuje, jeśli narysowano połączenie pomiędzy pinami, ale nie uwzględniono faktu, że pewne rodzaje pinów wzajemnie się wykluczają. Błąd ten najczęściej pojawia się gdy połączymy razem dwa piny wyjściowe lub dwie sieci mające status wyjścia zasilania (z flagą PWR_FLAG).

ErrType(6) – Niedopasowanie pomiędzy etykietami hierarchicznymi a pinami arkusza

Należy sprawdzić, czy piny arkusza podrzędnego są takie same jak etykiety umieszczone w tym arkuszu podrzędnym. Błąd ten pojawia się, gdy najpierw zaprojektowano kompletny symbol arkusza, a potem manualnie dodano odpowiadające im etykiety, popełniając tym samym błąd w ich nazwach. Najlepiej najpierw narysować sam arkusz hierarchiczny, zaprojektować jego schemat i odpowiednie etykiety, a dopiero na koniec zaimportować je do symbolu arkusza.

ErrType(7) – Symbol „Niepołączone” jest połączony z więcej niż jednym pinem

Symbol „Niepołączone” należy umieszczać w punkcie aktywnym danego pinu i ma być jedynym elementem do niego podłączonym.

ErrType(8) – Etykieta globalna nie jest podłączona z inną taką samą etykietą globalną

Należy sprawdzić, czy nazwy etykiet globalnych w całej hierarchii są poprawne i nie występują samotne etykiety tego typu.

ErrType(9) – Dwie etykiety są do siebie podobne pod względem różnej wielkości znaków

Przy zaznaczonej opcji „Testuj na podobność etykiet” narzędzie ERC może zgłaszać ostrzeżenia gdy napotka dwie etykiety, które wyglądają podobnie, np. input1 lub Input1 co może być niezamierzonym błędem projektującego. Należy wtedy dokładniej sprawdzić nazwy wskazanych etykiet czy nie popełniliśmy błędu.

ErrType(10) – Dwie etykiety globalne są do siebie podobne pod względem różnej wielkości znaków

Przy zaznaczonej opcji „Testuj unikalność etykiet globalnych” narzędzie ERC może zgłaszać ostrzeżenia gdy napotka dwie etykiety, które wyglądają podobnie, np. global_wr lub Global_wr co może być niezamierzonym błędem projektującego. Należy wtedy dokładniej sprawdzić nazwy wskazanych etykiet czy nie popełniliśmy błędu.

Jak pozbyć się wielokrotnych pinów zasilania z symboli?

Rozwinięcie problemu

Ostatnio zadano Mi pytanie czy można narysować symbol w ten sposób by kilka pinów stanowiących piny zasilania układu odnosiło się do jednego pinu. Eeschema nie posiada tego typu opcji, ale można problem obejść w nieco niestandardowy sposób.

Jak wiadomo, w niektórych elementach bibliotecznych – takich jak bramki logiczne – piny zasilania nie są jawnie wyprowadzane. Jest to wynik przyjętej ogólnie konwencji ich rysowania na schematach. Pod względem elektrycznym jednak piny te istnieją i są rysowane w symbolach, lecz ich widoczność jest specjalnie wyłączana. Wystarczy włączyć opcję Pokazuj ukryte piny by przekonać się o ich istnieniu.

Eeschema, by trzymać się przyjętej konwencji traktuje w specjalny sposób tego typu piny, które dodatkowo mają w swoich właściwościach zaznaczoną opcję Wejście zasilania. Eeschema na podstawie nazwy tych pinów dołącza je do sieci nazwanej tak samo jak nazwa pinu. Dlatego, jeśli narysujemy taki pin i nazwiemy go GND, to program dołączy ten pin do istniejącej sieci GND.

Właśnie ten mechanizm działania programu Eeschema pomoże obejść problem.

Obejście problemu

Jeśli chcemy pozbyć się wielu pinów zasilania z symboli powinniśmy narysować wszystkie tego typu piny i w opcjach każdego z nich wybrać opcję Wejście zasilania. Następnie pozostawić widoczne tylko te z nich, które chcemy mieć jawnie narysowane na schemacie, a pozostałe ukryć odznaczając właściwość Widoczny w ich właściwościach.

Jeśli narysujemy schemat z takim symbolem i nie popełniliśmy żadnego błędu, to piny jawne utworzą poszczególne sieci zasilania, a piny ukryte zostaną do niej dodane automatycznie. Przykładowy obrazek pokazuje całą ideę oraz jej rezultat na obwodzie drukowanym. Górny schemat będzie widoczny gdy piny ukryte nie będą pokazywane; dolny zaś po włączeniu tej opcji.

pinyukryte

Aby zmniejszyć ilość zajmowanego miejsca przez piny ukryte można ustawić je na węższej siatce zmniejszając im rozmiar opisów jak i samą długość pinów. W przypadku tego ostatniego parametru nawet do zera.

Czego nie robić w tym przypadku

Nie warto umieszczać pinów widocznych i niewidocznych w tym samym miejscu dla danej szyny zasilania. Takie podejście, choć wydaje się właściwe jest jednak błędne, gdyż narzędzie do testowania poprawności symbolu od razu zgłosi błąd.

Nie warto też układać pinów ukrytych daleko poza obrysem symbolu, gdyż na drodze takiego pinu może pojawić się późniejsza nitka połączenia, która może być błędnie połączona z takim pinem.

Kopiowanie fragmentów schematów pomiędzy projektami

Problem

Czasem zachodzi potrzeba by fragment schematy narysowanego już w innym projekcie skopiować do projektu nad którym właśnie pracujemy. Można by z poprzedniego projektu przenieść cały schemat do nowego projektu, zmienić mu nazwę i niepotrzebne elementy usunąć jednak będzie to wymagało kilku Moim zdaniem niepotrzebnych operacji.

W programie Eeschema jest to możliwe bez przenoszenia się do systemu operacyjnego, ale wymaga to odpowiedniego podejścia. W innym przypadku taka operacja nie zadziała.

Rozwiązanie

Jeśli posiadamy już projekt schematu należący do projektu i chcemy wkomponować w nim fragment innego schematu to najpierw musimy z poziomu programu Eeschema otworzyć schemat źródłowy poleceniem Otwórz…. Następnie za pomocą myszy korzystając z operacji blokowej zaznaczamy wybrany fragment i z menu podręcznego wybieramy polecenie Zapisz blok. Fragment schematu zostanie zapamiętany w podręcznej pamięci. Następnie ponownie z poziomu programu Eeschema, znów korzystając z polecenia Otwórz… otwieramy schemat z bieżącego projektu. Teraz wywołujemy polecenie Wklej i umieszczamy skopiowany fragment na arkuszu.

Przy kopiowaniu bloku należy bezwzględnie pozostawić otwartą jedną kopię programu Eeschema. Zamknięcie programu spowoduje bezpowrotne skasowanie jego pamięci podręcznej.