Ok sätt att föra in 12V signal till 3.3V MCU?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
InternetAthiest
Inlägg: 18
Blev medlem: 15 juni 2019, 09:50:59

Ok sätt att föra in 12V signal till 3.3V MCU?

Inlägg av InternetAthiest »

Tjena!

Håller just nu på med ett projekt där jag behöver läsa av diverse 12V signaler såsom helljus å blinkers med en STM32:a och undrar om ingångskyddet är tillräckligt?
Automotiva miljöer är ju, iaf vad jag förstått och läst mig till, inte direkt snälla mot komponenter. Med det i tanke så slängde jag på en zener med strömbegränsande resistor på MCU:ns ingång för att begränsa spänningen till högst ca 3.3V, vilket verkar fungera i simulation.

Bättre att visa med ett kretsschema, tänk på att komponenternas värden är bara placeholders just nu samt R2 agerar pull-down för signalen.
ZenerSkydd.PNG
Var lite osäker på att köra med en spänningsdelare då tanken är att insignalen borde gå att läsa av under uppstart av motor, vilket ger att 9V(Sjunker väl ca till detta när startmotorn går?)-15V borde registreras som högnivå vilket blir ett för stort spänningsspan för MCU:n med en 3.6k-1k spänningsdelare (9V=>~2V 15V=>~3.3V)
Dock så kanske det är ett bättre alternativ, men bör man då ha en spänningsbegränsande diod innan spänningsdelaren för optimal funktion? :humm:

Räcker denna lösning för att skydda MCU:ns ingångar eller är det något jag har missat?
Borde jag köra med TVS dioder istället för vanliga zener inom denna applikation?

Tackar på förhand! :)
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
SeniorLemuren
Inlägg: 7812
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Ok sätt att föra in 12V signal till 3.3V MCU?

Inlägg av SeniorLemuren »

Länk till Swech :Använd optokopplare
InternetAthiest
Inlägg: 18
Blev medlem: 15 juni 2019, 09:50:59

Re: Ok sätt att föra in 12V signal till 3.3V MCU?

Inlägg av InternetAthiest »

Kollade på optokopplare förrut men hittade inga som var tillräckligt små (Ca 20 signaler som skall läsas av och har begränsat med yta på kretskortet), får ta å kolla omkring igen på digikey efter att de har tagit bort min ip adress från svartlistan... igen :doh:

Dock så kommer optokopplare inte fungera på de analoga signaler som skall läsas av men det löses senare.
Användarvisningsbild
Icecap
Inlägg: 26148
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Ok sätt att föra in 12V signal till 3.3V MCU?

Inlägg av Icecap »

Sättet med zenerdiod är ganska OK - men R1 har ju förbenat lågt värde! Du behöver inte dra så jädra mycket ström i zenern.

En spänningsdelare skyddad av en zener är ganska OK - men ha en 100nF konding parallellt med zenern, då blir det bra.

Orsaken är att en zener inte är snabbaste komponent och spikar kan komma igenom litegrann. Med en keramisk konding dämpas dessa och saken är biff.
InternetAthiest
Inlägg: 18
Blev medlem: 15 juni 2019, 09:50:59

Re: Ok sätt att föra in 12V signal till 3.3V MCU?

Inlägg av InternetAthiest »

Som skrivet är ju att värderna i kretsschemat var placeholders och inte dem jag simulerade med, har ju inte ens valt zener diod ännu utöver 3.3V i Vz.
Kommer att lägga till en keram på din begäran Icecap :), kommer sedan att räkna på allt och simulera när diod är vald (Kom igen nu DigiKey, ta bort mig från listan! :x ).
Användarvisningsbild
säter
Inlägg: 32562
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Ok sätt att föra in 12V signal till 3.3V MCU?

Inlägg av säter »

Varför är du svartlistad?
InternetAthiest
Inlägg: 18
Blev medlem: 15 juni 2019, 09:50:59

Re: Ok sätt att föra in 12V signal till 3.3V MCU?

Inlägg av InternetAthiest »

Antar att det är för att jag missbrukar deras filter, lägger in request på request över flera flikar med olika komponentklasser vilket skapar väldigt mycke nätverkstrafik, botfilter som jag fastnar i.

Edit:
Borttagen från listan 8)
Användarvisningsbild
prototypen
Inlägg: 11076
Blev medlem: 6 augusti 2006, 13:25:04
Ort: umeå

Re: Ok sätt att föra in 12V signal till 3.3V MCU?

Inlägg av prototypen »

Ju högohmigare du gör spänningsdelaren desto lägre ström behöver ingångsskyddet ta hand om.
I mina lösningar så sitter det ofta ett motstånd från delningen och till ingången på kretsen.

Om ingången på MCU tål 10 mA och seriemotståndet är på 100 kOhm så behövs det 1000 volt för att driva 10 mA på ingången.

Protte
InternetAthiest
Inlägg: 18
Blev medlem: 15 juni 2019, 09:50:59

Re: Ok sätt att föra in 12V signal till 3.3V MCU?

Inlägg av InternetAthiest »

Prototypen: Jo precis! Har tänkt på att använda de inbyggda skydden i MCU:n men har blivit lite uppskrämd av att de inte är designade för kontinuerlig användning.

Har iallafall nu simulerat två olika typer av kretsar som åstadkommer vad jag är ute efter med signalen iaf.
Bägge kretsarna skyddar mot negativa spänningar och begränsar dem till -0.3V på MCU:ns ingång
SimuleradeKretsskydd.PNG
Krets 1 beter sig precis som vad jag är ute efter signalmässigt, dock så flödar Ca 11.4mA vid 16V inspänning genom D1 p.g.a den låga resistansen hos R1. Detta ger ca 105mW av 300mW max tillåten spilleffekt hos D1, R1 får ca 100mW i spilleffekt, vilket är väldigt högt för en enda signal och speciellt om det skall finnas ca 20 stycken likadana kretsar bredvid varandra på ett kretskort. Däremot så tappar kretsen sin, relativt skarpa, karakteristik om R1 görs större, troligen så skulle en zener med lägre spänning återge karakteristiken samt minska spilleffekten genom D1, dock så kommer R1 värmeeffekt att öka. Tror det är lite av ett dead-end med denna krets. :humm:
Krets1.PNG
Krets 2 bör jag egentligen ha simulerat med en spänningsdelare direkt på insignalen för att justera vart gränsen för logisk hög ligger, kommer göra det efter att jag skrivit detta inlägg. Vid 16V inspänning så är det endast 1.25mA genom R6 vilket ger endast 16mW i spilleffekt 8), kunde tyvärr inte få fram strömmen genom dioden (Är noob på SPICE) men detta är ju mycket bättre än krets 1. Så tror att jag kommer vidareutveckla krets 2 lite och sedan utsätta den för automotiva transienter och störningar (Hur man nu gör det på lämpligast sätt i SPICE? :humm:).
SimuleringKrets2.PNG
Vill tacka till alla ovan som tagit sig tid att svar!
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Icecap
Inlägg: 26148
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Ok sätt att föra in 12V signal till 3.3V MCU?

Inlägg av Icecap »

Version 2 har ett allvarligt problem som kanske inte kommer att betyda mycket i just detta projekt: En överspänning leds in till VCC och om inte systemet suger skapligt med ström fungerar VCC INTE som ett stabilt mothåll!

Vill det sig illa eldas hela systemet upp pga. överspänning på VCC.

Version 1 har jag använd i kommerciella produkter fast då med MYCKET mer vettiga värden på R1! De har aldrig fallerat.
Senast redigerad av Icecap 9 januari 2021, 14:28:47, redigerad totalt 1 gång.
Användarvisningsbild
ffredrik
Inlägg: 343
Blev medlem: 20 oktober 2009, 17:52:18
Ort: Göinge

Re: Ok sätt att föra in 12V signal till 3.3V MCU?

Inlägg av ffredrik »

D2 skall bort, R5 likaså (gör ingen nytta annat än belastar insignalen).

D1 skall vara en 3.3 V zener.
babbage
Inlägg: 637
Blev medlem: 10 november 2004, 11:33:17
Ort: Sthlm

Re: Ok sätt att föra in 12V signal till 3.3V MCU?

Inlägg av babbage »

För analoga signaler skulle jag använda någon form av spänningsdelning. Men för digitala (man har nominellt 12V eller 0V (aktiv driven låg eller öppen krets på ingången)) skulle jag nog titta på lösningen att låta insignalen gå till basen/gate på en npn/nmos transistor och med collector/drain in till mcu:n via ett motstånd mot mcu:ns matningsspänning. Då kan man ha en hög ingångsresistans och inte vara känslig mot att 12V varierar mycket. Borde gå att dimensionera att den tex klarar 6-25V (godtyckligt valt som exempel)
InternetAthiest
Inlägg: 18
Blev medlem: 15 juni 2019, 09:50:59

Re: Ok sätt att föra in 12V signal till 3.3V MCU?

Inlägg av InternetAthiest »

Icecap: Ang. krets 2 så kommer såklart Vcc ha en kraftig 3.3V zener mellan sig och jord som ser till att rail:en håller sig stabil. Har efterkollat lite på olika open source projekt där b.la MegaSquirt använder sig av denna lösning för 12v ingångar.

ffredrik: R5 agerar pull-down, men bör kanske ha satt den innanför R6 vid MCU:n :doh:. Dock varför D1 är 9.1V är för att insignalen endast bör registreras som hög vid ca 9v och uppåt, skrev även att krets 2 inte var designad exakt som den ska då även den skall registreras som hög vid 9V och högre.

Nya krets 2
Antag att 3.3V railen har en kraftig 3.3V zener som tar hand om den strömmen som dumpas in i 3.3V railen vid klippning
Krets2Justering1.PNG
Säg att MCU:n uppfattar spänningar över 2.5v som hög signal, genom att justera R4 så kan nivån hos insignalen som uppfattas som hög regleras och ställas in till önskat värde. Dock så kanske jag borde tänka på att använda nån form av Schmitt trigger för hysteresis om det nu behöves.
Krets2Justering2.PNG
Jag har vart ganska otydlig med hur kretsen bör fungera, så ber om ursäkt. Kretsens funktion är att se till att 9V eller högre inspänning läses av som HÖG signal hos MCU:n, kretsen skall även agera överspänningsskydd.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
prototypen
Inlägg: 11076
Blev medlem: 6 augusti 2006, 13:25:04
Ort: umeå

Re: Ok sätt att föra in 12V signal till 3.3V MCU?

Inlägg av prototypen »

Hur snabb måste ingången vara? Typ tända halvljuset om det tar 100ms att registrera gör väl inget, men pratar vi ABS signaler är det någe annat.

Protte
InternetAthiest
Inlägg: 18
Blev medlem: 15 juni 2019, 09:50:59

Re: Ok sätt att föra in 12V signal till 3.3V MCU?

Inlägg av InternetAthiest »

prototypen: precis som du skriver, är endast belysning jag läser av så ingången kan vara ganska så långsam.
Senast redigerad av InternetAthiest 9 januari 2021, 17:28:03, redigerad totalt 1 gång.
Skriv svar