PIC a MOSFET

Všetko čo sa týka mikropočítačov + Sekcia Arduino

Moderátori: psichac, Moderátori

mato3000
Power user
Power user
Príspevky: 9767
Dátum registrácie: 04 Jan 2009, 00:00
Bydlisko: BA

PIC a MOSFET

Príspevok od používateľa mato3000 » 17 Sep 2012, 21:33

riešim takú drobnosť, môže sa zapojiť MOSFET priamo na MCU, alebo treba ho spínať tranzistorom ? dajme tomu že by bol otvorený pri 5V, ale jedná sa mi o jeho kapacitu na vstupe, či to bude robiť problém či nie .
0

Používateľov profilový obrázok
boraicho
Ultimate člen
Ultimate člen
Príspevky: 12406
Dátum registrácie: 03 Feb 2007, 00:00
Bydlisko: Prešov
Vek: 35
Kontaktovať používateľa:

Re: PIC a MOSFET

Príspevok od používateľa boraicho » 17 Sep 2012, 21:51

0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS

Používateľov profilový obrázok
jaromir
Power user
Power user
Príspevky: 4538
Dátum registrácie: 08 Júl 2011, 00:00
Vek: 40

Re: PIC a MOSFET

Príspevok od používateľa jaromir » 17 Sep 2012, 22:05

mato: z toho ako si sa opytal, ti neodpovie nikto. Samozrejme kazdy mosfet ma nejaku kapacitu hradla, ale to, ci to bude vadit zavisi od velkosti kapacity, prudovych moznosti vystupu PIC-u a hlavne spinacej frekvencie.
Vlastne - vadit ako vadit. Problemom pri nedostatocnom budeni FETov - ak pracuju ako spinace - je prechodovy stav, kedy kapacita hradla sposobuje, ze hradlo nie je celkom otvorene. Vtedy je na FETe velky ubytok napatia a teda aj vykonova strata. Pokial ti toto nevadi, tak nemas nijaky problem. Typicky je to pri spinani malych zatazi, trebars male rele alebo co.
Ak spinas velke zataze - povedzme 50W - ani tu to nemusi byt problem. Povedzme, ze prechodovy jav trva 100us. Ak spinas kazdu sekundu, FET sa ti dostatocne ochladi v prestavkach, stredny upeceny spinaci vykon je radovo jedna desattisicina z 25W, teda 2.5mW. Treba k tomu pripocitat stratu na otvorenom FET-e, ale pri pouziti modernych typov sa mozes zaobist uplne bez chladica.
Ak ale spinas takuto zataz kazdu milisekundu (trebars z nejakeho PWM), tak je stratovy spinaci vykon uz jednou desatinou z 25W, co uz prestava byt sranda a chce to poriadnejsi chladic. Alebo minimalizovat spinacie straty, teda budic, ktory je schopny dodat vacsi prud nez IO pin PICka.

Takze - odpoved je - podla situacie.

Pokial spinas malo casto alebo male zataze, priame budenie IO pinom postacuje. Ja som takto onehda robil spinanie jednym MOSFETom v SOIC8, spinal zataz 7A/12V, cca raz za sekundu a pri prevadzke bol studeny.
Ale ked som robil 100W SMPS DSP-ckom a dvomi velkymi FETmi v polomoste so spinacou frekvenciou 200kHz, presla ma akakolvek sranda a budic musel dodavat impulzne do hradiel MOSFET-ov radovo ampere, inak by sa tranzistory uskvarili pri stvrtinovej zatazi.
0

mato3000
Power user
Power user
Príspevky: 9767
Dátum registrácie: 04 Jan 2009, 00:00
Bydlisko: BA

Re: PIC a MOSFET

Príspevok od používateľa mato3000 » 17 Sep 2012, 22:10

no mňa skôr zaujímal vplyv na MCU, teda napríklad či tá kapacita nespôsobí napríklad ten už tolko spomínaný RMW efekt a jedná sa práve o PWM výstup.
0

Používateľov profilový obrázok
jaromir
Power user
Power user
Príspevky: 4538
Dátum registrácie: 08 Júl 2011, 00:00
Vek: 40

Re: PIC a MOSFET

Príspevok od používateľa jaromir » 17 Sep 2012, 22:30

Pri PWM vystupe to nehrozi, lebo ten je do jednotky/nuly zhadzovany hardwarom ako jeden pin. Nerobi sa tam RMW - read-modify-write.
RWM problem nastava pri programovych manipulaciach s PORT registrami bud cez bcf/bsf instrukcie alebo nacitanim, zmenenim a zapisom PORT registra. Stale mam pocit, ze nie celkom chapes co je RMW problem.

Tak ako tak, najjednoduchsim a najefektivnejsim riesenim RMW je pouzitie PICka s LAT registrami - teda PIC16F1xxx alebo lepsie PIC18. Tam mozes spinat cokolvek, nemas problem.
0

mato3000
Power user
Power user
Príspevky: 9767
Dátum registrácie: 04 Jan 2009, 00:00
Bydlisko: BA

Re: PIC a MOSFET

Príspevok od používateľa mato3000 » 17 Sep 2012, 22:39

práveže chápem, len jedna vec mi nejde do hlavy.

boraichovi nešiel zapnúť ten pin pomocou PORTA,X, tak použil LATA,X . toje zatial v poriadku, ale ak odpojil ten mosfet tak mu šiel aj príkaz PORTA,X :D . takže toto ma prekvapilo. a chcel som vedieť či sa dá ten pin ovplyvniť aj zvonka napríklad kapacitou MOSFETu. alebo aké máš na toto vysvetlenie ?
0

Používateľov profilový obrázok
jaromir
Power user
Power user
Príspevky: 4538
Dátum registrácie: 08 Júl 2011, 00:00
Vek: 40

Re: PIC a MOSFET

Príspevok od používateľa jaromir » 17 Sep 2012, 22:44

Som rad, ze to az teraz zacinas chapat. Pomaly ale isto sa k tomu dostavame :)
Prestuduj si este tie linky, ktore som posielal, zamysli sa nad vplyvom kapacity na IO pine na RMW problem a pripadne ti k tomu zajtra napisem obsirny komentar. Dnes sa mi uz nechce.
0

mato3000
Power user
Power user
Príspevky: 9767
Dátum registrácie: 04 Jan 2009, 00:00
Bydlisko: BA

Re: PIC a MOSFET

Príspevok od používateľa mato3000 » 17 Sep 2012, 22:56

tak teraz som ťa vôbec nepochopil.

šlo mi o to povedať či ten jav vznikol aj pri tom mosfete a v tom prípade je takéto zapojenie nepoužiteľné, alebo nie. ja osobne takéto zapojenia nerobím vždy tam mám na budenie tranzistor, teda vždy ak idem spínať viackrát za sek. a nie len ON OFF. používam buď ULN2804 alebo nejaký tranzistor ak sa jedná o jedno dve spínania.

samozrejme sa teším na komentár,lebo ma to zaujíma.
0

Používateľov profilový obrázok
boraicho
Ultimate člen
Ultimate člen
Príspevky: 12406
Dátum registrácie: 03 Feb 2007, 00:00
Bydlisko: Prešov
Vek: 35
Kontaktovať používateľa:

Re: PIC a MOSFET

Príspevok od používateľa boraicho » 17 Sep 2012, 23:14

robil som taky pokus dal som na vystup kapacity 470nF 470 a 1uF folie, proste čo mi prišlo pod ruku neriešil som a diody a napisal som toto

RA0=1;
RA4=1;
RA5=1;

a vždy sa zapol iba jeden pin RA5 tušim a robilo mi to aj ked som namiesto tych filovych kondikov mal mosfety priamo na vystupe cez 10R odpor,že sa s tych troch zopol vždy iba jedny vystup. ale ked som dal medzi to pauzy delay_ms alebo delay_us tak už sa zopli všetky postupne

ale ked som napisal toto a pauzy som nedaval

LATA0=1;
LATA4=1;
LATA5=1;

tak sa mi zapli všetky vystupy.
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS

mato3000
Power user
Power user
Príspevky: 9767
Dátum registrácie: 04 Jan 2009, 00:00
Bydlisko: BA

Re: PIC a MOSFET

Príspevok od používateľa mato3000 » 17 Sep 2012, 23:18

no a keď si to dal preč tak ti šlo aj klasické
RA0=1;
RA4=1;
RA5=1;

alebo nie ?
no a keby si sa držal správneho zapojenie aj s tranzistormi, tak by si neriešil dva dni tento problém :D
0

Používateľov profilový obrázok
jaromir
Power user
Power user
Príspevky: 4538
Dátum registrácie: 08 Júl 2011, 00:00
Vek: 40

Re: PIC a MOSFET

Príspevok od používateľa jaromir » 18 Sep 2012, 11:01

mato, s tym RMW efektom je to takto.
Taka RMW instrukcia robi toto: read-modify-write. Napriklad bsf je typicka RMW instrukcia - aplikujme ju na nejaky register, napriklad INDF.

Kód: Vybrať všetko

movlw 0xC0
movwf INDF
bsf INDF,3
pred instrukciou bsf ma INDF hodnotu 0xC0. MCU urobi to, ze sa nasmeruje na INDF, vezme si jej hodnotu, celych osem bitov - teda hodnotu 0xC0, do nejakeho svojo interneho registra, tam si zmeni ten jeden bit, v tom internom registri je teraz osembitova hodnota 0xC8, potom sa obsah toho osembitoveho registra prekopiruje naspat do INDF. Teoreticky je toto uplne dobry a korektny sposob - az na IO porty.
Vezmime si kod a predpokladajme, ze na PORTA nie je pripojene absolutne nic. Hole piny.

Kód: Vybrať všetko

bsf PORTA,0
bsf PORTA,1
Ak je na zaciatku PORTA nulovy, tak prva instrukcia bsf urobi toto:
A, prekopiruje sa hodnota PORTA do interneho registra - teraz je tu 0x00
B, v internom registri sa nastavi nulty bit - teraz je v nom 0x01
C, prekopiruje sa hodnota registra do PORTA - 0x01 ide na PORTA
Druha instrukcia urobi toto
A, prekopiruje sa hodnota PORTA do interneho registra - teraz je tu 0x01
B, v internom registri sa nastavi prvy bit - teraz je v nom 0x03
C, prekopiruje sa hodnota registra do PORTA - 0x03 ide na PORTA
Hura, na pinoch 0 a 1 mame vysoku uroven, ako ocakavame.

Ale teraz vezmime ten isty kod ale PORTA0 a PORTA1 budu zatazene kondikmi, povedzme 1uF.
Ak je na zaciatku PORTA nulovy, tak prva instrukcia bsf urobi toto:
R, prekopiruje sa hodnota PORTA do interneho registra - teraz je tu 0x00
M, v internom registri sa nastavi nulty bit - teraz je v nom 0x01
W, prekopiruje sa hodnota registra do PORTA - 0x01 ide na PORTA
Lenze - IO pin sa snazi nabijat kapacitu 1uF a tato kapacita sa nabija z 20mA pinu pomaly. Ked instrukcie idu hned po sebe, pri rychlosti 20MHz je to 200ns po sebe. Za tu dobu sa kondik nabil trebars na 0,1V. Lenze toto napatie znamena, ze citanie z PORTA da na tomto pine logicku nulu, aj ked pred chvilou som tam zapisal jednotku.
R, prekopiruje sa hodnota PORTA do interneho registra - stale sa cita 0x00
M, v internom registri sa nastavi prvy bit - teraz je v nom 0x02
W, prekopiruje sa hodnota registra do PORTA - 0x02 ide na PORTA
Toto je problem. urobil si bsf na dvoch pinoch, ale jednotka je len na jednom z nich.

Ak das medzi zapisy oneskorenie, situacia je ina

Kód: Vybrať všetko

bsf PORTA,0
call delay_100ms
bsf PORTA,1
Ak je na zaciatku PORTA nulovy, tak prva instrukcia bsf urobi toto:
R, prekopiruje sa hodnota PORTA do interneho registra - teraz je tu 0x00
M, v internom registri sa nastavi nulty bit - teraz je v nom 0x01
W, prekopiruje sa hodnota registra do PORTA - 0x01 ide na PORTA
IO pin sa snazi nabijat kapacitu 1uF a tato kapacita sa nabija z 20mA pinu pomaly. Ale kedze ma dost casu na jeho nabitie, povedzme tych 100ms, tak sa kapacita nabije na 4,5V a to sa vyhodnoti ako logicka 1
R, prekopiruje sa hodnota PORTA do interneho registra - uz sa cita 0x01
M, v internom registri sa nastavi prvy bit - teraz je v nom 0x03
W, prekopiruje sa hodnota registra do PORTA - 0x03 ide na PORTA
Voila, RMW problem je ako tak vyrieseny.

Dospelejsie MCU (PIC16F1xxx alebo PIC18 a vyssie) maju LAT register a PORT register. Citanie z LAT registra nevracia aktualnu hodnotu z IO portu, ale poslednu zapisanu hodnotu, takze sa strati principialna cesta k RMW problemom, ak sa LAT registre pouzivaju na vystup hodnot a PORT na citanie hodnot.

Pripadne sa da softwarovo emulovat LAT pomocou shadow registra, ale o tom som uz pisal predtym. Pripadne ina softwarova cesta - strukturovanie programu tak, aby som nezapisoval na PORT kade-tade bez ladu a skladu, ale v istej faze vykonavania programu. Ked ti program bezi v nejakom stavovom stroji, tak v jednom docasnom stave, ktory sa moze vyvolavat povedzme raz za milisekundu, sa na zaklade flagov nastavencyh v tych castiach programu, ktore chcu operovat s IO pinmi, vysklada hodnota a ta sa cela strci do PORT registra.
Toto je dovod, preco sa PICka v tejto primitivnej forme (bez LAT registra) pouzivaju desatrocia, ale s trochou programatorskej stabnej kultury a poznania internej funkcie MCU s tym nie su problemy. Ale o poznanie jednoduchsie je pouzivat novsie MCU. Chapem, ze ak kodsi v assembleri a programovanie nie je pre teba denno-denna zalezitost, nemusi to byt trivialne - ale skus pouvazovat v dalsich projektoch. Prechod na PIC18 je IMHO jednoduchy, mas k dispozicii kopu pamate, periferii a na 99,9% ziadne strankovanie. Na zvysne otazky mas forum alebo ti odpoviem pri pive :)
0

Používateľov profilový obrázok
troodon
Pokročilý člen
Pokročilý člen
Príspevky: 529
Dátum registrácie: 04 Nov 2010, 00:00
Bydlisko: Nitra
Vek: 44

Re: PIC a MOSFET

Príspevok od používateľa troodon » 18 Sep 2012, 11:26

skus vyuzivat MOSFETY TTL kompatibilne kde uz relativne nizkym napatim dokazes otvorit FET na potrebnu hodnotu. Vygooglit sa da toho vela o tej problematike, samozrejme pre extremne prudy budes potrebovat tranzistorom posilnene budenie vyssim napatim ale dnes sa z uP daju budit FETY ktore s prehladom zopnu radovo Ampere az desiatky Amperov.

nieco k tematike http://arduinodiy.wordpress.com/2012/05 ... tl-levels/
0

mato3000
Power user
Power user
Príspevky: 9767
Dátum registrácie: 04 Jan 2009, 00:00
Bydlisko: BA

Re: PIC a MOSFET

Príspevok od používateľa mato3000 » 18 Sep 2012, 14:16

troodon,srandista , si nepochopil o čo sa tu jedná, nešlo o otváranie MOSFETU


takto by sa nemal prejaviť tá kapacita na pine ....

Obrázok
0
Naposledy upravil/-a mato3000 v 18 Sep 2012, 14:57, upravené celkom 2 krát.

mato3000
Power user
Power user
Príspevky: 9767
Dátum registrácie: 04 Jan 2009, 00:00
Bydlisko: BA

Re: PIC a MOSFET

Príspevok od používateľa mato3000 » 18 Sep 2012, 14:38

tak a teraz podám vysvetlenie.

jaro to čo si písal chápem úplne presne a aj som chápal. túto tému som založl preto, že Boraicho má neustále problémy s tým MCU a nechcel si to nechať vysvetliť, takže som trochu teba zneužil, lebo ty máš lepšie pedagogické vlastnosti :D máš u mňa daľšie pivo a možno ťa teraz zlomím na husacinu u nás v záhrade asi budúci týždeň :wink:

takže pre pochopenie :
[17.09.2012 20:56:54] boris: teraz ja tebe nerozumiem
[17.09.2012 20:57:05] boris: funguje to aj s tými kondíkami, alebo nie ?
[17.09.2012 20:57:14] boraicho: hej mam na vystupe kondiky
[17.09.2012 20:57:17] boraicho: a teraz napišem
[17.09.2012 20:57:23] boris: a to načo ?
[17.09.2012 20:57:29] boris: ak ich dáš prečä
[17.09.2012 20:57:33] boris: funguje RA
[17.09.2012 20:57:37] boraicho: ano
[17.09.2012 20:57:50] boris: no takže je to umelo vyvolaný ten RWM
.
.
.
.
[17.09.2012 21:27:14] boris: a teraz vieš že to vytvára a to logicky ten efekt RWM
[17.09.2012 21:27:33] boris: pozri dám otázku na SE a uvidíme

RWM = RMW :D to je preklep

ja som mu hneď povedal že to má zle zapojené a že kapacita na MOSFETE mu bude robiť problém
takže tvoj príspevok by sa mal začínať: "Boraicho, s tym RMW efektom je to takto. ..."

a to je aj reakcia na to druhé vlákno , kde tvrdím že ja som ten efekt postrehol 1x zo 30tich projektov a on 2x z dvoch procesorov v prvom projekte, z čoho mi jasne vyplýva že je chyba pravdepodobne u neho.

hore je to správne zapojenie vpredchádzajúcom príspevku, alebo použitie LAT, ako píšeš. len neviem aký vplyv má ta kapacita na deformáciu dig. signálu, samozrejme v nízkych rýchlostiach je to jedno.

a ja robím na nových PIC16Fxxx, kde je ten LAT a mnoho vypelšení a takisto na 18F , takže nevidím problém. s tou 887ičkou som začínal pred tromi rokmi a pri pic16F ASM nepotrebuješ ani zďaleka toľko pamete ako pri C teda ti stačí tak tretina :D
0

Používateľov profilový obrázok
jaromir
Power user
Power user
Príspevky: 4538
Dátum registrácie: 08 Júl 2011, 00:00
Vek: 40

Re: PIC a MOSFET

Príspevok od používateľa jaromir » 18 Sep 2012, 15:11

No uz sa zacinam chapat aj ja...
No co uz s tebou ked si ma takto sprosto zneuzil a ja som ti sprosto skocil na lep :D Svoj dlhocizny post beriem okolo RMW ako pozvanku k tebe, na husacinu :)

Ale naspat k technike - kapacita 1-4uF na gate MOSFETu je nejako vela. Byvaju to u velkych trandikov jednotky nanofaradov.

Pouzitie LAT nema vplyv na deformaciu signalu. Na ten ma vplyv iba konstrukcia IO koncaku - ale tomu je jedno ci dostane prikaz z LAT alebo PORT registra.
Pouzitie PIC18F alebo aspon PIC16F1xxx ti iba schvalujem.

Co sa tyka C-asm debaty - tak to preberieme pri husacine. Tato tema je dobrym zakladom pre svatu vojnu v akomkolvek diskusom fore okolo mikrokontrolerov :D
0

mato3000
Power user
Power user
Príspevky: 9767
Dátum registrácie: 04 Jan 2009, 00:00
Bydlisko: BA

Re: PIC a MOSFET

Príspevok od používateľa mato3000 » 18 Sep 2012, 15:15

jaromir napísal:
Ale naspat k technike - kapacita 1-4uF na gate MOSFETu je nejako vela. Byvaju to u velkych trandikov jednotky nanofaradov.
taá kapacita bol preklep, resp som posunul des čiarku

ale ide o to boraicho má aj tak vysokú 3850pF a ja používam 15pF na ULN2804 prípane 2,5pF na 2sc3052

ozvem sa ti potom cez SS
0

Používateľov profilový obrázok
boraicho
Ultimate člen
Ultimate člen
Príspevky: 12406
Dátum registrácie: 03 Feb 2007, 00:00
Bydlisko: Prešov
Vek: 35
Kontaktovať používateľa:

Re: PIC a MOSFET

Príspevok od používateľa boraicho » 18 Sep 2012, 15:19

no ten 2SC3052 ma 2,5p kapacitu ale výstupnu na kolektore a v datashsete nepiše vstupnu, takže vstupna bude isto večšia.

120N4F6 ma vstupnu kapacitu 3850p ale výstupnu len 650piko.
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS

mato3000
Power user
Power user
Príspevky: 9767
Dátum registrácie: 04 Jan 2009, 00:00
Bydlisko: BA

Re: PIC a MOSFET

Príspevok od používateľa mato3000 » 18 Sep 2012, 15:27

no výstupná nás nezaujíma, tak ostanem pri tom príklade s ULN :D , neviem akú má vstupnú kap ten 2SC
0

Napísať odpoveď