Sziasztok!
Egy brushless motorvezérlő (konvektor ventilátor) a fenti PIC-kel van megcsinálva. A tartalom nem volt levédve, így ki tudtam olvasni.
Elvileg PWM-mel kellene vezérelni, egy optocsatolón keresztül, viszont a furcsaság, hogy maga a pwm jel nincs átalakítva DC-re.
Pár Hz-es jellel ugyan elindul, de nagyon bizonytalanul.
Semmi extra nincs benne, egy FET-es híd, két hídmeghajtó IC, két hall szenzor.
A picdisasm sajnos nem ismeri ezt a típust. A chatgpt majdnem eljutott a megoldásig, csak elértem az adatkezelési limitet :(
Tudna segíteni valaki?
Üdv: Jácint
Hali!
Próbáld ki a Ghidrát: https://github.com/NationalSecurityAgency/ghidra/releases
Tud hex fájlból asm-et, sőt C kódot is generálni az asm-ből.
(Kipróbáltam, de eléggé nagy katyvasz lett a C kód, de az asm kódban is vannak fura részletek. Régen használtam PIC-et, akkor sem sokat, nem vagyok járatos benne)
imrus101
0
PIC programban keresed, hogy a kimenő PWM jel miért nincs átalakitva ?
MIért kellene a PWM jelet DC-re alakitani, a driver IC bemenete nem PWM ?
0
Szia!
Nincs driver ic. A pic vezérli a hidat. A benenetére kap pwm-et, hogy hány százalékon menjen a motor.
0
Szia!
Sehol nem írtad, de melyik pinre megy a PWM?
KN
0
Szia!
RC1 a PWM, és a poti, aminek csak a helye van meg a panelon, az RC0-ra menne.
0
Szia!
Mivel RC1 az nem interrupt bemenet, de a programban a globális interrupt engedélyezve van, így sanszos , hogy pin changre le is fut. PWM bemenet esetén adja magát, hogy interruptot használjon az ember.
Tovább nem bogarásztam mobilról a kolléga által betett kódot.
Két megoldás van. Az egyik , hogy az interrupt bemeneteket használja vmire. Az adatlapból láthatod, ha így van.
A progiban meg kell keresni, hogy mire van indítva az interrupt. Ha van hall elem a ventiben, mint írtad, akkor lehet arra.
A másik, amit írtam, hogy pin changre fut le, és timerral méri a frekit a felfutó és a lefutó él között, meg a második felfutó élnél is.
Így tudja frekit, meg kitöltési tényezőt.
Nem nagyon ismerem a PIC lelkét, én AVR ezek inkább, de csoda nincs.
Ez teória, szóval tessék így is kezelni.
KN
0
Sziasztok
Két kérdés merült fel bennem, egy konvektor ventilátor vezérléshez ennyire megbonyolitott frekvencia mérő bemenetre lenne szükség, hogy egy kontroller kimenetén megjelenjen pwm jel? Hol van a konvektor elektronikának ez az első tagja, és miért nem vizsgálható a kontroller RC1-re kötött jele?
0
Szia!
Maga a motor egy univerzális kefe nélküli motor. Nem a konvektrohoz fejlesztették. Tettem már fel linket is róla. Vélhetően azért van elbonyolítva a kitöltési tényező mérése, hogy bizonyos tartományban bármilyen frekvenciájú jelet tudjon fogadni, gondolom ezlért nem RC-tag és analóg bemenet fogadja.
Ez a motor független a konvektortól, ez kap egy kettőhúszat, meg egy PWM jelet, és forog.
https://www.everelgroup.com/en/energy-saver-o-58-brushless-industrial-mo...
0
Nézegetve a motorod rajzát, ott előre hátra forgónak van írva. Ha ez igaz, az irányt is a PWM jelnek kellene tartalmaznia. Ha te szimmetrikus négyszöggel "tápláltad" lehet nem tudta merre induljon. Így valami nem szimmetrikus négyszögjellel próbálkoznék.
0
Próbáltam, de arra sem reagált. Valami rossz benne, mert új motorral ment a konvektor.
0
Ha egy új motorral megy akkor meg kell nézni egy szkoppal hova milyen jel érkezik.
MIlyen jel van a PIC RC1 bemeneten és milyen a motor hid felé a kimeneten.
Ha meg van a PIC RC1 bemeneten a jel és nincs PIC kimeneten a hidra jel akkor a PIC hibás.
Le lehet egyszerüen szakaszolni a hibát.
Ha te most csak egy motort akarsz meginditani, akkor vagy az adatlapjából megnézed milyel jel kell, vagy a működő vezérlést nézed meg..
Ez a két mérés mindenképpen járhatóbb mint egy visszafejtett programot bogarászni.
Alapesetben 50KHz -100KHz pwm
0
Szia!
A jó motort biztos nem kapom meg, és nem is szedném szét.
0
A kontroller és a hid a motor része ?
Mi van nálad, egy motor csak vagy az egész elektronika ?
Nem vagy túl bőbeszédű, minden kérdésre a motort emlegeted.
Kicsit ködös, ha van egy konvektor amiben a motor elromlott és másik motorral megy, akkor miért kell egy motort vezérlő áramkörben lévő pic programját megfejteni ha annak bemenete / kimenete mérhető. Ha egy másik motor működik vele, akkor annak hibája nincs.
Működéshez egy adott frekvencián pwm állítanak be effektiv feszültséget a motornak.
Erre léteznek egyszerűbb és komolyabb motorvezérlők is.
Ha azt a motort akarod életrekellteni amit kicseréltek mert nem működött, az nem hiszem hogy fog menni.
0
Szia!
A kis motoron van egy elektromika, ami áll 4 fetből, két hi/lowside fetmeghajtóból, 2 hall elem a pic, meg a bemenetén egy opto.
Ez így egy egység, ezt cserélték.
Mivel mutat életjelet, forgásra is lehetett valamennyire bírni, és hibás alkatrészt sem találtam, de kiolvasható volt a pic, így gondoltam, ha tudom, mit akar csinálni, és hogyan, azt is megtalálom, miért nem teszi a dolgát. Ha nem sérült a program, akkor csak kibukik, mi nem jó a panelon.
0
A léptetős motorok akkor szoktak "dadogni" (a nem elektronika hibásak) ha valamiért lassabban tudnak lépni mint ahogyan a vezérlés szeretné. ( esetleg olaj a tengelyre? Ventiknél gyakori hiba...) Esetleg a kvarc nem megy rendesen....
0
Ok, szóval egyben van minden.Nem egyszerű, de ha mindenképpen foglalkozol vele, én 5KHz -től 10KHz-ig 50% duty próbálnám az opto bemenetét, közben a hidra tennék szkopot. Ha nincs generátor, egy 555 is jó lehet, vagy egy másik kontrollerrel meghajtani 1KHz-es lépésekkel, de túl sok a változó, szerencse kell hozzá szerintem.
0
Szia!
Van szignál generátor is, szkóp is. Már beszéltük, mivel a motor két irányba is tud forogni, az 50%-k nem biztos, hogy nyerő.
0
Ebben az esetben nem visszafejtéssel kezdeném. Az összes perifériát megnézném teszi e a dolgát, ha nem, akkor megvan az ok. Ha igen, a PIC van megzavarodva, ergó kár értelmezni ami benne van, mert hülyeség.Pont most futottam bele egy olyanba, amiben minden 8. byte törlődött. ( igaz az butább volt). Ha értelmezni akarod, akkor inkább a működőt kellene tesztelgetni.
3
:Én nem tudom elképzelni, ?
Ha a PIC hajtja a hidat, akkor mit csinál a két hídmeghajtó IC, ?
Gondolom a PIC ad ki PWM-et és azzal vezérli a a két hídmeghajtó IC -t
MI a hidmeghajtó IC tipusa ?
0
A két meghajtó az fet high and lowside driver. Bocs, ha rosszul írtam A pic kapcsolgatja a feteket a hall sensorok jele alapján, mint pl a pc ventilátorokban. A bejövő pwm csak a sebességre utaló infót adja, van,olyan is, ami 0-10V ot fogad.
0
Kezdem érteni, ha a PIC ADC bemeneten megkapja amit kell, viszont nincs kimenet, akkor valószinűleg az ADC bemenet kapott egyet és halott a kontroller.
4.5V-nál többet nem fog szeretni az ADC bemeneten.
0
Az adatlapjáról idézve:
Everel has released the new EC brushless motors series which features a wide range of application characteristics and options. Motor can be controlled via PWM, 0-10 V, or fixed multiple speeds (up to 3). The enhanced versions, which integrate more advanced electronics, allow further motor speed control options and possibility of reversing the rotation. Various sensor (e.g. Humidity, flow, presence) can be integrated in the same bord. Possibility of Firmware customization. Motor efficiency up to 60%.
De ez csak PWM-et kapott, azt is egy optocsatolón keresztül.
Félig halott a cucc. Ha csak ráadom a villanyt, nyugiban van.
Ha meghajtom az OPTO-t 5Hz-es négyszöggel, akkor pörög pár fordulatot, és megáll, majd ezt ismételgeti kis szünetekkel.
De volt olyan, hogy egész sokáig pörgött. Hogy mekkora freki kell az opto bemenetére, azt nem tudom, ezért akarom megnézni a program felépítését. Lehet, hogy méri, mekkora a periódus idő, és méri, meddig magas a szint, és így állapítja meg a kitöltési tényezőt. De ha sikerül visszafejteni a progit, akkor talán azt is látom, miért áll meg.
0
Az 5Hz biztos, hogy nagyon kevés 1KHz-el próbálkoznék minimum.
0
Igen, én is így gondolom, csak akkor el sem indult.
0
És, ha folyamatosan magas szintet adsz neki?
0
Arra se reagál. Ezért próbálom visszafejteni a HEX file-t.
0
Annó piccel csináltam elég meredek szűrőt. ebből kiindulva egy hanggenerátorral azért végigtekerném (0-10khz) , hátha kiderül milyen frekvenciát szeret.
B variáció, ha megvan ami vezérli, egyszerűen megnézni a kommunikációt.
Ami a visszafejtés mellett szól, lehet a vezérlőjel nem is PWM, hanem valamiféle adatfolyam, mert egy PWM-hez minek is pic....
1
https://elektrotanya.com/comment/553799#comment-553799
Itt idéztem az adatlapból, biztosan PWM. Egy konvektor ventije, és abban romlott el, a konvektoros faszi is mondta, hogy PWM-et kap, frekit hangenerátorral próbálgattam.
A pic a PWM értékét méri, vagy az opcionális analógot potiról (a helye rajt van a panelen). Aztán azért is kell a PIC, mert nem csak vezérel, hanem figyeli is, hogy pörög-e a motor.
A program azért nagy, mert a fele kb RETLW, ami a mért időből gondolom a fordulatot adja vissza.
0
Oké, de nekem van ennél sokkal bonyolultabb ventilátorvezérlő programom is és megnézve a HEX-tartalmát, még az is kissebb.
0
Még én se tudom mitől nagy, de nagy része táblázat. Én is írtam már hosszú programot copy paste-val, mer hely volt, és nem kellett gondolkodni.
1
Lehet hogy sinus tábla vagy egyéb a jelalakhoz amit generál.
0
Nem kilóra megy
1
Ha a gépi kód nagyobb az azért egyértelmű.
0
Ugyan azt a programot meg lehet irni kisebb méretben is meg nagyobb méretben is.
Attól fűgg aki irja mennyire képes kezelni a hardvert, mennyire tud strukturáltan programozni mennyire szeret szemetelni.
Te meg összehasonlítottad ráadásul egy más programmal ami nyilván nem egyezik ezzel a programmal.
Egyértelműen feleslegesen.
0
Ebben van valami, ráadásul a program relatíve nagy, ahhoz képest, hogy csak PWM alapján motort vezérel.
0
Érdekes, újraírni a programot nem opció?
2
Sose fogod tudni korrektül visszafejteni a hex file-t. Az ilyesmi a DOS-os PC korszakban se ment, ahol pedig nagyon ment az assembly programozás (csak ott az EXE, a COM, meg az OBJ file-ok voltak a visszafejtés tárgyai). Nekem is volt akkor ezerféle disassembly programom. Elég volt az ilyen visszafejtés során egy rosszul értelmezett cimkén elcsúszni és aztán már más lett az eredmény.
Máskülönben a PIC-es PWM jel az nem egy négyszögjel sorozat, aminek a kitöltési tényezője változik ?
0
Azért az MPLAB korrektül megcsinálta, csak ember legyen aki végigrágja magát rajta. Ha az életem múlna rajta biztos menne, de így, mazochista művelet. Ahogy mondod, van annak már vagy 40 éve mikor ilyenre vállalkoztam...ZX Spectrum kód Z80 disassemblálás. :)
0
A pwm jel kintről jön egy opton keresztül. Annyit látok, a compare modullal nézi a kitöltését.
De volt már sikeres visszafeltésem, a picdisasm nagyon jól adja vissza, csak ezt a tipust nem ismeri.
0
Válassz másik típust, ugyanebből a családból.
Jó eséllyel azonos az utasításkészlet. Regiszterek címét meg látod, hogy mi az eltérés.
0
Hi
MPLABX-be beimportálod a HEX-et (persze kreálsz neki egy projektet). Majd a Windows menüben a "Target memory viwe" és a "Program memory" kiválasztva. Ott a nézetben kiválasztod a Format: Code -t, és megjelenik a hex disassemblálva. Ezt ki tudod küldeni filebe. (jobb gomb, "Out to file")
B
0
Szia!
Nincs fent az MPlab :(
0
ez lett
0
Szia.
Kiváncsiságból megpróbáltam én is úgy visszafejteni ahogy leírtad. nekem teljesen más jött ki. Tulajdon képp semmi. Mit ronthattam el?
Bocs. Közbe rájöttem a hibára.
0
Köszönöm!
0