Fórum témák
» Több friss téma |
Anno általános iskolában fizika órán láttál Van de Graaff-generátort működés közben? Vicces dolgokat tud csinálni a sztatikus feszültség, amikor töltés kerül egy vezetőre, és bár feszültség generátor nem hajtja, cserébe fújja az elektronszél a töltést végig a vezetéken. Felejtsd el a tápfeszültség / föld potenciált, amerre vezető felület van, az szétterül, és közben akár ampernyi csúcsáramot lök. És hogy mennyi energia tud lenni benne? Egy nyári estére emlékszem, amikor kicsit lehűlt a levegő, és este a sötét szobában levettem a műszálas pulcsit. Olyan fényjátéktól villogtak a szoba falai, mintha egy diszkóban lettem volna. Pedig csak egy sima mozdulattal levettem egy pulcsit. Te állandóan azt fogod csinálni a függönyökkel - segítesz nekik súrlódni, és a felületükön keletkezett töltésnek fémfelületet + elvezetést fogsz felkínálni.
Hát akkor mi a megoldás?
A Vss definiciója az adatlapon is : Ground reference for logic and I/O pins A vezérlés (Pic) és motor közötti 5-6 m-es távot árnyékolt vezetékkel tervezem kiépíteni. Ez nem véd meg a statikus feszültségtől?
Ha a következőképen csatlakozol a motorhoz, nem kell összekötni még a Vss -t sem:
A motor vezérlését két relé látja el: - az irányváltó - egy be- / kikapcsoló. A relé tekercseit a PIC kimeneteire kapcsolt tranzisztorokkal lehet megoldani. A megállást/megszorulást figyelő ellenálláson eső feszültséget az érzékelőnél feldolgozhatod egy komparátorral, a komparátor kimenetét egy optocsatolón kereszül juttatod a PIC bemenetére.
Szupresszordiódák alkalmazása, illetve két soros, egyforma, nagyértékű ellenállás a jelvivő vezetékek közé kötve, az ellenállásközép meg földelve. A mondjuk 100k-s ellenállások nem terhelik meg a jeleket, viszont levezetik a sztatikus feszültség töltését a föld felé.
A hozzászólás módosítva: Feb 22, 2017
Sziasztok!
Két PIC közötti SPI kommunikációval akadt gondom: Ha a Slave-ként konfigurált eszköz hamarabb kap tápot a Master-nél, akkor képtelenek kommunikálni. A kép PIC galvanikusan külön tápon van, a kommunikációs csatorna optocsatolóval le van választva. Ha a master hamarabb indul, semmi gond nincs. Az SPI beállítása: Master: (PIC16F1938)
Slave: (PIC16F1824)
A hozzászólás módosítva: Feb 22, 2017
Az nem oldja meg a problémát, ha bekapcsoláskor a slave addig nem engedélyezi az SPI-t, amíg a Slave Selectnek használt lábon nem érzékel magas szintet? Vagy mi okozza a problémát?
Azt elfelejtettem említeni, hogy Slave Select nélküli üzemmódban használom.
SSPM=0101 = SPI Slave mode, clock = SCK pin, SS pin control disabled, SS can be used as I/O pin Csak egy Slave van a buszon. A hozzászólás módosítva: Feb 22, 2017
Az egyik lehetséges megoldás, amit terveztél eredetileg. Legyen csak közvetlenül huzalozva, és lássuk.
Egyik ismerősöm anno pénztárgépeket szervízelt, amik rs232 kábellel voltak kötve leginkább másik szobában lévő számítógéphez, és rendszeresen mentek tönkre a soros porti meghajtók, pedig ott még különösebben sok sztatikus forrás sem volt (kisközértek). Végül rászoktak az ügyfelek az opto leválasztásra, és utána már bírták a gyűrést az eszközök. Ha nem bírja a közvetlen kábelezés, két független táp, optozni a relék meghajtását, helyben szintkomparálni a 20 ohmoson a feszültséget, és azt a digitális jelet is optoval küldeni tovább. Nagy marék tranzisztor + ellenállást kell majd beépíteni. Az a macera ráér majd akkor, amikor egyértelműen kiderült, hogy nincs más megoldás.
Az spi-nvan egy slave select jel, ami elvileg gondoskodik arról, hogy a slave ne érzékeljen megkezdett fázisállapotot olyankor, amikor nincsen. Kezeled a slave selectet megfelelően? Alap esetben rajta van a felhúzó ellenállás?
Nem kezelem a Slave select jelet. Úgy gondoltam, hogy "SS pin control disabled" módban nem kell vele foglalkoznom. Enélkül nem használható a kommunikáció ?
Ha slave esetében nem kezeled a kvázi chip select jelet, akkor az folyamatosan aktívnak van elfogadva, és az órajel vezeték minden valós vagy valósnak vélt változása fázis állapotot léptet. Az adataid megérkeznek, éppen csak kicsit kuszán, átcsoportosított bitekkel. Ha nem arra van szükséged, nem kellene alábecsülni a frame érvényesítés használatát.
Akkor bizony ez lehet a gond.
![]() Tulajdonképpen mire való az "SS pin control disabled" mód? Köszönöm a segítséget.
A masternek nincsen feltétlenül szüksége a társított SS jelre. Az SS jelet külső elektronika is létrehozhatja, például amikor sok spi modul van ugyan azon a vonalon.
Apropó, éppen filozom rajta, hogy ha slave módban nincs érvényes SS bemenet, és az alapértelmezés sem kötelez rá, hogy legyen, lehetségesen soha semmi nem fog megérkezni. A pic adatlapját kellene felkotorni azügyben.
De a Slave eszközt is be lehet konfigurálni SS nélküli üzemmódba.
![]() Érdekes, de ha a master hamarabb elindul, akkor nincs gond, az adatok helyes sorrendben megérkeznek ahogy kell. Próbálok nekifutni még egyszer az adatlapnak.
Ránéztem az adatlapra.
(DS41419C-page 251, "25.2.5 SLAVE SELECT SYNCHRONIZATION" fejezet). Idézet: Egy egyszerűre megépített pic-nél simán csak nincsen meg az elektronikai realitás, hogy bolond biztosra építsék meg. Korlátozottak a mikroelektronikai források, nem tudnak még okosabb állapotgépet építeni. Az az ára annak, hogy olcsó maradhasson. Az SSP1CON1 regiszter az I2C céljaira is használva van, és a jelek szerint a korlátok összessége folytán meg van engedve az spi slave mód nSS használat nélkül is. Viszont csak azért, mert tudsz nem működő dolgokat is építeni, nem kötelező élni azokkal a lehetőségekkel „If the Slave Select line is not used, there is a risk that the slave will eventually become out of sync with the master. If the slave misses a bit, it will always be one bit off in future transmissions.” ![]() Konkrétan a te eseteben valami olyasmi történhet, hogy a master pic elindulása a clock vonalon valami weak-pull jelenséggel generál egy tüskét, amit a slave az első órajelnek érzékel, és a jelszinkron onnantól szétesik. "Működni" attól az még működik, csak hibásan. Kellene egy kapcsrajz is, mit hogyan kötöttél be, esetleg egy felhúzó ellenállással ki lehet védeni a hibát, és továbbra is maradhat a slave-ed nSS vezérlés nélkül, bár nem garantált, hogy úgy stabilan működni fog. A hozzászólás módosítva: Feb 23, 2017
A HW kiépítését - szerintem - befejeztem. Most a PIC programozását gyűröm.
Itt szembesültem egy jelenséggel. Nyomógombbal vezérelném a motor forgását. (Gomb lenyomva--- a megfelelő láb 0-ra vált) Ha az irányváltó relé nincs behúzott állapotban, jól működik. Ha az irányváltó relé behúzott állapotban van, a gomb felengedését a PIC nem érzékeli. A PORTB felhúzva. (BCF OPTION_REG,7 ; PORTB lábak felhúzva belsőleg 1-re) Kérdésem: Mi lenne ha a PORTB,2-re külsőleg is rákötnék + 5 VDC-t. A gomb lenyomására a lábra jutó "föld" jelre jól reagál a PIC. A gomb felengedését nem érzékeli. Az irányváltó relé működése miért befolyásolja a PORTB,2 viselkedését? ![]() A hozzászólás módosítva: Feb 23, 2017
Hasonló misztériumoknál általában elkötés vagy elprogramozás derül ki. Konkrét kapcsrajz kellene első körben, és 3x is ellenőrizni, tuti biztos az van-e megépítve. Elektronikai bakik mint nincsen-e zárlat ónpacákon keresztül itt-ott, belsőleg elszakadt vezetékek, amik csak akkor vezetnek, ha mozgatod őket egyébként meg szakadás, nincsenek-e hideg forrasztások szanaszét oxidálódott fémfelületeken - szintén ellenőrizni tutira.
Nagyon rossz a sorrend:
helyett
Előbb kell beállítani minden paramétert csak aztán engedélyezni a működést. A hozzászólás módosítva: Feb 24, 2017
Köszönöm, hogy utána néztél.
![]() 1k felhúzó ellenállás minden bemeneten van. Nekem valami másnak tűnik a szinkron szétesésétől, milyen ilyenkor egyáltalán nem jön értelmes adat sem a mastertől, sem a slavetől. Csatolok oszcilloszkóppal rögzített képeket a hibás, és a jó állapotokról a Master Data in és Data out lábán, hátha előrébb jutunk vele.
Figyelj erre Bővebben: Link
Uh, nem vettem észre ezt a postot...
![]() Hp41C:Köszönöm, módosítottam a sorrendet, de sajnos a problémát nem oldotta meg. ![]()
Nem ott keresed a hibát, ahol van
![]() Ha jól értettem az előzőleg leírtakat, a slave-en bekapcsolás után ott a clock vonalon a felhúzó ellenállás. Be kell állnia az órajel vezetéknek stabilan magasra. Ha beállítod a szkóp triggert valahova fél tápra, és leesik a clock jel szintje, amikor bekapcsolod a master-t, azt a tüskét látnod kell a szkóp visszajelzésen. Azt a bekapcsoláskori jelenséget kellene kicsit megszemlélni.
Jól érted...Magas szinten van, de a master bekapcsolásakor 0 lesz, amíg nem kezd el adni a master.(lsd. csatolt kép)
Stabil 0 szint előtt 10-ből 1-szer talán el tudok kapni egy-egy 3V alatti tüskét.
Hát meg is találtuk a hibát. Az az első lefutó él a slave-ednek frame start, ami a masterednek csak bekapcsoláskori állapot alapinit előtt. Annak a vonalnak nem szabadna alacsonyra mennie. A master pic-en bekapcsoláskor alapból minden jel bemenet, akár digit, akár analóg (most nem néztem meg a master pic-ed adatlapját). A master pic-ed bekapcsoláskori initjében valami explicite kimenetre programozza az a jelet, és alacsonyra húzza. Azt a részt keresd meg és szedd ki.
Sehogy sem tudom elérni, hogy ez a lefutó él ne történjen meg. Már kivettem az optocsatolókat is, semmi sincs a két PIC között. Az optocsatoló miatt egyébként nem lényeges, hogy ki, vagy bemenet a láb.
Az OSCCON regiszter után az adatirányt állítom be rögtön, aztán az SPI konfiguráció jön..az eredmény változatlan... ![]()
Amikor kimenetnek programozod a lábat, beállítod előtte a lábhoz tartozó latch regisztert magasra?
Sziasztok
Frekimérőt szeretnék építeni. A kinézett kapcssolás (már a második) Bővebben: Link oldalról tölthető le. A problémám a szoftverrel van. 2 tömörített fájl van ,amit kicsomagolva egy ASM, HEADER és HEX fájlt kapunk( és 2 TXT ami a szerzői jogokról szól) A HEX beégetése során rögtön a megnyitáskor az üzenet: NEM TARTALMAZZA A CONFIG INFÓT. Csekély ismereteim alapján ezek osc tipus, WDT, KÓD VÉDELEM, PWRT, ezek az ASM FÁJL-ban benne is vannak. Mi lehet a gond?
A HEX állományben nincs benne a konfiguráció, de az asm -ben benne van:
Idézet: „.osc xt ; Clock = 10 MHz. .wdt off .pwrt on .protect off” Ebből és az adatlapból: a konfigurácós szó értéke 0x3FF9.
Köszi a gyors választ Hp41C
Megprobáltam ezt az ASM fájlt lefordítani (MPLAB v8.9) de legalább 600 hibát adott. pl: Symbol not previously defined (rb7) stb - Illegal opcode (ds) Gondolom a portokat regisztereket az elején definiálni kell. (jelzem nem tudok programozni egyáltalán sajnos) Talán a HEADER fájl-al kellene valamit csinálni??? Abban találtam ilyesmiket.
Nem Microchip Assebler szintaxisú a forrás...
|
Bejelentkezés
Hirdetés |