pic16C54 file aanpassen

Beste allen,

ik heb hier een display met 4 digit die aangestuurd worden door een pic16C54 microcontroller. De software van dit pic ic kan ik ook uitlezen en dupliceren. Maar nu zou ik graag de uitlezing aanpassen naar onderstaande foto. Maar ik heb geen idee hoe ik dit moet doen. ik heb foto's van het printje en schema toegevoegd. Misschien kan iemand me opweg helpen?

groet Roel...

Zelf doen is een lastige. Je zult met een disasembler moeten gaan werken en in assmbly de code moeten gaan aanpassen.

Makkelijker is om zelf even een heel stuk nieuwe code te bouwen en de chip te vervangen door een 16F84. De C uitvoering kun je dacht ik niet zelf programmeren. Of was dat degene met het eprom raampje. Dan kan het wel. Zal moet opzoeken wat de C ook weer was.

Als je geen nieuw progje wilt maken zou je CMO even kunnen mailen en vragen om de code voor 13cm. Volgens mij bestaat dat gewoon al.

http://www.hfprints.com/pe1cmo/

Rene cmo heb ik al gecontact. Hij was vroeger een plaatsgenoot. Maar helaas heeft hij deze files niet meer. Ik heb een pic16c54 die werkt met de juiste uitlezing, alleen kan ik deze niet dupliceren. Het uitlezen gaat goed. Het herprogrammeren in een andere 16c54 gaat ook zonder errors, alleen werkt het niet. De 16c54 is trouwens voor 1malig programmeerbaar, heb dus al aardig wat verkloot. Verder heb ikzelf totaal geen ervaring met software schrijven.

Arco

Special Member

Het uitlezen zal wel protected zijn, dan gaat dat niet. (pic geeft voor iedere geheugenlocatie 0x3FF 0f 0x000 terug)
Dus kopieeren gaat dan niet, je zult iets nieuws moeten maken.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Op 10 oktober 2022 08:52:43 schreef Rkpdude:
Verder heb ikzelf totaal geen ervaring met software schrijven.

Dus....

Er is mogelijk(*) een binary van een "verkeerde versie", en dat moet veranderd worden in een andere versie.

Dat doen normale mensen door de broncode aan te passen en de boel opnieuw te compileren. Alleen als het heel erg nodig is zou je met voldoende kennis en ervaring er in kunnen duiken om de boel aan te passen. Je ziet het wel eens bij "chinese klonen" dat ze de firmware duidelijk uitgelezen hebben en daarna een paar wijzigingen in aangebracht hebben. Voor hun dus "bittere noodzaak" (en volgens ons onethisch).

Maar goed. Het is dus VEEL en SPECIALISTISCH werk, wat niet iemand "even" en "voor de lol" doet.

(Ergens rond 1994 hadden wij bij een bedrijf software gekocht met: Is goed als het over een maand geleverd wordt. Toen het er na 2 maanden nog steeds niet was kregen we: "goed, we geven jullie tijdelijk toegang tot de werkstation versie (we hadden de PC versie gekocht) over twee dagen hebben jullie de PC dongle, dus jullie krijgen een licentie voor 3 dagen werkstationversie. Op dag vier had ik dus HELEMAAL niets wat ik kon doen en op die dag zijn helaas 4 bytes van de binary corrupt geraakt door een foutje van de disk. Gek genoeg crashte ie daardoor niet, maar zeurde ook niet meer over verlopen licentie. Gek hoor! "Bittere noodzaak". )

(*) Als het uitlezen inderdaad lukt en niet zoals Arco vermoed alleen "leeg" heeft teruggegeven.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Het binfile wat ik bijgevoegd heb bij de openings post is van het "verkeerde" pic ic, maar wat dus zonder problemen te dupliceren is. Maar wanneer ik dit bekijk in een editor oid dan kan ik er geen herkenning in vinden.

Arco

Special Member

Als je de pic goed uit kunt lezen, moet een nieuwe met hetzelfde programma erin ook werken. (.bin file is wel wat ongebruikelijk voor processoren)
De 16F54 is wat handiger, die kun je opnieuw programmeren...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
bprosman

Golden Member

Op 10 oktober 2022 10:32:07 schreef Arco:
Het uitlezen zal wel protected zijn, dan gaat dat niet. (pic geeft voor iedere geheugenlocatie 0x3FF 0f 0x000 terug)
Dus kopieeren gaat dan niet, je zult iets nieuws moeten maken.

Er lijkt wel data in de .BIN file te staan maar dan nog moet je dat eerst disassembleren.

De jongere generatie loopt veel te vaak zijn PIC achterna.
Arco

Special Member

Een kopie maken kan zonder disassembleren.

Leest die programmer bij uitlezen ook wel het CONFIG word uit? (zonder werkt 't niet)
Zoals gezegd: .bin file is vreemd/onhandig bij een microcontroller. (is normaal een .hex file)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Aha. Hex file heb ik ook wel. Zal het hex file er ook bij uploaden. Kon het onder beide extenties opslaan namelijk.

Sine

Moderator

Met een HEX kun je even weinig, de makkelijkste weg is waarschijnlijk opnieuw schrijven. Aangenomen dat die controller alleen maar display driver is.
Zo niet wordt het een ander verhaal.

Arco, Ik ben het niet met je eens dat "bin files ongebruikelijk zijn voor microcontrollers". Hiero zijn veel "buildscripts" (die ik van elders heb) waar dan aan het eind een ".bin" beschikbaar is. Goed. Ik zelf gebruik hem zelden, maar "men" vind het ding wel belangrijk genoeg om hem te laten produceren.

Maar in dit geval zijn HEX files VEEL handiger! Want daar kan de "config" ook in opgeslagen worden.

@Sine: Als ik het goed begrepen heb, is er een werkende chip met de juiste firmware. En na (via de binfile) de firmware in een andere chip gezet te hebben doet DIE chip het niet.

De observatie van arco dat dan de config waarschijnlijk niet meegenomen is, lijkt me een heel redelijke.

@Rkpdude, lees de "goede versie" chip uit, bewaar hem als hex file en post hem hier. Kijken wij voor je of het zin heeft om die in een chip te schieten.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Sine

Moderator

Zover ik begrijp is het een hex naar display decoder met wat voorgebakken display waardes.

Dus niet meer dan een lookup table en een mux display driver.

Dan is nieuw schrijven al snel veel sneller dan een poging tot reverse engineeren.

Ik ben niet bekend met PIC OTP's, het zou wellicht ook nog kunnen dat je die data niet zomaar kunt dumpen. Het kan ook dog dat er een fuse bitje anders hoort.

Wat jij fuse bitjes noemt, dat is de "atmel" term voor wat in PIC lingo "config" heet. (maar ik heb geen verstand van PICs :-) ).

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Arco

Special Member

Een .bin file is lomp en er zit geen adresinfo en checksum in. Het is een lineair blok wat geheel geprogrammeerd moet worden, ook de bytes die blank blijven.

Bij een hexfile programmeer je alleen de bytes op gespecificeerde plaatsen.
Bij een programma van 10 bytes hoef je dus maar 10 bytes (+config register) te programmeren)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Ik heb het hexfile bij deze post geplaatst. misschien dat dat wat meer mogelijkheden brengt. iemand die handigheid heeft in het software schrijven voor pic ic's, zal het redelijk straight forward zijn. hopelijk leest zo iemand dit.

Arco

Special Member

Daar zit inderdaad het config word in (die hexfile zou je moeten kunnen gebruiken)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

overweeg om de regel 1003f000 begint uit de hexfile te halen (notepad) alvorens hem in de target chip te programmeren. De zone daarvoor is "leeg", dus het programma gebruikt niet alle 512 woorden van het programma geheugen. Maar ineens staat er toch een waarde in de laatste locatie.... Er zijn chips waarbij dat een fabrieks-calibratie waarde is. Een dingetje dat je in een config register kan zetten om te zorgen dat je interne klok nauwkeuriger X MHz is of zoiets.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Even voor alle duidelijkheid. Het Bin en Hex file wat bij dit topic zit, werkt gewoon. Alleen geeft dit file de uitlezing wat in het zwart staat bij de foto in de openings post. En de uitdaging is om de getallen die in het rood staan op de display te krijgen.

Die mc44199 is incorrect , dat is een mc14499
in de text file zit een disassembled geheel.. of het klopt weet ik nog niet,
(ja het klopt)
ik denk dat je sneller een nieuw programma schrijft voor een "16f628a" ofzo.. is iets minder obsolete en goedkoper

Na onderzoek kom ik hier op terug , de file aanpassen is nu sneller dan een nieuw programma schrijven...

edit: nadat ik de file nog eens bekijk is het aanpassen nu een eitje ..
in het begin zijn 3 index array gegeven. de eerste is denk voor de decimale punt en staat altijd op 0000
dan een array voor getal 12 en 13 (1200MHz & 1300)
en een array voor de tientallen Mhz

de array's zijn 32 groot voor laag en hoog

je kunt nu dus de arrays aanpassen aan jouw getallen reeks en terug schrijven. de eerste array is gewoon 0000 omdat er geen decimale punt wordt gebruikt. dan 24x 23 + 8x 24
en in de laatste array de tientallen MHz

Re-integratiecoach uitgerangeerde en degoutante electronen

Arabel,correct in het schematje staat idd een tikfout bij dat ic. Op de foto kun je idd zien dat het een mc14499 is. Scherp opgevallen. Uit uw bovenstaande post begrijp ik in grote lijnen hoe het geheel opgebouwd is. Is het heel brutaal als ik vraag of u het 23cm hexfile kunt aanpassen naar de nieuwe getallen reeks? Kan dit in een gewoon text editer programma? Verder grote pluim voor uw onderzoek naar dit vraagstuk. Ik voel dat succes dichtbij is. Groet Roel

Arco

Special Member

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Op 11 oktober 2022 12:52:18 schreef Rkpdude:
Arabel,correct in het schamatje staat idd een tikfout bij dat ic. Op de foto kun je idd zien dat het een mc14499 is. Scherp opgevallen. Uit uw bovenstaande post begrijp ik in grote lijnen hoe het geheel opgebouwd is. Is het heel brutaal als ik vraag of u het 23cm hexfile kunt aanpassen naar de nieuwe getallen reeks? Kan dit in een gewoon text editer programma? Verder grote pluim voor uw onderzoek naar dit vraagstuk. Ik voel dat succes dichtbij is. Groet Roel

Alstu

Meep! Meep!

Top, en ik kan nog kiezen ook. Vanavond zal ik het file testen en uiteraard het resultaat hier posten. Mijn dank ik groot heren?.

Succes!!!!!!

mijn dank gaat uit naar allen die de moeite genomen hebben om te reageren in dit bericht.

groet Roel...

ps: beide files geprobeerd, en beide files werken......

[Bericht gewijzigd door Rkpdude op dinsdag 11 oktober 2022 20:09:22 (16%)