Fórum témák
» Több friss téma |
Most nezem, ebben nincs F(S)MC alkalmazva. A kerdesem inkabb arra vonatkozik.
A hozzászólás módosítva: Jan 31, 2015
Ennyi funkcióhoz nem is kel!:
Grafikus rutinokat még szerválni kell!
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á.
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.
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
![]()
Talán a "core_cmInstr.h"-ban találsz valami használhatót.
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:
Ezután TIM3-at pedig Slave-nek:
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
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
Most tényleg a KEIL szimulátora szivatott meg. Valódi hardveren oszcilloszkóppal mérve hibátlanul működik...
![]()
Szimulátort el kell felejteni.
![]() ![]()
Nem hittem volna. Erre ment szinte a délutánom
![]()
DMA-val tudom írni a portok kimeneti regiszterét?
pl:
Azért kérdezem mert adatlapban nem leltem hogy melyik DMA melyik csatornájával lehetséges ez.
Köszönöm, ez segítség lehet. Holnap kipróbálom.
Sok dolog hiányzik az M0-ból ami az M3-4-ben megvan, de azért köszönöm, holnap átnézem.
Memory->Memory copy-val írhatod, ha a destination register az éppen a port-nak a regisztere.
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:
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
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
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?
Erről az PSOC5LP mikrovezérlőről még nem hallottam...
A hozzászólás módosítva: Feb 2, 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.
Látom hogy hülyeséget kérdeztem: EMIF
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
427-ben 6 db SPI van
![]() A hozzászólás módosítva: 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.
Nem eszközökhöz kell az SPI hanem kitolni a pixeleket
![]()
Létezik még másfajta ilyen kevert mikrokontroller es cpld egy tokban mint a PSoC?
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.
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.
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. |
Bejelentkezés
Hirdetés |