Shoutbox 0 nowych PW 


 
Reply to this topicStart new topic
> Względnie uniwersalne PCB pod komp pokładowy., Może przyda się komuś co lubi drutować(Arduino?).
pszczelaszkov
post Sun, 28 Feb 2021 - 16:50
Post #1


Super User
Dołączył: Mon, 08 February 2016
Skąd: Piła





Pany mili, jako że mam wystrój bardziej cyfrowy niż analogowy w samochodzie to buduje sobie zamiennik komp pokładowego zamiast krainy tysiąca zegarków na słupku A.
Nie będę wrzucać tego w sekcje "sprzedam" bo sam nie wiem co sprzedaje i ilu lubiących drutować ludzi zostało na forum.
Ale w skrócie, planowo robiłem to tylko dla siebie i do portoflio, a 1 PCB zamówić się nie da. To mi zostało kilka prototypowych sztuk z których zupy nie ugotuje.
PCB wyglądaja tak:

Lekko polutowane coś koło tego.

Na pokladzie jest miejsce na Max6675 do EGT, jest pipczyk, jest kilka wejsc analogowych, kilka low side mosfetow, i wejscia izolowane optycznie z bramkami i opcjonalnym filtrem dolnoprzepustowym.
Analogowe można wybrać zworkami czy mają dzielić do GND czy +5, zaś low side fety mają do wyboru pull-up Vin i +5 gdyby czasami miały robić za wyjście sygnałowe.
Wyświetlacze dotykowe do tego są na wtyczce 4 pinowej po UARC'ie z protokołem tekstowym jak dla małp, UI ustawia się jak w powerpoincie.
Płytka jest wielka 10x10cm i starałem się unikać względnie nie potrzebnych układów, myślę że nawet ślepy to polutuje(dałem rade zwykłą kolbową łącznie z µC).
Główne WTYCZKI są wtykane bezpośrednio w PCB bez lutowania.

Dopisałem w temacie arduino, bo o ile docelowo wstawiłem tu atmege324PB, tak pinout jest podobny do 324, które to już są używane w arduino i jaj sobie nie dam uciąć ale na 90% powinno się dać z tym pobawić.
Ja sam nie wiem bo firmware robię w C, ale jeszcze nie jest wyprowadzone sensowne API dla zwykłych śmiertelników.
Tu jest SCHEMAT
Strona projektu jakby ktoś szukał więcej informacji: Github

Czy wybucha to nie wiem, na stole działa normalnie biggrin.gif
Uprzedzając pytania mimo że na podglądzie wyświetlacza jest AFR, to nie ma na pokładzie sterownika szerokopasmówki, zdecydowałem się zrobić to jako późniejszy projekt łączący się po I2C/CAN.

Jest ktoś zainteresowany takimi PCB?
Projekt zostawiam jako open source
Go to the top of the page
 
+Quote Post
Wspieraj forum
post Sun, 28 Feb 2021 - 16:50
Post #


Dotacja






Dotacja na forum
Go to the top of the page
 
Quote Post
Debal
post Sun, 28 Feb 2021 - 22:59
Post #2


User
Dołączył: Fri, 31 March 2017





Fajnie że chce Ci się robić takie rzeczy, jednak mam kilka uwag:

Po schemacie i ogólnym layoucie widać że dopiero zaczynasz przygodę z elektroniką, więc pozostałe płytki bardziej przydadzą Ci się do np. poćwiczenia lutowania. Jeżeli na stole to działa to super, w samochodzie już nie będzie tak kolorowo, w czymś z bezpośrednim wtryskiem poprawne funkcjonowanie jest bardzo wątpliwe. W internecie jest sporo bardzo opracowań jak projektować elektronikę do zastosowań samochodowych, także od producentów układów scalonych. Jeżeli Ci się nudzi, to polecam kupić jakiś "prosty" sterownik na szrocie i przeanalizować jego projekt, w każdym punkcie zadając sobie pytanie "po co są tu te elementy?" - a że w takich urządzeniach każdy cent się liczy, wszystko ma swoje zastosowanie.

Kolejny punkt który zadziwia mnie w projektach początkujących to wybór mikrokontrolera - obecnie za cenę atmegi możesz dostać sensowego ARMa z mnóstwem peryferiów, np. CANem, też działającego na 5V. Dodatkowo zrobienie projektu na mikroprocesory w C++ jest znacznie bardziej wartościowe jeżeli jest to "do portfolio".

Pozdrawiam
Go to the top of the page
 
+Quote Post
pszczelaszkov
post Mon, 01 Mar 2021 - 01:16
Post #3


Super User
Dołączył: Mon, 08 February 2016
Skąd: Piła





Tutaj trafiłeś, jestem bardziej programistą niż elektronikiem. Mam jeden sterownik Keishina na stole od CBR'ki i zastanawiam się właśnie na co tu tyle elementów jak i tak samoczynnie przestał działać tongue.gif.
Jakoś bardziej mnie przekonuje C jeśli chodzi o embedded. Ponadto po wstępnym rozeznaniu na rynku widzę że też go preferują lub nie ma to większej różnicy, chyba mało "low levelowych" projektów używa c+14 aby miało to znaczenie.
Co do µC zdaje sobie sprawę że teraz są czasy gdzie do głupiego spoofera czujnika na CR walą 32 bity. Ale atmege wybrałem nie przypadkowo, wiem ile zniesie, używałem już w innych kaskaderskich podłączeniach, oraz wstępne założenia zakładały że ma to być w miejscu komp pokładowego z Omegi A/Calibry, przez to potrzebowałem poczuć ograniczenia sprzętowe lat 80, a 8051 i zilog to już totalne dziady.
Zdaję sobie sprawę że schemat można bardziej profesjonalnie zrobić, ale przynajmniej jakiś jest biggrin.gif, uparłem się wrzucić wszystko na jeden arkusz, może przez to że jest wiele powtórzeń.

Generalnie dzięki za krytykę, co ciekawe dawałem już do analizy cały schemat jak i PCB pod względem fuck-upow. Spełnił założenia, aczkolwiek nie był analizowany pod użycie stricte automotive.
Gdyby miało to robić jakąś konkurencje to przede wszystkim nie byłby tak uniwersalny i duży, prawdopodobnie wsadził bym jakieś tanie molexy zamiast skedd'ow dla ucięcia kosztów. Postawił jakieś drivery przed FET'ami, przy tych częstotliwościach to nie ma żadnego sensu, ale wyglądało by profi. Cyfrowe wejście też nie potrzebuje schmidta z izolacja, ale fajnie mi wyostrza sygnaly izolując tym µC od śmieci. Ten low pass tez tam praktycznie tylko działa jak wpada sygnał z cewki i zaczyna oscylować back emf, w każdym innym zastosowaniu można go zmostkować.

Ciekawi mnie jeszcze pomysł z bezpośrednim wtryskiem bo tego nie brałem pod uwage. Zakładając podpięcie wejścia cyfrowego pod sygnał takiego wtryskiwacza, co może pójść nie tak? Na jakimś oscylogramie znalezionym na google widzę podobny przebieg do cewki z multisparkiem, w innej płytce uzywam tej konfiguracji do łapania back emf z cewki po 70v i jest ok(translacja sygnalu z 4 na 6 cylindrów), już 2 lata chyba z tym jeżdźe i nic nie padło. Chodzi o częstotliwość albo jakiś offset napięciowy?
Trzeba wziąć pod uwage że nie jest to piggyback, to ma służyć bardziej do monitorowania kilkunastu czujników i postawić jakieś wyjście nisko jak coś wychodzi poza normy, trochę popipczyć, albo ustawić amortyzator pwm'em dając dostęp z wyświetlacza. Może elektrozawory od air ride na tym postawie w drugim projekcie? W każdym razie trochę inna liga. Taki ot pierdolnik z zbiorem kilku przydatnych elementów, być może dla kogoś też będzie przydatny.

Na koniec spytam jeszcze co mocno rażącego można poprawić w layoucie i dlaczego? Uwzględniając zastosowanie.

Pozdrawiam
Go to the top of the page
 
+Quote Post
kapustus
post Mon, 01 Mar 2021 - 09:11
Post #4


Rookie
Dołączył: Thu, 21 January 2021
Skąd: Kraków





Hej, bardzo ciekawy projekt. Odemnie kilka uwag na przyszłość:

1) SW - w automotive głównie stosowane jest zwykłe C
2) uC - wybór Atmegi nie jest taki zły - oczywiście ceny tych procków są mocno przesadzone zwłaszcza że lepsze ARMy można kupić dużo taniej ale AVR jak sie używa watchdoga to są wmiare stabilne i bezawaryjne w samochodzie.
3) Schemat:
- Na zasilaniu pasuje dodać jakieś zabezpieczenie reverse polarity, nie zaszkodziło by wrzucenie też kilku dodatkowych kondensatorów 100n w celu lepszej filtracji.
- W automotive każde wejście/wyjście wyprowadzone na "wystający" pin powinno mieć jakiś kondensator ESD typu 10n.
- Symbole GND staraj się dawać w dół - generalnie taka jest niepisana zasada i lepiej się patrzy na schemat smile.gif
- Zasilanie częsci analogowej procka trzeba dobrze filtrować. Można jakiś dławik wrzucić lub poczytać datasheeta co tam atmel zaleca. Na pewno nie zaszkodzi dodatkowy kondensator 10n, 100n.
- Wejścia ADC - zakładsz głównie zasilane z 5V, można również wyprowadzić 12V wrzucając dzielnik napięcia - Dzielniki przelicz sobie zakładając w przypadku samochodu ponad 18V żeby nie uszkodziło procka podczas jakiegoś overvoltage. Dzielniki powinny też być nawet przy 5V, bo z tego co widzę to nie masz terminacji na wejściach ADC obecnie. A każdy pin procka wejściowy musi być podciągnięty w górę lub dół albo ustawiony jako wyjście - żeby procek nie zbierał zakłóceń.
4) Layout - nie miałem dużo czasu także takie rzeczy które się rzuciły mi w oczy:
- Ścieżek staraj się nie zakręcać pod kątem prostym - lepiej polecieć 45 stopni + 45 stopni.
- Prowadzenie ścieżek na brzegach PCB - odległości od brzegów PCB powinny być większe - łatwo taką ścieżkę uszkodzić np. tam gdzie masz connectory H10 H11 to sam connector jest OK, a ścieżki lepiej było by poprowadzić po prawej stronie.
- Ścieżka zasilania blisko otworu na śrubę - w takich miejscach ścieżki, zwłaszcza zasilania, nalezy oddalić - jeżeli dasz śrubę montażową z większym łbem łatwo uszkodzić soldermaske i będziesz miał zwarcie zasilania do takiej śrubki.
- Ścieżki między otworami w PCB - generalnie można ale jak się da to należy unikać ponieważ są to miejsca które nawet podczas produkcji mogą zostać uszkodone, dodatkowo jak to proto PCB to przy wylutowaniu elementu, connectora łatwo zedrzeć soldermaske i mieć zwarcie do takiej ścieżki - masz pare takich miejsc.
- ścieżki do padów elementów smd - lepiej jest dać je pod kątem prostym do pada lub unikać przejścia ścieżki przez narożnik pada - nie wiem czy jasno to opisałem - ciężko z doborem słów. Lepiej jest tak robić ponieważ w tedy pad lepiej siedzi - istotne zwłaszcza jak często będzie coś odlutowywane.
- ścieżki prowadź jak najkrócej - im dłuższa tym powinna być szersza - przy tej samej grubości miedzi.

Tak jak mówię, nie zagłębiałem się jakoś bardzo, takie uwagi na szybko:) Ogólnie jak na softwarowca to dobrze, że się hardwaru nie boisz smile.gif
Go to the top of the page
 
+Quote Post
maj0nez
post Mon, 01 Mar 2021 - 15:23
Post #5


User
Dołączył: Wed, 02 July 2014
Skąd: LOP





Dobry projekt. Koledzy wyżej dobrze pisali lepiej przerzucić to na STM dużo rzeczy gotowych jest do niego.


--------------------
1.8T + DQ250
Go to the top of the page
 
+Quote Post
Debal
post Mon, 01 Mar 2021 - 17:42
Post #6


User
Dołączył: Fri, 31 March 2017





CYTAT(maj0nez @ Mon, 01 Mar 2021 - 15:23) *
Dobry projekt. Koledzy wyżej dobrze pisali lepiej przerzucić to na STM dużo rzeczy gotowych jest do niego.

Nigdzie w dyskusji nie pojawił się STM i szczerze mówiąc to uważam, że Atmega jest od nich lepsza - ma mniej uzupełnień do datasheeta, że "sorry, jednak w krzemie jest błąd i dana funkcjonalność nie działa". Polecam za to procki z NXP.

W automotive co prawda głównie jest używane C ale w 95% jest to kod automatycznie generowany czy to przez Matlaba czy inne generatory, plus bardzo powoli jest zauważane że c++ daje więcej możliwości do skracania czasu developmentu. Dodatkowo pomimo, że pracuję w tym obszarze przemysłu, wolałbym zatrudnić do zespołu kogoś kto pisze w C++, właśnie przez to, że wymaga on większego ogarnięcia tongue.gif


Co do projektu, uzupełniając komentarz kapustusa:
*Na etapie projektowania PCB warto mieć wybraną obudowę, a robiąc wiązkę fajnie mieć konektory z jednej strony.
*Przy projektowaniu filtrowania zasilania warto zapoznać się z normami ISO 7637-2 i ISO 16750-2 (i zawartymi w nich przebiegami testowymi)
*Rezystory szeregowe, w wejściach analogowych i cyfrowych, oprócz bycia częścią filtru dolnoprzepustowego spełniają drugą rolę - ograniczają prąd diod(clamping/esd diodes) w przypadku gdy na wejściu pojawi się napięcie powyżej/poniżej zasilania. Odpowiednio go dobierając możesz zrezygnować z Zenerek, które są relatywnie wolne, szczególnie przy małych prądach.
*Na schemacie, dla łatwości czytania, warto zachować standardowy flow: wejścia z lewej strony, wyjścia z prawej, zasilania z góry, masy z dołu, a jak się robi ciasno - podzielić schemat na kilka arkuszy.
*Żeby poprawić layout PCB rozrysuj sobie rozpływ/przepływ prądów (biorąc pod uwagę że im wyższa częstotliwość sygnału tym bardziej prąd "chce wracać" pod linią sygnałową, a kondensator "skraca" pętlę prądu) i źródła cross-talku.

Co do wtryskiwaczy bezpośrednich - one mocno sieją zakłóceniami mocniej niż zapłon (mają duże di/dt). Przez co np. robiąc wzmacniacz audio mógłbyś w głośnikach słuchać muzyki z dodatkową "cykającą" linią melodyczną lub doznawać nieoczekiwanych resetów urządzenia.
Go to the top of the page
 
+Quote Post
pszczelaszkov
post Mon, 01 Mar 2021 - 23:14
Post #7


Super User
Dołączył: Mon, 08 February 2016
Skąd: Piła





@maj0nez
O ile sam firmware na szczęście przystosowałem do odpalenia nawet na zwykłym PC chociażby w celach testów i bym musiał tylko "niższe warstwy" przepisać na inne rejestry.
Tak przeniesienie PCB na inny µC na tym etapie wymagało by wymyślenia jakiegoś sensownego zastosowania, aby był jakis ciekawy powód by na nowo połowę ścieżek ciągnąć.

@kapustus
Dzięki za podpowiedzi.
To zasilanie na zewnętrznych krawędziach i blisko mocowań faktycznie jest nie fortunne, miałem w głowie plastikowe podkładki i plastikową obudowe to zapomniałem że możę być to tykającą bombą. Nie miałem jeszcze przypadku ukruszenia PCB to też nie zaświeciła mi się lampka że warto jeszcze odsunąć te ścieżki.
Generalnie ubzdurałem sobie cale zasilanie na "zewnętrznym pierścieniu".
Zasilanie ADC, jest podyktowane wstępnie notką atmela, wspominali o lowpassie na zasilaniu i decouplingu na Aref, reszta jak dobrze pamiętam była opisana jako zależna od projektu/ ustalić eksperymentalnie.
Umiejscowienie kondensatorow na liniach analogowych zaś wzięte jest z płyty od drukarki 3D.
Ściągnięcie nie używanych pinów ADC jest całe szczęście możliwe, trzeba tylko poświęcić zworke mimo że nie będzie używany port. Nie moge zrozumieć tylko tego dzielnika do 12v, w jakiej sytuacji mógłby być przydatny?

Przez unikanie ścieżek pomiędzy przejściami warstw rozumiem aby unikać czegoś takiego?

Faktycznie jest nie potrzebne zagrożenie zwarciem, w sumie nawet lepiej było by dać na pinach 1-4 to zasilanie.
Pytanie tylko czy przy glównych konektorach(CON1/CON2) które nie są lutowane tylko na "wampirkach" też to niesie zagrożenie?
Rozumiem o co chodzi z podłączeniem pad'ów, nie sądziłem że ma to znaczenie jeśli chodzi o wytrzymałość na odklejanie.
Jak kładłem ścieżki to w pierwszej kolejności kierowałem się jak najmniejszą ilością przejść między warstwami, na 2gim miejscu była długość ścieżki. Nie wiem która taktyka jest lepsza.

@Debal
Obudowa będzie drukowana i chyba coś w stylu "clamshell" z zawiasami od strony mosfetow, nie planuje hermetyzować jak narazie. Wszystkie przewody wychodzą z prawej strony, wyjątkiem jest serwisowy UART na środku ale on nie jest używany do normalnej pracy.
Poczytam te normy, mam nadzieje że dostęp do nich nie wymaga dużych kwot, jak w przypadku niektórych PN-EN.
Jeśli chodzi o przepływ prądów, to starałem się puścić sygnały analogowe w taki sposób aby cyfrowe ich nie przecinały, ścieżka od gniazda do wzmacniacza termopary też ma tylko 8mm i jest pod analogami.

Zawsze wydawało mi się że to C jest trudniejszy do ogarnięcia, jednak niema tu standardowych kontenerów, smart pointerów, jest bardziej na krawędzi, jedyne co wymaga wiekszego poświęcenia w C++ to pamiętam jak kilka lat temu się STL'em bawiłem w c+14 i różne kombinacje alpejskie wymyślałem. Ale to też po 2 tyg zabawy doszedłem do wniosku że jeśli coś wychodzi za bardzo skomplikowane w STL'u to znaczy że zły dizajn ktoś obrał, albo to może już czas przeskoczyć na język z wyższą abstrakcją tongue.gif . No i jeszcze nam Rust zostaje jako uzupełnienie, gwiazdy mówią że też się pnie na liście notowań.

Fajnie że wspomniałeś o NXP, od dłuższego czasu na nie spoglądam, NXP wygląda solidniej i też częściej spotykam ich produkty w profi sprzętach.
Mam w planie taki kamień milowy, zrobić sobie jako wyzwanie z ich MPU z DDR3 mini urządzenie z linuxem. Ale jak narazie to się posikam prędzej niż dobrze zaprojektuje zasilanie i linie które dadzą rade obsłużyć częstotliwość takiej pamięci.
Czytam powoli ich hardware guide, ale ma 100 stron i trochę mnie zajmie biggrin.gif

Wracając do Atmegi 324PB myślę że warto też wziąć pod uwagę że jest względnie "nowa" i teraz kosztuje 10PLN na tme. Data wejścia to chyba 2017.
Występuje nawet w trimie dla Automotive, ja jak narazie wybrałem trim zwykły z podwyższoną temp pracy do 105C, czego raczej i tak nie uświadczy ale tylko taki był w hurtowni jak zakupy robiłem.
Jest tam nawet awaryjne przejście na RC w razie awarii oscylatora. Swoją drogą zastanawiam się czy lepiej by nie było wstawić zewnętrzny oscylator. Ten wewnętrzny jest chyba tylko jako tako.
Dodatkowo dokumentacja Atmeg mi bardziej odpowiada, w STM'ie to czasami literówka, albo jakiś dziwny schemat co pokazuje timer kanał pierwszy generujący przerwanie kanału czwartego. Potem w innym µC już jest normalnie na odwrót. Się zastanawiam wtedy czy to doc czy to ja czegoś nie kumam.
Go to the top of the page
 
+Quote Post
kapustus
post Tue, 02 Mar 2021 - 08:08
Post #8


Rookie
Dołączył: Thu, 21 January 2021
Skąd: Kraków





Co do zasilania to właśnie jak zrobisz ring w koło PCB to siejesz po całej płytce. Bo duża jest szansa, że zasilanie nie będzie idealne zwłaszcza w samochodzie. Ale wiadomo jak jest, z reguły miejsca mało i trzeba kombinować. Rozdzielenie analog i cyfry po różnych stronach PCB to bdb pomysł i tak powinno się robić.
Co do dzielnika, niekoniecznie musisz z czujnika dostawać sygnał analogowy 0-5V w tedy konieczny jest dzielnik by napięcie nie przekroczyło na pinie 5V - atmegi z reguły 5.5V wytrzymują z tego co kojarzę. Przykładowo jeżeli chciałbyś monitorować napięcie na akumulatorze - w tedy musisz zastosować dzielnik rezystancyjny na wejściu ADC żeby obniżyć napięcie. Musisz go tak dobrać żeby w żadnym przypadku napięcie nie przekroczyło max dla procka.
Co do ścieżek między przejściami to chodzi mi o sytuacje gdzie ścieżka idzie pomiędzy pinami connectora np przy conn2 tak masz. Nie mam jak teraz Ci wrzucić screena. Generalnie jest ryzyko tylko przy jakimś dewelopmencie gdzie często się wylutowuje i wlutowuje np taki connector - łatwo uszkodzić soldermaske i w tedy przy ponownym lutowaniu łatwo o zwarcie ścieżki do pinu connectora. Jak connectorki nie są lutowane no to ryzyko maleje smile.gif
Go to the top of the page
 
+Quote Post
siewcu
post Thu, 04 Mar 2021 - 15:41
Post #9


Forum Clubber
Dołączył: Tue, 04 December 2007
Skąd: Wrocław





W automotive to w ogóle sporo rzeczy jest robionych z użyciem RTOS... A na atmegę ich nie ma z tego co wiem.


--------------------
www.time4rally.pl
Go to the top of the page
 
+Quote Post
pszczelaszkov
post Thu, 04 Mar 2021 - 16:05
Post #10


Super User
Dołączył: Mon, 08 February 2016
Skąd: Piła





FreeRTOS obsluguje AVR(tak ich doc mówi). U mnie by nie zdał egzaminu, za duży overhead. Nie wymyśliłem jeszcze projektu gdzie bym go wykorzystał, pewnie musiało by być coś co obrabia więcej pakietów w losowych kolejnościach.
Myślę że jakiś infotainment z bluetoothem i CAN'em by miał co rozkładać w kolejce.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
 

RSS Wersja Lo-Fi Aktualny czas: Tuesday, 16 April 2024 - 05:52