Stránka 1 z 2
ATMEL 89C2051 změna časování pro kolejiště
Napsal: 25 dub 2021, 20:07
od OMA50
Ahojte.
Prosím Vás kolegové o pomoc.Hned ze začátku říkám,že programování procesorů nerozumím.Elektronice se jinak věnuji 20 let...ale mimo procesory..ale to je jiná věc....nyní k mému problému.
Soused mi včera donesl domu na opravu amatérsky zbastlený časovač pro kolejiště (cca 15let starý) na desce je osazen mikroprocesor 89C2051,krystal,stabilzátor a vstupní/výstupní obvody.
Zkrátím to,deska plní jen časové funkce např. na kolejišti je optozávora mezi kterou projede vláček,pošle puls do ATMELU,procesor odpočítá nějaký interval a následně sepne výstup atd....to ani není důležité, spíš mi jde o jinou věc.
Soused nyní požaduje upravit délku sepnutí výstupů pro semafory cca z 5 sekund na 10 sekund na jednom určitém pinu z procesoru.Jenže....co s tím.Procesor programoval človíček,který již není mezi námi a jediné co mám k dispozici je HEX soubor procesoru.
Proto se vás chci zeptat,mohu s HEX souborem nějak nakládat a převést tento soubor "někam" kde by šel program upravit a pak ho znovu do atmelu nahrát zpět?Programátor mám.děkuji vše za info
Napsal: 25 dub 2021, 20:10
od ZdenekHQ
Prodloužit externě přes MKO. Upravovat to a hledat v původním HEX je docela záhul. I když si to samozřejmě převedeš do JSA (ASM).
Napsal: 25 dub 2021, 20:15
od termit256
Nez to hledat z hexu, bude rychlejsi to cele napsat znovu, pokud to neni nejaky komplikovany program.
Napsal: 25 dub 2021, 20:18
od OMA50
Děkuji za reakce.....njoo ale jak napsat znovu
soudruzi na to tahle fabrička není zařízená
Takže moje představa typu,stáhnout ATMEL STUDIO 7...převést HEX do nějakého souboru co tento program zvládne,upravit soft,převést ho zpět do HEX na šup do atmelu...je špatná představa?
Napsal: 25 dub 2021, 20:18
od Cowley
Vyšel bych z poměru "VÝKON/CENA" a jak máš souseda rád.
1) Je možné zjistit funkce vstupních / výstupních okolních obvodů a potom podle toho naprogramovat nového brouka.
2) Pokud jde jen o prodloužení jednoho plně funkčního výstupu, který dělá 5s a má dělat 10s, lze vložit mezi vlastní PIN brouka a následné obvody jiný "malý" zpožďovač (555, 4093, 40106 apod.). Nebo tento zpožďovač napojit až na úplný výstup z desky, abys nepracoval přímo s vlastním broukem.
3) Vyrobit kopii zařízení s jiným broukem, který se třeba sám naučíš programovat, až zase příště s něčím přijde.
EDIT: Jsem za Plhu, Zdenda vyhrál...
a Termit taky ...
Napsal: 25 dub 2021, 20:28
od voitano
Pokud se budete přece jen vrhat do naprogramování, tak jako nejjednodušší variantu bych stáhnul IDE od Mikroelektroniky BASIC pro 8051 a udělat to v tom
Napsal: 25 dub 2021, 20:30
od termit256
OMA50 píše:...převést HEX do nějakého souboru co tento program zvládne,upravit soft,převést ho zpět do HEX na šup do atmelu...je špatná představa?
No, pokud nezvladas asm jak kdyz bicem mrska, tak na tohle zapomen. Z hex do asm to prevest jde, ale vysledek je opravdu dost neprehledny. Proto jsem psal, ze je rychlejsi to napsat cele znovu, pokud je funkce jen nejake casovani apod.
Napsal: 25 dub 2021, 20:42
od OMA50
Nezvládám asb....v této oblasti jsem jak slon v porcelánu.
a program atmel studio 7 by zvládlo rozbalit asb.soubor a i ho upravit?
Mohu se zeptat,kde je možno převést HEX do ASB ?
Děkuji a omlouvám se za amatérismus,opravdu programování šlo mimo mě.
Napsal: 25 dub 2021, 20:55
od monterjirka
Kdyby šlo prodloužit úplně vše na dvojnásobek, co třeba HW zákrok - dát tam krystal s poloviční frekvencí?
Napsal: 25 dub 2021, 21:09
od ZdenekHQ
OMA50 píše:...převést HEX do nějakého souboru co tento program zvládne,upravit soft,převést ho zpět do HEX na šup do atmelu...je špatná představa?
Je to velmi naivní představa. Nedostaneš původní zdroják, ale jen hromadu instrukcí a noname čísel/adres. Jednou jsem to musel dělat, předělával jsem jakejsi panel pro volejbalisty na jiný časy, a byl to docela záhul.
Napsal: 26 dub 2021, 02:34
od Celeron
Někdy to zase není tak strašný. Před časem jsem pro kámoše vyráběl časovej stmívač pro ptactvo z koupený stavebnice. Byl k tomu k dispozici taky jen hex. Hodiny se v tom dost předcházely, komunikace s autorem trochu vázla a tak jsem do Xeltec programátoru natáhl hex a editorem jsem ručně našel sekvenci instrukcí: (za středníkama je rozbor co tím chtěl autor říci)
MOV TH1,#(HIGH(15555)) ;TMOD.7(C/T\)=0 CASOVAC
MOV TL1,#(LOW(15555)) ;TMOD.6,TMOD.5 (M1=0,M0=1) 16-TI BIT
MOV TMOD,#00010101B
MOV COUNT,#20 ;20 * 50MS(INT T1) = 1 SEK
No a metodou pokus omyl jsem našel hodnoty na podstatně přesnější chod hodin.
Třeba by v tvým případě stačilo hodnotu pro COUNT zvýšit na dvojnásobek. Tedy pokud je časování dělaný od přerušení a né nějakejma smyčkama v programu. Hex přímo editovat nemůžeš, jsou tam kontrolní součty.
Napsal: 26 dub 2021, 09:12
od pocitujlasku
20 rokov, programoval to pravdepodobne uz niekto starsi - takze to bude klasika cez smycky. Ale aj tam by sa dala najst a upravit hodnota.
Ale ako pisali, rychlejsie by to bolo zakreslit vstupy/vystupy a niekto sikovny ma program za jedno popoludnie.
Napsal: 26 dub 2021, 09:20
od ZdenekHQ
@Celeron: Já tam musel ještě kus kódu dopsat.
Napsal: 27 dub 2021, 15:11
od OMA50
Celeron píše:Někdy to zase není tak strašný. Před časem jsem pro kámoše vyráběl časovej stmívač pro ptactvo z koupený stavebnice. Byl k tomu k dispozici taky jen hex. Hodiny se v tom dost předcházely, komunikace s autorem trochu vázla a tak jsem do Xeltec programátoru natáhl hex a editorem jsem ručně našel sekvenci instrukcí: (za středníkama je rozbor co tím chtěl autor říci)
MOV TH1,#(HIGH(15555)) ;TMOD.7(C/T\)=0 CASOVAC
MOV TL1,#(LOW(15555)) ;TMOD.6,TMOD.5 (M1=0,M0=1) 16-TI BIT
MOV TMOD,#00010101B
MOV COUNT,#20 ;20 * 50MS(INT T1) = 1 SEK
No a metodou pokus omyl jsem našel hodnoty na podstatně přesnější chod hodin.

Třeba by v tvým případě stačilo hodnotu pro COUNT zvýšit na dvojnásobek. Tedy pokud je časování dělaný od přerušení a né nějakejma smyčkama v programu. Hex přímo editovat nemůžeš, jsou tam kontrolní součty.
Přesně něco podobnýho jsem myslel...jenže jak ten soubor BIN. převedu na "něco" kde to takhle uvidím rozepsané...jde to vůbec?
Napsal: 27 dub 2021, 15:35
od termit256
Muzes zkusit tohle
https://ghidra-sre.org/
Jak moc pouzitelny bude vysledek ale netusim.