Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1114 / 1319
(#) watt válasza icserny hozzászólására (») Márc 9, 2013 /
 
Jelen esetben a kérdés a baudrate sebességre irányult, oda pedig nem a 12MHz-et kell figyelembe venni, a különböző beállításokhoz tartozó képletek tartalazzák a megfelelő osztásokat is.
A hozzászólás módosítva: Márc 9, 2013
(#) Simon Kornél válasza watt hozzászólására (») Márc 9, 2013 /
 
Köszönöm, hogy segítesz, de nem tudom mire gondolsz.(Azért válaszolok lassan , mert próbálom közben elindít a kommunikációt)
FOSC=20MHz
BRGH=1
BRG16=1
SYNC=0
Ebben az esetben a képlet a következő:
FOSC/[4(n+1)]
A képlet alapján és a PIC dokumentációja alapján ugyan azt az értéket kaptam 300K átviteli sebességre, 16665.
Nem értem?! Az FOSC értékem a rossz?
(#) watt válasza Simon Kornél hozzászólására (») Márc 9, 2013 /
 
Idézet:
„Azt írja, hogy a rendszer időm 48MHz.”

Fosc=rendszeridő
Mi az ami nem érthető?
(#) Simon Kornél válasza watt hozzászólására (») Márc 9, 2013 /
 
Köszönöm a segítséget! Elindult a kommunikáció!
Én folyamatosan a 20MHz-es kristály oszcillátorhoz akartam beállítani az átviteli sebességet.
Üdv.:K
(#) watt válasza Simon Kornél hozzászólására (») Márc 9, 2013 /
 
Ne feledd a másik "hibát" is módosítani, amit jeleztem.
(#) Simon Kornél válasza watt hozzászólására (») Márc 9, 2013 /
 
Rendben! Kijavítottam. Köszönöm! K.
(#) slogan hozzászólása Márc 9, 2013 /
 
Sziasztok Urak !

A következőre szeretnék valamiféle magyarázatot ,vagy megoldást kapni.

- Adott 2db PIC ,amik közös órajelen vannak (OSC1 -en,OSC2 1M -val földön.)
- Órajel 2MHz.
- PWM Kimenetet figyelem és a képen látható elcsúszás figyelhető meg.
- Mindkét picben csak annyi van ,hogy PWM kitöltés 50%

A lényeg a szinkron lenne ,de minden egyes tápelvételnél másképp (random) ,de pici csúszással jön vissza.

Köszönet !
A hozzászólás módosítva: Márc 9, 2013

aawFile0.jpg
    
(#) _vl_ válasza slogan hozzászólására (») Márc 9, 2013 /
 
A magyarázat nagyon egyszerű: a PWM kimenet egy számláróra épül. A számláló az órajelet számolja, majd a beállított periódus elérésekor nullázódik. A nullázódásnál lesz az egyik él a kimeneten, a másik pedig innen számolva a beállított kitöltési tényező szerint jön majd. Ahhoz, hogy szinkronban jöjjenek a jelek, az kéne, hogy a két PIC számlálói egyszerre induljanak, azaz a programoknak is hajszálpontosan egyszerre kéne elindulniuk. Ezt a PIC hardverből nem garantálja, bekapcsoláskor van egy többé-kevésbé random várakozás. A programoknak kellene induláskor összeszinkronizálniuk egymáshoz, vagy azt is lehet, hogy menet közben az egyik folyamatosan ellenőrzi, hogy hol jár a másikhoz képest, és korrigál.
A hozzászólás módosítva: Márc 9, 2013
(#) slogan válasza _vl_ hozzászólására (») Márc 10, 2013 /
 
Szia !
Köszönöm ,logikus magyarázat !Mit tudok tenni ,ha segítenél ebben.
Mi a szokás ,ennyire "pontos" dolgot még nem kellett csinálnom.....
Ja....
És a végkifejlet nem 2db PIC lesz ,hanem 8-10 db ,ezeknek kellene "szinte" teljesen szinkronban PWM-kedni.
A hozzászólás módosítva: Márc 10, 2013
(#) _vl_ válasza slogan hozzászólására (») Márc 10, 2013 /
 
Ha nekem kéne ilyet csinálni, én átgondolnám ezt az elvárást, és ha lehet, elkerülném. Ha nagyon muszáj n db azonos frekijű, szinkronizált, de eltérő kitöltési tényezőjű PWM jelet előállítani, akkor valószínűleg mást használnék erre a célra. 8-10 kimenetig lehet találni PIC-et, felette létezik pl. LED-ek meghajtására kitalált IC, amiben 16-24 PWM kimenet van, amit mikrokontroller tud vezérelni. Megkeresem, hogy hol láttam.
Vagy ha még ennél is több kimenet kell, akkor meg egy kisebb FPGA-ben secperc alatt össze lehet dobni, a szakajtó PIC árából meg ki is jön.
(#) slogan válasza _vl_ hozzászólására (») Márc 10, 2013 /
 
Nem a HT1632 -re gondolsz LED ügyileg ?
(#) _vl_ válasza slogan hozzászólására (») Márc 10, 2013 /
 
Valami Texas IC volt, meg nem mondom a típusát most.
(#) zenetom hozzászólása Márc 10, 2013 /
 
Sziasztok!
Egy fejlesztéshez akartam valami új PIC-et használni, mert jól jött volna a 2 UART egy tokban. Ki is választottam a 18F46K22-t, de ahogy nézegettem az adatmemóriát, írta az adatlap, hogy az SFR egy része (0xF38-0xF5F) nem tartozik az Acces RAM-hoz. Ergo ha használni akarjuk, akkor be kell állítani a 15. BANK-ot, ami végülis nem nagy baj, hisz egyszer kell csak beállítani, ha az ember csak az Acces RAM-ot használja.
Le is szimuláltam MPLAB-ban, és tényleg úgy van.
Végülis nincs semmi kérdésem, érthető a dolog, csak eddig megszoktam, hogy az Acces RAM tartalmazza az összes SFR-t, és most ez kicsit meglepett.
(#) bbalazs_ válasza zenetom hozzászólására (») Márc 10, 2013 /
 
Sajnos mosanaban egyre tobb 18F-es jon ki ilyen szervezessel. Egyszeruen mar annyi regiszter van, hogy nem tudjak mashova bezsufolni.
En ezzel egy 25K80-asnal szembesultem eloszor, PWM es AD kapcsan.
(#) bbalazs_ válasza slogan hozzászólására (») Márc 10, 2013 /
 
Ha a szkopoknal megszokott egy kocka az idoalap, akkor ez a csuszas abnormalisan nagy, fel milliszekundum koruli. Ezt nem magyarazza a picek eltero felebredese.
Minden konfigbit (kulonosen a WDT) ugyanolyan?
Milyen nyelven irtad meg?
Miert nem lehet egy PIC-el meghajtani? 500Hz siman menne szoftveres PWM-bol EGY db PIC-el tetszoleges szamu (akar 40) kimenettel. Es a csuszas szerintem mikroszekundum alatt lenne.
(#) zenetom válasza bbalazs_ hozzászólására (») Márc 10, 2013 /
 
Szerintem felesleges annyi perifériát belezsúfolni egy tokba. Főleg a 28 lábúaknál.
Inkább csinálnának több fajta sub-családot, hogy legyen elég fajta variáció.
Így a bankos problémával visszajutottunk a 16F-hez, amit direkt el akartam kerülni a 18F-el.
Na nem baj, végülis választottam egy másik PIC-et (18F2620), ami ugyanazt tudja, csak nincs tele értelmetlen perifériákkal.
(#) bbalazs_ válasza zenetom hozzászólására (») Márc 10, 2013 /
 
Szerintem meg jo. Olcso a szilikon
En szeretek par tipusra beallni, kiismerem a nyugjeiket.
Egyebkent assemblyben hivatalbol szinte mar senki nem dolgozik (engem kiveve), a magasabbszintu nyelvek meg alapbol kezelik.
(#) _vl_ válasza zenetom hozzászólására (») Márc 10, 2013 /
 
... hanem helyette inkább többe kerül... ez tök jó üzlet a Microchipnek
(#) bbalazs_ válasza _vl_ hozzászólására (») Márc 10, 2013 /
 
A tokozas dragabb. Igazabol a fejlesztes meg a tokozas a draga belole. A tobbi szinte elhanyagolhato. Ja, meg a marketing es a vezetok premiuma.
(#) _vl_ válasza bbalazs_ hozzászólására (») Márc 10, 2013 /
 
Természetesen azért drágább, mert régebbi. És az a Microchip policy, hogy az újabb termékek árát picivel alacsonyabbra lőjük be, a régebbiek árát meg nem engedjük le, így az árorientált felhasználók szépen áttérnek az újabbakra.
2620 ugyanis 28-lábú, a 46K22 meg 40-lábú, tehát ha a tokozás lenne a drágító tényező (amúgy kicsit az, kb. 50-100 Ft-ot számít), akkor a 46K22 lenne a drágább, nem pedig fordítva.
(#) Hp41C válasza zenetom hozzászólására (») Márc 10, 2013 /
 
Szia!
A fejlődés már csak ilyen:
- A sok periféria bezsúfolásának az oka, hogy szélessebb körben lehessen alkalmazni egy típust. Valakinek két UART, valakinek a két MSSI kell, másoknak pedig sok timer stb. Minél nagyobb darabszámot lehet elérni egy típussal, annál olcsóbb lesz. Az új technika (K sorozat), alacsonyabb csíkszélességgel, újabb gépsorral dolgozik, ugyan arra felületre több egység fér rá.
- Minél régebbi a terv és a gyártási technológia annál drágább a kontroller. A jó öreg 16F84A ( 900 Ft+áfa), avagy 18F2620 (1130 Ft+áfa) - 18F26K20 (640 Ft+áfa)...
A hozzászólás módosítva: Márc 10, 2013
(#) zenetom válasza Hp41C hozzászólására (») Márc 10, 2013 /
 
Persze, az oké hogy sokminden van egy tokon belül, csak ez így kókány megoldás.
bbalazs_ én is assembly-ben programozom a PIC-eket, bár ismerem a C-t is, de lusta vagyok rá áttérni
(#) Hp41C válasza zenetom hozzászólására (») Márc 10, 2013 /
 
Akkor az advanced midrange típusokhoz mit szólsz? 32 bank -juk ban. Legalább van egyszavas "movlb bank" utasításuk...
(#) bbalazs_ válasza zenetom hozzászólására (») Márc 10, 2013 /
 
OK, de mit csinalsz mondjuk az USB vagy a NET alkalmazasokkal, ahol a draga egyetlen mikrocsip csak es kizarolag C-ben biztositja a forrast.
En is utalom a c-t meg nem is akarom megtanulni, de elobb-utobb valami minimalisan foglalkozni kell vele, mert egyszeruen kenyszeritenek.
(#) bbalazs_ válasza _vl_ hozzászólására (») Márc 10, 2013 /
 
Elmondtad a lenyeget: hova LOJUK be az arat.
En az eloallitasi koltsegrol beszeltem. A tobbi a marketing.
(#) icserny válasza Hp41C hozzászólására (») Márc 10, 2013 /
 
Idézet:
„Minél régebbi a terv és a gyártási technológia annál drágább a kontroller.”
Ha úgy vesszük, a felárral azt is megfizeted, hogy az már egy jobban kiismert (néha javított) típus.

Az újat meg azért adják olcsón, mert a kedves vevő is részt vesz a fejlesztésben: sűrű anyázások közepette reportolja a gyártónak a felfedezett hibákat.
(#) Hp41C válasza bbalazs_ hozzászólására (») Márc 10, 2013 /
 
Idézet:
„En is utalom a c-t meg nem is akarom megtanulni, de elobb-utobb valami minimalisan foglalkozni kell vele, mert egyszeruen kenyszeritenek.”

Annyit tennék még hozzá, hogy meg is vetetik a méregdrága fordítót, mert a free módú optimalizáló inkább teleszórja a kódot értelmetlen utasításokkal, mint optimalizál. Ráadásul a 8, a 16 és a 32 bitesekhez megveheted külön-külön. Ha már rászoktál, akkor vedd is meg a nagyobb kontrollereket, mert nem fér be a programod a kisebbek memóriájába...
(#) zenetom válasza bbalazs_ hozzászólására (») Márc 10, 2013 /
 
Mondjuk az USB asm-ben már húzós, én is C-ben játszottam vele, bár az se volt teljesen világos
Ami még indok a C-nél: a változó típusok, meg a műveletek. Nem kell ide-oda pakolgatni az átvitelt, deklarálsz egy integert, vagy floatot, és már mehet is a móka.
(#) slogan válasza bbalazs_ hozzászólására (») Márc 11, 2013 /
 
Szia !
Nem is igazán az a baj ,hogy nagy ,hanem az ,hogy random.
Végül is egy PIC-ben lesz ,majd meglátom mennyire macerás programozni ,mennyire fog elcsúszni "n" darabszámnál.WDT ki van kapcsolva.Csak halkan írom Flowcode-ban programozom.
Ahogy néztem a port kiíratások között 500nsec eltolódás van, de az "új" PICben még nem is néztem (18F67K22).
Köszi a választ !
(#) watt válasza slogan hozzászólására (») Márc 11, 2013 /
 
Ha egy helyen lesznek a "kimenetek", akkor jobban jársz egy több PWM modullal ellátott PIC-el, vagy valami céláramkörrel, ahogy ezt már jelezték a többiek is. Egyéb esetben nem nagyon lehet megoldani a dolgot, főleg ha neked 500nsec is számít...
Következő: »»   1114 / 1319
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem