Fórum témák

» Több friss téma
Fórum » ARM - Miértek hogyanok
 
Témaindító: gtk, idő: Jún 26, 2007
Lapozás: OK   58 / 177
(#) icserny válasza Suncorgo hozzászólására (») Feb 28, 2015 /
 
A CY8KIT-050 kártya kapcsolási rajza szerint azon a programozó fixen 3,3 V-os tápfeszültséget kap. Ezek szerint a 3,3 V-os jelszint elég kellene, hogy legyen az 5 V-on történő programozáshoz is?

A "power cycle" móddal próbálkoztál már? Ehhez a VTARG kimenetről kell járatni a target áramkört...
(#) Suncorgo válasza icserny hozzászólására (») Feb 28, 2015 /
 
5V-rol se reset se power cycle módba nem megy. Viszont kiprobáltam hogy egy 330ohmos ellenállással húztam az órajel offset feszültségén 5V felé, igaz nem sokat változott (kb 2-3 tized voltot) de ekkor már felismerte.

Ha kezed ügyébe akad még egy ilyen kit akkor nem néznéd meg hogy nincs e ott valamilyen szintillesztő közöttük?
(#) Suncorgo hozzászólása Feb 28, 2015 /
 
De hogy a Cypress fórumon se mondanak semmi értelmeset
Gondolom senkinek sincs ilyen programozója hogy meg tudná mérni...?
A hozzászólás módosítva: Feb 28, 2015
(#) icserny válasza Suncorgo hozzászólására (») Feb 28, 2015 /
 
A kapcsolási rajzot az előző hozzászólásomban belinkeltem. A kártyára épített programozó IC melletti R9 "ellenállás" mindkét végén 3 V körüli feszültséget mérek, ez a programozó tápfeszültsége. A Target PSOC jelenleg 5V-ot kap. Az SWDIO és SWDCLK lábak közvetlenül vannak bekötve (nincs szintillesztő). A PSOC Creator-ban megy a programozás:

--------------- Build Succeeded: 02/28/2015 18:13:34 ---------------
Programming started for device: 'PSoC 5LP CY8C5868AXI-LP035'.
Device ID Check
Erasing...
Programming of Flash Starting...
Protecting...
Verify Checksum...
Device 'PSoC 5LP CY8C5868AXI-LP035' was successfully programmed at 02/28/2015 18:13:40.
A hozzászólás módosítva: Feb 28, 2015
(#) Suncorgo válasza icserny hozzászólására (») Feb 28, 2015 /
 
Rendben majd kipróbálom én azzal a 2 ellenállással hátha.
Viszont visszagondolva az AVR-es időszakomra mikor azokat is programoztam és 5V-ról járattam akkor a logikai H szint 3.6V felett volt.

Nekem is ilyen kontrollerem van csak 032 a vége.
A hozzászólás módosítva: Feb 28, 2015
(#) Suncorgo hozzászólása Feb 28, 2015 /
 
Új tesztem: Külső áramforrással.
Elindítom a psoc programmert, debug gomb, ekkor dugom be a programozót, felismeri. Következőnek csatlakoztatom az SWD kábelt is. Elkezdem labortápról növelni a mikrokontroller tápfeszültségét.
1.8V-tól megjelenik a kontrollerem a psoc creatorban de 4.6V-nál eltűnik.
(#) Suncorgo hozzászólása Feb 28, 2015 /
 
Bocsi félreértettem az ellenállás témát. Alaposan átrágtam a kapcsolási rajzot. Hihetetlen hogy nálam nem működik 5V-ról.
(#) Suncorgo hozzászólása Márc 1, 2015 /
 
Létrehoztam egy myCase nevű akármit és írtam a Cypress technikai support-nak. Most már csak győzzem kivárni a választ. Csatolom a programozó kimenetének mérési képeit.

A piros a VTARG, a sárga pedig az SCLK. De ugyan ilyen feszültség szintje van az SDAT-nak is.
(#) icserny válasza Suncorgo hozzászólására (») Márc 3, 2015 /
 
Végső soron egy J-link (vagy U-link) segítségével is programozhatók/debugolhatók a PSoC 4 vagy PSoC 5LP mikrovezérlők, de a projektet exportálni kell a PSoC Creatorból és az új környezetben újra kell fordítani. Keil, IAR for ARM és Eclipse+GCC közül én a Keilt próbáltam ki tegnap este.

Apropó: Keil és J-link! Hogy lehet rávenni a Keilt, hogy kapcsolja be a J-link VCC kimenetét, azaz adjon feszültséget a target áramkörnek? Nekem csak úgy sikerült, hogy a Debug/Settings beállításoknál rákattintottam a Jlink cmd gombra, s a felugró Jlink parancsori ablakban kiadtam a power on parancsot. Feltételezem, hogy nem ez az egyetlen megoldás...
A hozzászólás módosítva: Márc 3, 2015
(#) Suncorgo válasza icserny hozzászólására (») Márc 3, 2015 /
 
Az addig rendben van hogy működik mással is de most adtam ki ezért a programozóért egy összeget és mivel gyári ezzel kellene működnie. Végülis ma hívam az FDH-t és nagyon segítőkészek voltak. Egyből felajánlották a cserét és nézzem meg az mit csinál. Csatoltam nekik a képeket és most várom a választ.

A kérdésedre válaszolva szerintem a KEIL nem programozó specifikus program, több fajta programozót támogat ezért nem is támogatja azoknak minden funkcióját. Én sem láttam benne Power on ikont.

Biztos van a J-link programozónak is egy hozzá való programja amelyben be tudod kapcsolni a tápfeszültséget.

Bővebben: Link
(#) icserny válasza Suncorgo hozzászólására (») Márc 3, 2015 /
 
Idézet:
„Biztos van a J-link programozónak is egy hozzá való programja amelyben be tudod kapcsolni”
Igen, pontosan ez történik az említett Jlink cmd gomb megnyomásakor: beugrik a Jlink program ablaka.
(#) Suncorgo válasza icserny hozzászólására (») Márc 3, 2015 /
 
Ezen a képen látok egy olyan fület egy programban hogy target power, gondolom itt be lehetne kapcsolni a tápot: Bővebben: Link
(#) icserny válasza Suncorgo hozzászólására (») Márc 4, 2015 /
 
Igen, ez a Jlink Console. De csak akkor jön be, amikor a Jlink.exe fut, akkor meg már a "power on" parancsot sem kunszt kiadni...

A kényelem érdekében annyit tudtam tenni, hogy a fent említett programban a Power on állapotot beállítottam alapértelmezettnek, így csatlakoztatáskor azonnal van tápfeszültség.
(#) Suncorgo hozzászólása Márc 4, 2015 /
 
Miért nem villog a ledem?

Ciklusból láb kapcsolgatással működik de RTC-vel annak is az RTC_EverySecondHandler(); függvényéből nem.

Debug közben látom hogy a program belép a CY_ISR(RTC_ISR) függvénybe, a másodpercet is tudom olvasni is és ketyeg is de ez a feltétel nem teljesül:

  1. /* Execute every second handler if needed */
  2.     if(0u != RTC_IS_BIT_SET(RTC_intervalCfgMask, RTC_INTERVAL_SEC_MASK))
  3.     {
  4.         RTC_EverySecondHandler();
  5.     }


Az initializáló kód ennyi (main.c):
  1. void LED_Toogle()
  2. {
  3.     LED_Write(!LED_Read());
  4. }
  5.  
  6. int main()
  7. {
  8.     /* Place your initialization/startup code here (e.g. MyInst_Start()) */
  9.     RTC_Start();
  10.     CyGlobalIntEnable; /* Uncomment this line to enable global interrupts. */
  11.    
  12.    
  13.     for(;;)
  14.     {
  15.         /* Place your application code here. */
  16.     }
  17. }


írtam egy main.h fájlt is amelyben a void LED_Toogle() prototípusát tudom inkludálni az RTC_INT.c fájlba.

  1. static void RTC_EverySecondHandler(void)
  2. {
  3.     /*  Place your every second handler code here. */
  4.     /* `#START EVERY_SECOND_HANDLER_CODE` */
  5.     LED_Toogle();
  6.     /* `#END` */
  7. }


Valakinek valami ötlete?
(#) icserny válasza Suncorgo hozzászólására (») Márc 5, 2015 /
 
Probléma: az RTC_EverySecondHandler(); függvény nem kerül meghívásra:

A főprogramban gondoskodni kell róla, hogy RTC_intervalCfgMask-nak a megfelelő bitjei (jelen esetben legalább az RTC_INTERVAL_SEC_MASK) be legyenek billentve! Az RTC mintaprogramban ez így néz ki:

  1. /* Set interval mask - handling of interrupt stubs of the RTC component */
  2.     RTC_WriteIntervalMask(RTC_INTERVAL_SEC_MASK  | RTC_INTERVAL_MIN_MASK   |
  3.                           RTC_INTERVAL_HOUR_MASK | RTC_INTERVAL_DAY_MASK   |
  4.                           RTC_INTERVAL_WEEK_MASK | RTC_INTERVAL_MONTH_MASK |
  5.                           RTC_INTERVAL_YEAR_MASK);


Nyilvánvalóan, amelyik nem kell, azt ki lehet hagyni...

A PSoC Creator nyitólapján a "Find Example Program" menüpontban PSoC 5LP-hez egyetlen RTC mintaprojekt található.
1. Ezt kibővítettem egy pin megadásával (digitális kimenet, LED4 néven, nincs HW kapcsolat), melyhez a P6_3 lábat rendeltem (az én kártyámon ide van kötve a LED4).
2. Az RTC_INT.c állomány elejére beírtam az #include "LED4.h" sort, valamint az RTC_EverySecondHandler() függvény törzsébe beszúrtam az alábbi sort:
  1. LED4_Write(~LED4_Read());


Build és programletöltés után villog a LED, ahogy kell (tehát lefut az RTC_EverySecondHandler() függvény!), s a mintaprogram a P2[6:0]-ra kötött LCD-n kijelzi az időt és a dátumot.
(#) Suncorgo válasza icserny hozzászólására (») Márc 6, 2015 /
 
Köszönöm!

A következő kérdésem az lett volna hogy a mintapéldát honnan érem el de erre is megkaptam a választ, szinte gondolatolvasó vagy

Lenne még egy kérdésem:

Van egy órajel forrásom, összekötöttem egy számlálóval és így állítok elő kb 5hz-et. Erre az 5hz-es kimenetre rákötöttem egy ISR-r, vagyis azt szeretném hogy egy másodperc alatt ötször fusson le az a megszakítást kezelő függvény ahol (megint ) villogtatok egy ledet úgy ahogy írtad. Viszont ha nem inkludálom be a project.h fájlt akkor a LED_Read és Write függvényeket nem érem el. Beírom az elejére hogy #include <project.h> és minden hiba eltűnik értelem szerűen. Viszont ha a Build-ra nyomok akkor újragenerálja a ISR API-ját és kiveszi belőle ezt az inkludálást. Ekkor megint warningot kapok. Érdekes hogy amit az ISR törzsében írtam az pedig megmarad. Szóval hogyn lehet azt beállítani hogy API újragenerálásakor ne törölje ki annak a fájlnak az inkludálását?

hz_5.c
  1. #include <project.h> //ezt a sort törli ki
  2.  
  3. ................
  4.  
  5. CY_ISR(hz_5_Interrupt)
  6. {
  7.     /*  Place your Interrupt code here. */
  8.     /* `#START hz_5_Interrupt` */
  9.     LED_Write(!LED_Read()); //ez viszont megmarad
  10.     /* `#END` */
  11. }
A hozzászólás módosítva: Márc 6, 2015
(#) icserny válasza Suncorgo hozzászólására (») Márc 6, 2015 /
 
Idézet:
„Viszont ha nem inkludálom be a project.h fájlt akkor a LED_Read és Write függvényeket nem érem el.”
Nem kell az egész project.h-t becsatolni, elég lesz a LED.h-t becsatolása, ahogy előző hozzászólásomban én is tettem.

Idézet:
„Viszont ha a Build-ra nyomok akkor újragenerálja a ISR API-ját és kiveszi belőle ezt az inkludálást.”
A generált fájlokba csak a #START és #END jelzők közé szabad írni, a többi újraépítéskor eltűnik... Van ilyen jelzőpáros a fájl elején is, direkt az "#include"-oknak is.
(#) Suncorgo hozzászólása Márc 6, 2015 /
 
Megkaptam a csereprogramozót. Arra jöttem rá hogy ezeknél ez szériahiba amelyet vagy javítani fognak vagy nem, mert végül is működik csak instabil. Ugyanis eddig úgy csatlakoztattam a programozót a céláramkörre hogy volt közöttük egy kb 15 centis szalagkábel. Ekkor nem működött csak 5V alatt. Most kihagytam ezt a kis házi kábelt és szerencsémre a nyákon ugyan úgy csináltam meg a programozó csatlakozó lábkiosztását mint ahogy magából a programozóból kijön így rá tudtam direktbe csatlakoztatni a céláramkörre (lényegében a céláramkörön 90 fokban áll a programozó). Így már működik 5V-on is. Szerintem 5V-os módban szalagkábellel annyi zavart összeszed hogy képtelen kommunikálni a céláramkörrel a programozó. Így extra kábel nélkül jóval rövidebb a távolság a céláramkör és a programozó között.

Szkópos mérésekkel arra is rájöttem hogy extra kábellel is észreveszi a céláramkör hogy akarnak tőle valamit mert az adatvonalra rákötve a szkópot, mikor a programozóból megy az adat a cél mikrovezérlőhöz akkor a feszültség amplitúdó max 3,3V ami eddig gond volt ugye. Viszont ha a céláramkör válaszol a programozónak akkor felmegy a feszültség amplitúdó 5V-ra!

Meg kellene nézni hogy mégis milyen szintillesztő van ebben a programozóban és annak a szintillesztés lábát rákötni a VTARG feszültségre ha most nem így lenne...
A hozzászólás módosítva: Márc 6, 2015
(#) toto hozzászólása Márc 28, 2015 /
 
Sziasztok!
Tervezek egy áramkört, amelyben egy STM32F407VET6 hajt meg egy SSD1963-as LCD-t FSMC-vel. A kontroller 168MHz-en megy, és egy kétoldalas NYÁK-ra szeretném ráépíteni, az SSD1963 gyári panelen van. Az egész így egy szendvicspanel kivitel lenne kábel nélkül, kétsoros tüskés csatlakozóval összekötve.
Olvastam olyan véleményt, hogy ilyen frekvencián nem érdemes kétoldalas panellal próbálkozni, de szerintem kivitelezhető lenne. Most egy fejlesztő panelről vezérlem az LCD-t, amely egy 20 cm-es szalagkábellel van összekötve az SSD-vel. A panel ránézésre csak kétoldalas. Vannak néha véletlenszerű fagyások, amelyek valószínűleg a két panel hosszú összekötésének tudható be, de szerintem ezek megszűnnének a megfelelő kialakítás esetén.
Van valakinek ilyen irányú tapasztalata? Esetleg tanácsok, javaslatok azon kívül, hogy minél rövidebb vezetékek, és hidegítések a kontrollerhez minél közelebb ?
Köszi.
(#) gtk válasza toto hozzászólására (») Márc 28, 2015 /
 
En is terveztem egy panelt F427-el. 24 bit adc, dac, dds is van a panelon. Most van a gyartatas folyamatban, ezert meg nem tudok tapasztalatrol beszelni. A 2 retegu panel ugy van kialakitva, hogy az also retegen a proci alatt levo polygon a proci gnd labait teljesen osszekoti. A felso retegen meg a VDD labak vannak osszekotve de nem polygonnal, hanem sima routolassal. Minden VDD agon 10µF +100 nF. A felso retegen a proci alatt megmaradt polygon GND-re van VIAzva az also retegre. A csatolt linken latszik valamennyire.
Mekkor frekvencian hajtod az LCD-t? Szoktak olyant csinalni, hogy soros 22-100 ohm minden addatvonallal, es 22--100 pF parhuzamosan fold fele (frekifuggo nyilvan). Ha szkoppal merve jol nez ki a jelalak, akkor nem lehet nagy baj.
Bővebben: Link
A hozzászólás módosítva: Márc 28, 2015
(#) toto válasza gtk hozzászólására (») Márc 28, 2015 /
 
A GND-t én is hasonlóképpen szoktam kialakítani, persze ha a többi huzalozás megengedi.
Az FSMC frekvenciája a maximális, 168MHz /2, legalábbis beállítás szerint, szkóppal még sosem néztem.
Ilyen, az adatvonalra rárakott RC tagot még nem láttam. Szerintem még a 22pF is eléggé beterhelhet 100MHz-en. A soros ellenállás pedig szerintem nem segít ha kétirányú az adatvezeték.
Ezt a megoldást a relatív hosszú vezeték + gyors kapcsolás miatti belengések miatt használhatják?
(#) gtk válasza toto hozzászólására (») Márc 28, 2015 /
 
Idézet:
„Ezt a megoldást a relatív hosszú vezeték + gyors kapcsolás miatti belengések miatt használhatják?”
Igen, es olyan differencial vezetekeknel is, ahol az impedancia nincs rendesen kialakitva. A vezetek hossza, az ugye relativ, frekifuggo. Az XC megmondja hogy mekkora terhelest jelent az adott kapacitas.
(#) toto válasza gtk hozzászólására (») Márc 28, 2015 /
 
Tehát ha jól értem, akkor az impedanciaillesztés a célja az RC körnek, vagyis a reflexió minimalizálása. Ilyenkor pedig a C nem önmagában, hanem a vezeték induktivitásával együtt számít. Ez már kicsit összetettebb, mint mondjuk egy Thomson-képlet. Mert pl. milyen frekvenciá(k)ra méretezik azt egy négyszögjel esetén?
Ez csak elméleti kérdés, nem hiszem, hogy én ilyeneket fogok beletervezni az áramkörbe. Maradok a "minél rövidebb vezetékek" irányelvnél.
(#) gtk válasza toto hozzászólására (») Márc 28, 2015 /
 
USB-nel diff tracenel hasznaltunk olyant hogy 10 mil-es trace, 10 mil tavolsagra egymastol es 22 ohm sorba mindkettovel, mivel a 90 ohm differencialis impedancia nem jott volna ki csak nagyon vekony trace-el. Volt nehany pf lezaraskent, mar nem emlekszem pontosan hany pF.
A kondenzatorokat az athallasok csillapitasara is hasznaljak. A soros ellanallas meg a tullengeseket csillapitja, vagyis lerontja a kabel vagy trace Q-jat, igy megno a savszellessege az induktivitasnak.
Ami meg fontos hogy a CLK vonalat tavolabb illik tenni az adatvezetektol.
(#) vzoole válasza toto hozzászólására (») Ápr 1, 2015 /
 
Egyszer már terveztem bonyolultabb áramkört két oldalas panelra próbaképp (SDRAM, LCD, USB meg pár apróság). Különösebb gond nem volt vele.
EMC szempontból nem a legelőnyösebb, de akár meg is felelhet a direktíváknak, így hogy 100MHz alatt fut.

1234.png
    
(#) toto válasza vzoole hozzászólására (») Ápr 1, 2015 /
 
Köszönöm a hozzászólásokat, így nagyobb bátorsággal állok neki a feladatnak.
(#) killbill válasza vzoole hozzászólására (») Ápr 1, 2015 /
 
Ez a panel sosem fog semmilyen EMC direktivanak megfelelni, az tuti! Csoda, ha egyaltalan mukodik ezekkel a foldekkel. De volt ebbol a panelből neked négyrétegű is, nem?
(#) gtk válasza vzoole hozzászólására (») Ápr 1, 2015 /
 
Ezen a panelon meg boven van hely foldnek.
(#) killbill válasza gtk hozzászólására (») Ápr 1, 2015 /
 
Hely van, de sosem lesz egybefuggo, es ugy nem sokat er. Nagyon sok a vonal mindket oldalon. Nem eleg az Ohm-os kapcsolat, induktivitasszegeny fold kell. A negyretegu panelt nem uri szorakozasbol talaltak ki.
(#) gtk válasza killbill hozzászólására (») Ápr 1, 2015 /
 
Elso ranezesre ugy tunt hogy megoldhato lett volna a folyotnos GND VIAzassal. Alaposabban nem elemeztem ki. Volt mar teszt DDS-re, es ugyanolyan spektrumot , zajrt mertek a jol megtervezett 2 retegu panelon is mint a 4 retegu, demo panelon.
Következő: »»   58 / 177
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