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   56 / 177
(#) gtk válasza kapu48 hozzászólására (») Jan 31, 2015 /
 
Most nezem, ebben nincs F(S)MC alkalmazva. A kerdesem inkabb arra vonatkozik.
A hozzászólás módosítva: Jan 31, 2015
(#) kapu48 válasza gtk hozzászólására (») Jan 31, 2015 /
 
Ennyi funkcióhoz nem is kel!:
  1. /* Public Functions */
  2. extern void init_ks0108(void);
  3. extern void gotoxy_ks0108(unsigned char, unsigned char);
  4. extern void putc_ks0108(unsigned char);
  5. extern void puts_ks0108(unsigned char*);
  6. extern void cls_ks0108(void);


Grafikus rutinokat még szerválni kell!
(#) cpt.zoltan.simon válasza kapu48 hozzászólására (») Feb 1, 2015 /
 
Gyorsabb ha megírod magad. És biztosabb.
Ráadásul a KS0108 nem tehet az STM számára, tehát még mezei bit-polling-al is több mint elég.
Maga az F(S)MC nem egy bonyolult dolog, ha DMA-t akarsz használni a képernyőhöz ajánlom a "videó memóriás" technikát hozzá.
(#) jefflynn hozzászólása Feb 1, 2015 /
 
Sziasztok. Egy kérdésem lenne: Cortex M0-n hogy lehet megtudni, hogy a WDT reset hol következett be? Elméletileg tudom, írni kell egy WDT irq handler-t, ami a reset előtt kiolvassa a veremből az elmentett PC tartalmat. Gyakorlatilag az irq handler még megy, de nem tudom, honnan kell kiolvasni a címet. Örülnék ha valaki tudna segíteni.
(#) Atielektro válasza jefflynn hozzászólására (») Feb 1, 2015 /
 
Elvileg az R14-ben (Link Register) van a visszatérési cím, de hogy azt hogyan olvasod ki ASM betétek nélkül, azt nem tudom, mivel makrót nem találtam rá, de attól még simán lehet. Szerencsére eddig sosem kellett ilyen mélyre túrnom a dolgokban
(#) Atielektro válasza Atielektro hozzászólására (») Feb 1, 2015 /
 
Talán a "core_cmInstr.h"-ban találsz valami használhatót.
(#) Suncorgo hozzászólása Feb 1, 2015 /
 
Sziasztok!

STM32F103C8-on belül össze akarom kötni a TIM2-öt a TIM3-al úgy hogy a TIM2 Update event legyen az órajel forrása a TIM3-nak. Valamiért TIM3 nem akar számlálni. Odáig eljutottam hogy TIM2 kiválasztom Master-nek:

  1. TIM_SelectMasterSlaveMode(TIM2, TIM_MasterSlaveMode_Enable);
  2.         TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update);


Ezután TIM3-at pedig Slave-nek:
  1. TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Gated);
  2.         TIM_SelectInputTrigger(TIM3, TIM_TS_ITR1);


TIM2 számlál viszont TIM3 számlálója meg se moccan.

TIM3 bemenet trigger forrása: TIM_TS_ITR1 -> kép

Van ötletetek miért nem működik?
A hozzászólás módosítva: Feb 1, 2015

timer.jpg
    
(#) SBahadurD válasza jefflynn hozzászólására (») Feb 1, 2015 /
 
Bővebben: Link
Én ezt használtam, igaz ARM Cortex-M3-ra. Nem hiszem, hogy nagy különbség lenne benne. Ez talán segíthet.
A hozzászólás módosítva: Feb 1, 2015
(#) Suncorgo válasza Suncorgo hozzászólására (») Feb 1, 2015 /
 
Most tényleg a KEIL szimulátora szivatott meg. Valódi hardveren oszcilloszkóppal mérve hibátlanul működik...
(#) cpt.zoltan.simon válasza Suncorgo hozzászólására (») Feb 1, 2015 /
 
Szimulátort el kell felejteni. Max matematikai dolgokhoz kell használni.
(#) Suncorgo válasza cpt.zoltan.simon hozzászólására (») Feb 1, 2015 /
 
Nem hittem volna. Erre ment szinte a délutánom nah de most megtanultam a leckét.
(#) Suncorgo hozzászólása Feb 1, 2015 /
 
DMA-val tudom írni a portok kimeneti regiszterét?

pl:
  1. DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t) &GPIOB->ODR;


Azért kérdezem mert adatlapban nem leltem hogy melyik DMA melyik csatornájával lehetséges ez.
(#) jefflynn válasza Atielektro hozzászólására (») Feb 1, 2015 /
 
Köszönöm, ez segítség lehet. Holnap kipróbálom.
(#) jefflynn válasza SBahadurD hozzászólására (») Feb 1, 2015 /
 
Sok dolog hiányzik az M0-ból ami az M3-4-ben megvan, de azért köszönöm, holnap átnézem.
(#) cpt.zoltan.simon válasza Suncorgo hozzászólására (») Feb 2, 2015 /
 
Memory->Memory copy-val írhatod, ha a destination register az éppen a port-nak a regisztere.
(#) Suncorgo hozzászólása Feb 2, 2015 /
 
Lényegében azért kezdtem el foglalkozni a nagyobb mikrovezérlőkkel (amelyek még kézzel is forraszthatók) hogy egy ún. videó kártyát építsek amellyel használhatóvá válnak a VGA monitorok és egy AD725-el konvertálva kompozit jelre az ilyen olcsó kínából rendelhető aranyos autós kijelzők is.

Elértem az STM32F103C8 határait. Az SRAM is csordultig van. Színes VGA jelet generáltam 640x480 szinkronjelekkel 160x120-as felbontásban 8 színnel. Elég jól sikerült. Nálam is vannak zavarok a képben mikor a CPU dolgozik. Valahogy csúszik a DMA időzítése, gondolom a belső buszmátrix hozzáférés miatt. Nagyobb procira lesz szükségem, legalább 320x240 felbontással. Ehhez ugye magasabb órajel is kell hogy a DMA is gyorsabban tudja kifelé tolni az SRAM-ból a képet a portra.

szóval 160x120=19200kb és a mikrovezérlőnek 20480kb memóriája vagyon. Ehhez még hozzájön egy pár működéshez elengedhetetlen változó és 20300kb-nál áll meg a fordítás után

Leírás:
TIM2 - V szinkron az 1. csatornáján
TIM3 - szinkronizálva a TIM2-höz, H szinkron az 1. csatonáján

minden V szinkron után DMA indítás és ha kész a DMA átvitel akkor a következő memóriacím beállítása.

Használat:
A VGA_beallitasa függvény meghívása után már csak a pixeleket kell beállítani a kep_memoria tömbbe. Ez egyszerűen a makrókkal lehet megtenni:

  1. #define SZIN_FEKETE     0
  2. #define SZIN_PIROS      2
  3. #define SZIN_ZOLD       4
  4. #define SZIN_SARGA      6
  5. #define SZIN_KEK        8
  6. #define SZIN_ROZSASZIN  10
  7. #define SZIN_CYAN       12
  8. #define SZIN_FEHER      14


Lábak:
VSYNC - A0
HSYNC - A6
R - A3
G - A2
B - A1

Feltöltöm a kódot ha valakit érdekel a project tanulmányozza

Üdv: Suncorgo
A hozzászólás módosítva: Feb 2, 2015

VGA.ZIP
    
(#) Suncorgo hozzászólása Feb 2, 2015 /
 
Keresgéltem de még nem találtam, létezik olyan STM32 mikrovezérlő amelynek 3 SPI portja van? Ezt használnám a 3 színhez -> példa SPI-vel de ez ugye csak egy színű. Még ekkor sem vagyok biztos benne hogy szinkronizálni tudom majd a 3 spi-t hogy a pixel színek ne csússzanak el.

Vagy gondoltam még párhuzamos be, soros kimenetű shift regiszterekre. Ezeknél meg minden 8-adik pixel után csúszna egy kicsit a kép szerintem míg feltöltöm őket (pl 74HC165). Esetleg 6db shift regiszter és míg az egyik 3 tolja az adatot addig a másik 3-at a következő pixelekkel feltölteni. Pixelfrekvenciát egy további timer kimenettel előállítani.

Ha már extra hardver akkor mindegy egy ha 2 db SRAM-ot kötök a mikrovezérlőre...

Lehet ezt még fokozni. Szerintetek melyik a járhatóbb út?
A hozzászólás módosítva: Feb 2, 2015
(#) icserny válasza Suncorgo hozzászólására (») Feb 2, 2015 /
 
Nem volna egyszerűbb egy PSOC 5LP mikrovezérlőt használni, s akkor olyan hardvert tervezhetsz a kimenetre a programozható logikai modulokból, ami az igényeidnek erőlködés nélkül megfelel?
(#) Suncorgo válasza icserny hozzászólására (») Feb 2, 2015 /
 
Erről az PSOC5LP mikrovezérlőről még nem hallottam...
A hozzászólás módosítva: Feb 2, 2015
(#) Suncorgo válasza icserny hozzászólására (») Feb 3, 2015 /
 
Nézegettem ennek a CY8C58LP kontrollernek az adatlapját. Hát nem dobtam hátast a 64kb ram 256kb flash memóriától. Van ebben memóriakezelő periféria amelyre még külső sramot lehet illeszteni? Lényegében csak az ramot keveslem. 256kb flash már sokmindenhez több mint elég.
(#) Suncorgo válasza Suncorgo hozzászólására (») Feb 3, 2015 /
 
Látom hogy hülyeséget kérdeztem: EMIF
(#) gtk válasza Suncorgo hozzászólására (») Feb 3, 2015 /
 
STM32F407, 427, 429-nek nem 3 SPI portja van ?
Ha mar CMOS eszkozoket akarsz hasznalni, akkor szerintem inkabb egy coolrunner CPLD-t hasznalj. Arban nem veszes. Kapunkent is osszerakhatod a logikai aramkort (benne), nem muszaj VHDL egy ilyen apro dologhoz.
A hozzászólás módosítva: Feb 3, 2015
(#) gtk válasza gtk hozzászólására (») Feb 3, 2015 /
 
427-ben 6 db SPI van A 429-ben mar van LCD/TFT vezerlo is.
A hozzászólás módosítva: Feb 3, 2015
(#) cpt.zoltan.simon válasza gtk hozzászólására (») Feb 3, 2015 /
 
A kérdés csak az, hogy egyéb más perifériák mellett, ki tudja -e ""vezetni" mind a 3-at, 6-ot.
Másik oldala a dolognak, hogy ha a Chip-Select-et megoldja szoftverből, akkor igazából egy buszra felfűzheti az összes eszközt akár.
(#) Suncorgo válasza cpt.zoltan.simon hozzászólására (») Feb 4, 2015 /
 
Nem eszközökhöz kell az SPI hanem kitolni a pixeleket
(#) Suncorgo hozzászólása Feb 5, 2015 /
 
Létezik még másfajta ilyen kevert mikrokontroller es cpld egy tokban mint a PSoC?
(#) Suncorgo hozzászólása Feb 5, 2015 /
 
Hát akárhogy nézegetem az árakat a psoc jó jó de nekem ennyit nem ér. A kit 30 rugó, a programozó nem leválasztható külső áramkör programozására. A miniprog3 megint 30 rugó.

Ha nem akarok egy marék ttl ict használni akkor cpld.

Valahogy úgy gondoltam a projectet hogy fogok 2db 512k/8bit sram memóriát.

VGA 640x480-hoz + a nem látható helyek amelyekbe a szinkron jelek is beleférnek 800x525 = 420000 byte = 410,15625 Kbyte. Ezeket feltölteni a H-V szinkronjelekkel akkor az adatvonal minusz 1-1 láb. Marad 6bit a színeknek. Ez 64 szín. Kell egy számláló amelyet resetelnem kell ha eléri a 420000-et, ehhez egy 13 bemenetű AND kapu. A számlálót meghajtani a pixelfrekvenciával. Amíg az egyik SRAM tolja a képet addig a másikat lehet módosítani és ha kész az új kép akkor átkapcsolni.
(#) benjami válasza Suncorgo hozzászólására (») Feb 5, 2015 /
 
Lehet hogy jobban járnál egy Raspberry vagy hasonló cuccal. A psoc-nál olcsóbban megúszod, készen van, ráadásul jóval nagyobb a teljesítménye is (igaz a Rasp pont VGA-t nem tud, csak kompozitot meg HDMI-t). Elvileg lehet oprendszer nélkül is használni, bár nem állítom, hogy egyszerű dolgod lesz vele.
(#) Suncorgo válasza benjami hozzászólására (») Feb 5, 2015 /
 
Olyan megoldást szeretnék amelyet itthon házi körülmények között meg lehet èpíteni és nem akarom bogy nagyobb legyen a vga nyák egy cigisdoboznál. Ezért is keresek olyan smd eszközöket amelyek so, tqfp, maximum lqfp tokban vannak. Forraszthatóak házilag.

A cél még mindig a színes kompozit videó jel. Ha sima monokróm pal jel elég lenne már megcsináltam volna STM kontrollerrel. Még egy pár dolognak utánna járok és meglátom hogy döntök, melyik utat választom majd.
Következő: »»   56 / 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