Skocz do zawartości

Sprawdzenie poprawności schematu i PCB.


fobos319

Pomocna odpowiedź

Witam wszystkich.

Zaprojektowałem całkowicie od nowa elektronikę do platformy zamieszczonej w worklogu (Cruscher). Stara wersja została zniszczona w spotkaniu z oponą samochodu 🙁

Proszę o sprawdzenie poprawności projektu gdyż mogłem popełnić głupi błąd lub czegoś nie zauważyłem

Głównie chodzi mi o iNEMO -pierwszy raz go będę używał i nie wiem czy dobrze zrozumiałem DS 😋 .

Proszę o sprawdzenie również PCB.

Krótki opis co i jak :

4 silniki + 4TB6612

LiPol 7,4V 2200mAh

6 HC-SR04

1 HC05

Atmega 128

1 Lsm330dlc iNEMO

1 uSD

2 Tsop

Zabezpieczenie przed odwrotnym podłączeniem baterii.

Zasilanie nisko prądowej części przez przełącznik.

Zasilanie mostków H przez przekaźnik po sprawdzeniu napięcia baterii.

W załączniku pliki z eagla

Desktop.rar

Link do komentarza
Share on other sites

Moim zdaniem nie musisz używac konwerterów poziomów do współpracy z dalmierzami. Nawet jeśli wstawili tam układy HCMOS to i tak Twoje 3.3V łapie się na jedynkę logiczną wyzwalającą impuls sondujący więc w tę stronę jest prosto. W drugą - coż, nikomu nie chciało się opisać jak wygląda wyjście tego dalmierza ale nawet w tej sytuacji można by to uprościć do diody i opornika.

Jaki jest zamysł włączania zasilania mostków przekaźnikiem? Co i przed czym ma to zabezpieczać? Przekaźnik na sensowny prąd jest zwykle duży, ciężki i zawodny. Może do awaryjnego wyłączania silników mógłbyś użyć wejść STBY mostków? Baza tranzystora załączającego przekaźnik nei może tak po prostu wisieć w powietrzu gdy procesor jeszcze nie zaprogramował portów. Nie masz pewności, że prąd upływu wyjścia nie załączy tranzystora. Oporniki 420R nie istnieją w żadnym szeregu wartości.

Dlaczego nie użyłeś dedykowanego interfejsu I2C zawartego w procesorze? Jest dużo wygodniejszy i znacznie mniej obciąża procesor niż czysto programowa realizacja. A jeśli chcesz naprawdę używać akcelerometrów, będziesz musiał je dość często czytać.

Warto poczytać jakie funkcje mają wyjścia przerwań z iNEMO. Czasem warto podłączyć je do zwykłego wejścia procesora (a coś Ci jeszcze tam zostało) i sprawdzić stan jednym ruchem, niż robić to samo przez I2C.

Symbol elementu F1A - domyślam się, że miał to być bezpiecznik - jest kuriozalny. Nie mogłeś wstawić symbolu choćby opornika?

Po co mierzysz napięcia +5 i +3.3V? Jakiś test stabilizatorów? To lepiej zmierz je przed wlutowaniem. Czy nie wystarczy pomiar napięcia akumulatora?

Lekką ręką pozbywasz się cennych zasobów jak np. drugi UART. Może wykorzystaj go do komunikacji z BT (wtedy być może nie musiałbyś używać zworek odcinających) albo wypuść na złącze EXP.

Dalmierze pewnie i tak nie będą odpalane więcej jak jeden na raz z powodu wzajemnych interferencji więc zamiast zużywać na nie takie mnóstwo pinów mógłbyś sterować je przez dekoder a czytać przez wysterowany tym samym adresem multiplekser. Zamiast obecnych 12 linii byłyby 3 adresy + 1 wyjście + 1 wejście i dwa scalaki po 1zł.

Sprawdź, czy mega128 może pracować na 16MHz przy 3.3V.

PCB nie sprawdzam, od tego są programy CAD. Jeśli schemat jest poprawny to płytka ma dokładnie te same połączenia a ponieważ nie jest to i tak wersja ostateczna, nie ma co oglądać.

  • Lubię! 1
Link do komentarza
Share on other sites

Witam .

Dzięki za słowa krytyki zawsze mnie motywują 😃

A teraz do rzeczy:

Rezystor -ale wtopa miało być 470R 😃

Pierwszy raz mam styczność z HC SR04 i właśnie nie jestem pewien czy zinterpretuje 3,3V jako logiczną "1", dlatego rozbiłem wszystko na oddzielne piny . Mam nadzieje ze masz racje .

Co do wyjścia SR04 to muszę zobaczyć jak to tam polutowane może będę miał szczęście i będzie OC podciągnięte do 5V i wystarczy wylutować rezystor i podciągnąć do 3,3V ???

Przekaźnik akurat miał służyć do całkowitego odcięcia zasilania aby układ nie pobierał nawet 1mA ale twoja wypowiedz mnie przekonała i podciągnę STBY do zera i podłącze do Atmegi .(tylko będę musiał pamiętać aby odłączać baterie przy dłuższym nie używaniu mostki w STBY biorą po ok. 2mA)

I2C chciałem programowo ponieważ przerwania mi się skończyły a potrzebowałem jeszcze 2 do TSOP i tak wypadło.Co do przerwań to też masz racje nawet nie musi być to przerwanie a zwykły pin wejściowy i już wiek kilka przydatnych rzeczy, wiedziałem że coś pominąłem w DS 😳

To samo tyczy się UART 2.

A F1A to bezpiecznik 1A akurat kondensator tantalowy w obudowie "C" mi pasował pinami i zapomniałem edytować symbol.

Kontrola 5V i 3,3V tak dla siebie że wszystko ok z napięciami ale właściwie można usunąć .

Co do sterowania SR04 to znalazłem demultiplekser w http://electropark.pl 74HC138 i działa na 3,3V. Tylko mam problem z multiplekserem 🙁 nie chce zamawiać z innego sklepu bo przesyłka wyjdzie drożej niż sam scalaczek.

No i klops to demultiplekser ale inwersyjny :-(nie chce jeszcze wstawiac dodatkowo bramek NOT

Zna może ktoś na szybko łatwo dostępne multi- i demulti- pleksery ??

Atmega128A chodzi 24h\7 na 20MHz przy 3,3V jako ramka do zdjęć i zegarek na biurku z LCD od S65 i uSD, także na 16MHz ten egzemplarz też będzie chodził chociaż wiem, że to przekracza wartości w DS ale to nie sprzęt medyczny nie zależy od niego życie

Musze poszperać w szafie może gdzieś na płytach głównych lub innych szpargałach znajdę ten multiplekser 😃

Dzisiaj lub jutro postaram się wstawić poprawiony schemat płyty głównej do dalszej oceny poprawności .

Dzięki za słowa krytyki która zawsze motywuje, a nie chce gotowców 😃

EDIT:

Zmiany na schemacie multiplekser \ demultiplekser znalazłem w Botlandzie, sugerowane poprawki naniesione .

Teraz jak to wygląda ?? jeszcze coś zmienić dołożyć??

1.rar

Link do komentarza
Share on other sites

Lepiej.. ale:

O ile 4051 sprawdzi się jako multiplekser wejściowy to w drugą stronę, podczas pracy jako dekoder - nie bardzo. Tylko jedno, wybrane wyjście będzie oddawało stan wejścia TRIGER do sonaru - to dobrze 🙂 ale pozostałe linie Xn będą wisiały wtedy w trzecim stanie 🙁 i musisz użyć 6 oporników ściągających te linie w dół. Być może lepszym rozwiązaniem jest użycie dekodera 4028. Jego wejść ABC używasz jako adresów a na D zapodajesz trigger. Tylko jedno, wskazane adresem wyjście będzie przekazywało impuls wyzwalajacy (jedynkę) do "swojego" sonaru a pozostałe będą trzymane w stanie niskim. Nawiasem mówiąc staraj się tak rysować schematy by wejścia były z lewej a wyjścia z prawej - fragment z dekoderem jest bardzo mylący.

Jeśli wejścia STB mostków są zwarte i sterowane jednym sygnałem to wystarczy im jeden opornik ściągający do masy.

Nie wiem jakich stabilizatorów użyjesz ale jak zrozumiałem cała ta zabawa z przekaźnikiem miała na celu odłączanie obciążenia w celu... ? Czego? Przetrzymywania robota na półce z podłączonym akumulatorem? To trochę bez sensu ale może czegoś nie rozumiem. Jeżeli chcesz zminimalizować obciążenie w jakimś stanie oczekiwania to przemyśl cały łańcuch zasilania. Być może oprócz wyłączania mostków trzeba jeszcze wyłączać stabilizatory (są takie) lub po prostu odcinać cały akumulator jakimś osobnym układem. Jeśli procesor ma być zostawiany "pod prądem" to po pierwsze jego stabilizator nie może sam brać więcej jak kilkanaście uA a po drugie najlepiej uśpić go do power-down lub power-save. Nawet 100% stan idle na 16MHz pobiera całkiem niezły prąd więc ten raczej odpada. Z trybu PD wychodzi jednak tylko od zewnętrznego przerwania więc trzebaby zapewnić jakis mechanizm budzenia. Z PS można wystartować od zegarka 32kHz więc może jakoś tak? Nie wiem co Ci chodzi po głowie.

Mając aż dwa wejścia ICn pokusiłbym się o sprzętowy pomiar czasu powrotu echa z sonaru. Odżałowałbym jeden timer i do jego wejścia IC doprowadziłbym np. sumę sygnałów TRIGER i ECHO. Zbocze narastające (lub opadające?) tego pierwszego wyznaczałoby "chwilę zero" przez zatrzaśnięcie zawartości swobodnie pracującego timera w odpowiednim rejestrze IC a zbocze narastające drugiego impulsu ponownie robiłoby to samo. Po odjęciu obu wartości miałbyś czas powrotu echa i na dodatek jeszcze cały pomiar chodziłby na przerwaniach. Aż żal tego nie wykorzystać.

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Witam.

Jak rozumiem to po zastosowaniu rezystorów do masy przy 6 trigerach to będzie ok bez zmiany układu tak ?? Jeszcze ich nie zamówiłem ale pytam czy to zda egzamin.

Układ dekodera i kodera na schemacie poprawiłem po wstawieniu go na forum i zapomniałem tu zmienić.

To samo tyczy się rezystorów przy TB6612 pozostał tylko jeden .

Co do oszczędności energii itd. zrezygnowałem z tego całkowicie tylko wyłącznik pozostał na stabilizatory, przekonał mnie twój poprzedni post i jeszcze raz sobie to przemyślałem .

Początkowo też myślałem o PD lub PS ale odpuściłem to całkowicie.

Po co oszczędzać energie w robocie który będzie jeździł po domu :->

Jak mu energii zacznie brakować na dojazd do stacji bazowej (dlatego 2 TSOP ,dla dokładnego obrania kierunku 2 latarnie ) to wyśle Komunikat przez BT(zapisana ostatnia pozycja z dalmierzy i trasa z iNEMO) i wyłączy silniki ,LED,wyłączę przerwania , iNEMO też przełączę w PS i tak będzie czekał aż po niego przyjdę 😃

Co do ICn to pozostaje IC3 na T3 , gdyż T1 będzie generował PWM , T0 obsługuje kwarc zegarkowy.

Co masz na myśli sumując Triger i Echo na myśl przychodzi mi bramka "AND",lub 2 diody Schootkiego ? Dobrze kombinuje ???

1.rar

Link do komentarza
Share on other sites

Z dwóch diodek (i opornika) można zrobić zarówno OR jak i AND. Tobie potrzebna jest bramka OR - którakolwiek z jedynek na wejściu ma dawać stan wysoki na wyjściu. Wtedy wejście IC będzie widziało zarówno impuls wyzwalający jak i powrotny. No i chyba nie musisz na osobne wejście procesora podawać sygnału ECHO. Przecież zrobiona na bramce suma też wystarczy do detekcji nawet gdybyś funkcji Input Capture nie wykorzystał.

Moim zdaniem dodatkowe blokowanie multiplekserów jest niepotrzebne. Jeśli naprawdę będziesz chciał odciąć sonary od procesora (po co?) to wystarczy, że wystawisz adres 6 lub 7.

Warto byłoby sprawdzić, czy sonary nie mają już takich rezystorów u siebie. Byłoby dziwne, gdyby ich konstruktor zostawił wejście wiszące w powietrzu lub co gorsza podciągnął je do stanu aktywnego. W każdym razie te u Ciebie nie zaszkodzą.

Jeśli nie jesteś bardzo ściśle ograniczony miejscem to ja bym wszystkie wolne sygnały procesora wyciągnął na jakieś złącze (złącza?) EXT. Nigdy nie wiadomo, co Ci kiedyś przyjdzie do głowy. Jak nie w rozbudowie tego robota, to nawet jako płytka próbna w innej konstrukcji takie PCB może się przydać. Łatwiej dospawać się kabelkiem do złącza 100mils niż do nóżki TQFP64. Albo przynajmniej daj przelotki lub jakieś punkty testowe jako odejścia od nieużywanych padów.

Może warto dodać jakiś bipczak lub głośniczek? Kiedy mój kot śpi to moge go szukać godzinę ale kiedy zamiauczy to od razu wiem gdzie jest. Z głośniczkiem to możnaby nawet wygrywać jakieś sygnały informacyjne lub ostrzegawcze (R2D2?) lub czasem coś zagadać (C3PO?). Wiem, że robot ma BT ale ludzie jakoś nie mają tego interfejsu wbudowanego domyślnie za to "tor audio" owszem 🙂

  • Lubię! 1
Link do komentarza
Share on other sites

OK .

To z blokowania multiplekserów rezygnuje,z wolnymi portami też myślałem aby tak zrobić ale dopiero na sam koniec chciałem je na goldpiny wyprowadzić żeby ważniejsze rzeczy najpierw uporządkować.

Co do buzera to fakt dobry pomysł , a co myślisz o xxx.wav na pwm 😃 akurat mam mały słuchawkowy wzmacniaczyk w SO-08 i głośniczki od laptopa takie małe 1W a do tego uSD i proste komunikaty można by wgrać , R2D2 i C3PO dobre odrazu mi się SW przypomina 😃

Tak w ogóle to leci zimny browarek i pomógł za na prawdę pomocną dłoń dla ambitnego hobbisty 😅

1.rar

Link do komentarza
Share on other sites

Wrzucam poprawiony schemat na którym pozmieniałem wszystko wg. zaleceń kolegi marek1707 jak również PCB z poprawkami.

Zmieniłem sterowanie dalmierzy HC-SR04 , wywaliłem zbędne konwertery poziomów logicznych (HC-SR04 rozpoznaje poziom na TRIGER 3,3V jako wysoki,jak również znalazłem w google na jakiejś niemieckiej stronie wzmiankę o sterowaniu bezpośrednio jakimś procesorem 3,3V),odczyt zrobiłem tak jak proponował marek1707 suma ECHO i TRIGER na 2 diodach i rezystorze na wejście ICP3 w procesorze.

Dodałem Buzzer , wzmacniacz słuchawkowy do odtwarzania xxx.wav(obsługiwany będzie przez T0 , wyłączę kwarc zegarkowy na czas generowania PWM) , wyprowadziłem wszystkie wolne piny na złącza .

Wszystkie możliwe wyjścia iNEMO podłączyłem do procesora , bardzo ułatwią życie 😃 , wszystko co się dało podłączyłem pod sprzętową obsługę .

Może macie pomysł co jeszcze dołożyć do wszędobylskiego robota domowego ???

(tylko żadne WI-FI , kamery itd. bo tego poczciwa Atmega nie uciągnie 😃) Trochę miejsca na PCB jeszcze da się wygospodarować.

Mam nadzieje, że tym razem nie popełniłem poważnych błędów ale o ocenę proszę kolegów z większym doświadczeniem .

Wrzucam tutaj całą dokumentacje dla innych użytkowników jak i do sprawdzenia pod względem błędów.

Desktop.rar

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.