Stránka 1 z 1
uC hcs08js16cwj - frekvence vykonavani instrukci
Napsal: 03 srp 2011, 21:58
od frca
Zdravim,
programuji tento mikrokontroler a v datasheetu je napsano, ze rychlost procesoru je 48 mhz a rychlost sbernice 24 mhz. Pak je tam taky u kazde instrukce asembleru, kolik cyklu sebere jeji provedeni. Ale jakych cyklu? Napriklad instrukce nop ma 1 cyklus. Zkousel jsem to a provadela se rychlosti priblizne 8 Mhz. Je to normalni, nebo je sance zvysit rychlost na tech 24 Mhz? Dost by se mi to hodilo. Diky.
Napsal: 07 srp 2011, 17:16
od coat
Zdar. V datasheetu je uvedená maximální možná rychlost, takže to neznamená že sběrnice jede automaticky na 24 MHz. Budeš si muset hodiny nastavit sám. Zřejmě to děláš v Codewarrioru takže nejjednoduší je použít Device initialization a nastavit jádro - CPU. Můžeš použít i interní oscilátor, ten modul Dev. init ti přímo ukazuje jaká bude frekvence sběrnice při zadání parametrů a zobrazí ti warnings pokud je něco zadaný špatně. Pokud to budeš dělat podle datasheetu tak ztratíš hromadu času, určitě doporučuju tohle do začátku.
Napsal: 08 srp 2011, 14:11
od frca
Zkousim to, ale ani za prase se mi nedari nastavit to na tech 24 mhz. Aspon s internim oscilatorem ne. Pripojil jsem ale 12 mhz externi krystal a s tim to jede. Jenze i kdyz v nastavenim mam 12 mhz krystal a 24 mhz bus freq, tak to jede o neco pomaleji nez tech 24 mhz (nevim presne, kolik), a to mi vadi. Zkousel jsem taky 12 mhz bus freq a taky to jelo o neco pomaleji nez tech 12. Netusite, cim by to mohlo byt? Diky.
Edit: Tak nakonec se mi to povedlo nastavit na 27 mhz (i kdyz to oficialne mcu nepodporuje). To uz mi celkem staci

Napsal: 08 srp 2011, 18:20
od coat
A jak vůbec přesně zjišťuješ ten kmitočet na kterým to ve skutečnosti jede? Jinak sem můžeš hodit aj printscreen nastavení.
Napsal: 08 srp 2011, 19:02
od frca
Mam ladicku, ktera hraje 440 Hz. Pak podle predpokladane frekvence generuju ton na piezo a kdyz je nizsi, tak je frekvence procesoru mensi. Je to sice praveka metoda, ale osciloskop nemam a na takove orientacni zjisteni to staci. V priloze je to nastaveni 27 mhz (mozna je to taky o neco nizsi, ale to mi momentalne nevadi).
Napsal: 08 srp 2011, 19:19
od coat
Tak to je pěkný

To nemáš ani multimetr které ti měří kmitočet, že by sis vygeneroval PWM a zjistil to fakt přesně? Jinak to nastavení vypadá v pohodě.
Napsal: 08 srp 2011, 22:57
od frca
Ted mam pocit, ze je neco fakt spatne. Je opravdu docela mozne, ze ten procesor ma frekvenci presnou a ja ten ton generuju spatne. Vychazel jsem totiz z predpokladu, ze instrukce RTS trva 5 cyklu. Jenze v jinem referencnim manualu je napsano, ze trva 6 cyklu. Tak ja ted nevim. Kolik ma teda cyklu?
Jeste odkaz na ty 2 datashity, ktere si protireci:
http://www.freescale.com/files/microcon ... 08RMV1.pdf
http://cache.freescale.com/files/32bit/ ... JS16RM.pdf
Napsal: 09 srp 2011, 08:01
od Andrea
Těch 5 cyklů bude chyba, chybí tam druhý unstack cyklus, JSR má dva stack cykly, tak RTS musí mít dva unstack cykly.
Napsal: 09 srp 2011, 20:43
od frca
Prekopal jsem to s prihlednutim k 6 cyklum instrukce RTS a uz mi moje pokusy s ladickou (a jine) vychazeji pekne.
Napsal: 09 srp 2011, 20:54
od Andrea
A k čemu je to počítání cyklů dobré, když má ten jednočip hw čítač/časovač?
Napsal: 09 srp 2011, 23:30
od frca
A da se to pouzit pro presne generovani signalu? Ja totiz nevim, jak, a proto to resim takto.
Jeste bych mel dotaz k tem instrukcim jsr a rts: Kolik vezme jedno volani jsr bajtu na zasobniku? 2?
Napsal: 10 srp 2011, 09:12
od Andrea
frca píše:A da se to pouzit pro presne generovani signalu?
K čemu jinému by to tam bylo?

frca píše:Jeste bych mel dotaz k tem instrukcim jsr a rts: Kolik vezme jedno volani jsr bajtu na zasobniku? 2?
Ano, ukládá se aktuální hodnota 16bitového PC, takže 2 byty.
Napsal: 13 srp 2011, 23:17
od frca
Tady toto se mi povedlo pomoci MCU vytvorit:
http://www.franticware.com/blog-hcs08-vga
Napsal: 30 srp 2011, 22:21
od frca
Andrea píše:frca píše:A da se to pouzit pro presne generovani signalu?
K čemu jinému by to tam bylo?

A myslis ted pouzitim preruseni? Jak se to potom slicuje presne s tim taktem sbernice, ktery potrebuju? Podle datasheetu se totiz musi nejdriv dokoncit bezici instrukce a az potom se zavola prerusovaci rutina. Jenze ta dokoncujici se instrukce muze mit ruzny pocet cyklu, takze jsem v pasti.