Hallo allemaal,

Ik gebruik de jdm progger met IC prog. Dat werkt prima en heb er tal van pic mee gebrand. Nu heb ik echter deze hex file gedownload: http://www.xs4all.nl/~goutum/SPEED400.HEX

Als ik die naar een 12c509a wil branden krijg ik deze foutmelding:
http://www.xs4all.nl/~goutum/picfout.jpg

Als ik yes of no antwoord geeft die de 00000h error.

Weten jullie wat dit kan zijn?

groet,
Alex

Heb je in je progje wel de frequentie van de oscilator staan, doe ik in C wel. Of het type oscilator. Tis maar een tip.

Ik heb de .hex file gedownload. Daar stond bij dat ik hem op intRC moest zetten. Heb wel de .asm en .inc files er bij. Kan ik daar iets in opzoeken? Kun je me verder op weg helpen? Ben zelf geen programmeur jammer genoeg.

intRC betekent dat er een interne oscilatiekring in de PIC zit, ondersteund die PIC die jij gebruikt dat wel? Anders moet je je schakeling aanpassen met een kristal of een rc-oscilatiekringetje, of gewoon dezelfde pic gebruiken als die lui waar je je hexfile vandaan hebt.

Zij gebruiken ook een 12c509A dat is nou juist het vage.
Kan het ook zijn dat er een "fuse" of een andere instelling verkeerd staat?

Anders moet je de asmfile ff compilen en dat in je pic laden.

Alex, voor het kalibreren van de oscillator bestaat het OSCCAL registor (05H). Helemaal boven in het geheugen staat fabrieksmatig een getal geprogrammeerd dat gebruikt wordt voor die kalibratie. Die bits zijn vermoedelijk niet meer beschikbaar door b.v. een 'Erase' actie door de gebruiker. Zie voor nadere uitleg paragraaf 8.2.5 van de datasheet.(blz. 38)

Let op, de 509 is maar 1 maal te proggen.

Carel,kan ik die bits weer zetten, of wordt het een nieuwe PIC proberen? Zal eerst eens even de datasheet er bij pakken.

Carel, zou jij voor mij de .asm file willen controlen?
Of de settings daar wel goed in staan en dan opnieuw compilen. Dat gaat mij boven de pet namelijk ;-)

waar heb je die files vandaan? Is wel handig voor controleren door Carel denk ik, en ik wil er voor mijzelf ook nog een kijkje in nemen...

Stuur me de ASM-file maar even Alex. Ik beloof je niets want ik ben ook nog maar een beginner.
Zoals Bastiaan al opmerkte is de 12C509A een 'One-Time-Prgrammable' (OTP) microcontroller. Die kan je dus maar één keer programmeren. Werkt de schakeling dan niet naar behoren, dan moet je een nieuwe kopen. Mijn eerste (en tot nu toe enige) project met een microcontroller was van oorsprong ook gemaakt voor de 12C508/509(A). Ik heb echter een 12F629 gekozen. Moderner, ook 8-pens, zelfde prijsklasse maar,... met flash memory dus opnieuw te programmeren als het niet goed werkt.
Of het gebruik van 'Erase All' in IC-Prog (wat in feite de PIC leeg maakt) ook al tot een programmeer actie gerekend mag worden weet ik niet. Dat zou betekenen dat door het 'erasen' de PIC al onbruikbaar geworden zou zijn. Heb je dat gedaan Alex? Ik weet niet hoe tijdkritisch de software is die je wil toepassen. Het gaat om kalibratie ofwel fijnafstemming, niet om grofstoffelijke verandering van de 4MHz interne oscillator. Misschien is ongekalibreerd al goed genoeg.

Hallo Carel en Setsunakaede,

Hier staat alles:
http://www.xs4all.nl/~goutum/ESC/

Hier staat de uitleg op de originele site:
http://home.hiwaay.net/%7Emjn/software.htm

Welke fuses moet ik hierbij aan zetten?
Bovenstaande site beschijft dit voor MPlab, maar ik gebruik ICProg.

Alvast bedankt jongens!

groet,
Alex

Mplab is voor het compilen van asm files in de asm files kan je ook al fuses zetten met ic prog kan je dit later nog veranderen

Alex, ik moet zo weg maar heb even snel gekeken.
De ASm-file die jij geplaatst hebt zit vol onzintekens in de comments (verklarende tekst) Ik heb het origineel opgehaald.
Op regel 15 en 17 staat info die door de punt-komma aan het begin van de regel niet meedoet voor MPASM. Dit is wel belangrijk tenzij je die info bij het runnen van MPASM opgeeft. In de ASM-file laten staan is beter. Ik heb dat gedaan door dit even toe te voegen: LIST P=12c509,R=D
Op regel 25 staat het zogenaamde configuratiewoord waarin de fuse beschreven staan. Niets doen met IC-Prog dat gaat vanzelf goed. Op regel 21 t/m 24 staat welke fuses staan ingesteld en hoe.
Ik heb even snel met MPASM opnieuw een HEX-file gemaakt en die vergeleken met het origineel. Mijn eerste regel is anders én aan het eind zo'n regel of 10 die niet corresponderen met elkaar. Ik heb nu geen tijd om dat verder uit te zoeken. Wellicht vanavond laat of anders morgen.

Wordt vervolgd....

Vervolg.

Alex, beide versies die jij aangeeft zijn niet exact hetzelfde. De ene is gemaakt door een Rus, de andere door ene Michael J. Norton. Ze zijn NIET uitwisselbaar. De russische versie krijg ik geassembleerd en de HEX file (INHX8M formaat) is identiek aan degene die via jouw link te lezen is. De versie van Norton werkte gisterenavond wel, maar hoe ik het nu ook wend of keer, er verschijnt alleen maar: Error[129] C:\TEMP\SPEED400.ASM 2 : Expected (END)
Ik snap daar helemaal niets van. Ik heb de bestanden zelfs een paar keer opnieuw opgehaald, maar het resultaat is hetzelfde. De regels voor PROCESSOR en RADIX doen weer mee (punt-komma weggehaald) en MPASM gestart. Kan iemand anders mij uitleggen wat de oorzaak van deze foutmelding in dit bestand is?

Elk asm-code-bestand moet eindigen met een END.
De assembler geeft aan dat hij op regel 129 een END verwacht ipv wat er nu wel of niet staat.

Hallo Carel en Bastiaan,

Die versie van de Rus zou een doorverbetering zijn op die van Norton. Die Russische versie stuurt mooi linear de motor open. In die van Norton schijnt een sprong te zitten als de motor bijna op volle toeren loopt. Dus het liefste zou ik die van die Rus goed werkend hebben.

Mijn PICs zijn trouwens op. Ik ga dus ook voor die 12F629 voortaan als die pin compatible is. Mocht je daar iets voor moeten aan passen in de code dan graag.

ps. Ik ben er erg blij mee dat jullie beide zo helpen!

Er staat een END op de laatste regel van de ASM-file. Het getal 129 slaat hier op het error-number Bastiaan (zie MPASM USer Guide pag. 199), daar staat:

129 Expected
Expected a certain type of argument. The expected list will be provided.

en toen...

Bastiaan heb jij nog ideeën om dit probleem op te lossen?