Hallo Allemaal,
Ik ben de laatste tijd bezig met het programmeren van een PIC 16F877. Ik gebruik hiervoor een wisp628 met de software xwisp2. Hierover heb ik 2 vragen.
Wanneer ik de fuses van mijn PIC uitlees krijg ik de waarde 3FFF (na het inschieten van de HEX file). Dit is volgens mij de default configuration word en dat is net niet de bedoeling.
1. Graag zou ik willen weten hoe ik de fuses in xwisp2 kan aanpasses. Met andere woorden; Hoe gaan de command line(s) er dan uitzien in Xwisp2? (ik beschik niet over de middelen om deze fuses te programmeren in de source).
2. In de datasheet van de 16F877 staat beschreven hoe een configuratie word eruit ziet. Mij viel op dat deze uit slechts 14 bits bestond (0 t/m 13), terwijl het configuratie word uit 16 bits bestaat. Mijn 2e vraag luidt dan ook hoe ik de ongespecificeerde ruimte moet opvullen van het configurtion word.
Verder zou ik graag willen weten of iemand kan bevestigen of FD31 het juiste configuratie word is voor de onderstaande fuses instellingen.
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_ENABLE_OFF & _LVP_OFF & _DEBUG_OFF & _CPD_OFF
Ik hoop dat iemand mij kan helpen met het oplossen van deze vragen.
[Bericht gewijzigd door Tmeister op ]
Op 24 april 2007 20:58:56 schreef Tmeister:
[...]
1. Graag zou ik willen weten hoe ik de fuses in xwisp2 kan aanpasses. Met andere woorden; Hoe gaan de command line(s) er dan uitzien in Xwisp2? (ik beschik niet over de middelen om deze fuses te programmeren in de source).
Huh... Wat wil je doen? Zomaar de code van een andere PIC in een PIC knallen met andere fuses erbij gaat niet.
2. In de datasheet van de 16F877 staat beschreven hoe een configuratie word eruit ziet. Mij viel op dat deze uit slechts 14 bits bestond (0 t/m 13), terwijl het configuratie word uit 16 bits bestaat. Mijn 2e vraag luidt dan ook hoe ik de ongespecificeerde ruimte moet opvullen van het configurtion word.
Altijd nullen.
Nee, de code heb ik niet zelf geschreven, gedownload van internet. Deze code is echt bestemd voor een 16F877. Ik merkte op dat de fuses nog steed op default stonden nadat ik de hex file erin heb geschoten. Dus mijn vraag was of ik deze fuses los kon programmeren buiten de rest van de source.
Die horen in de HEX te staan.
http://www.circuitsonline.net/forum/view/47510
Of ze zitten er niet in, niet handig
, zie de manual:
Microchip recommmends in almost every datasheet that the hex file should contain the configuration word(s). Unfortunately not all users, compilers and assemblers follow the rules. Omitting configuration settings from the hex file may cause trouble with programming PICmicros because the defaults may not be as you think they are: datasheet specifications may differ from reality, revisions may have different defaults, etc.
Programming devices and supporting software like Xwisp2 have there own vision about defaults for non-specified configuration words! Xwisp2 uses as default the value of the FuseFixedZero parameter in xwisp_14.cfg or xwisp2_16.cfg.
Never trust defaults, and make sure your hex files always contain the complete configuration settings! Obeying this recommendation may save you quite some valuable time for the analysis of unexpected behaviour of your target caused by wrong assumptions about defaults.
Die manual had ik al gelezen. Maar ik begrijp nog steeds niet hoe mijn command line er dan gaat uitzien, met betrekking op het aanpassen van de fuses.
Als ik gebruik maak van MPLAB en wisp dan exporteer ik altijd mijn hex vanuit MPLAB.
Als je gewoon build en de standaard hex gebruikt zit de fuses configuratie daar niet in. Daarom moet je exporteren, de hex wordt dan ook veel groter en bevat alle informatie.
Op 25 april 2007 09:17:38 schreef Tmeister:
Die manual had ik al gelezen. Maar ik begrijp nog steeds niet hoe mijn command line er dan gaat uitzien, met betrekking op het aanpassen van de fuses.
Xwisp2 uses as default the value of the FuseFixedZero parameter in xwisp_14.cfg or xwisp2_16.cfg.
Eigen config met de juiste FuseFixedZero parameter maken en die tijdelijk gebruiken, oude config goed bewaren want die heb je later eventueel weer nodig als het fout gaat.
Lapmiddel maar werkt.
EdwinNadorp
Koop hier uw kristallen bol - in 2008 ga ik m'n projecten afmaken, echt waar ....... nouja in 2009 dan ..... ehh 2010 ....
Is de hex niet voor een bootloader zodat de fuses toch niet gezet zullen worden en ze er dus niet in hoeven te zitten?
Jawel hoor!
Hier staat de beschrijving:
http://tomscarff.tripod.com/midi_24op/midi_to_24_outputs.htm
En hier de source en hex file:
http://tomscarff.tripod.com/downloads/downloads.htm
EdwinNadorp
Koop hier uw kristallen bol - in 2008 ga ik m'n projecten afmaken, echt waar ....... nouja in 2009 dan ..... ehh 2010 ....
Punt 2
A pre-programmed 16F877 PIC,
waarempel, de bootloader.
Het is een programmode om de noten te leren, niet om een nieuwe hex in te lezen .....
[Bericht gewijzigd door EdwinNadorp op ]
ASM zit er bij, compilen in MPLAB met fuses, werd al eerder gezegd:
Op 25 april 2007 09:21:41 schreef SMD lover:
Als ik gebruik maak van MPLAB en wisp dan exporteer ik altijd mijn hex vanuit MPLAB.Als je gewoon build en de standaard hex gebruikt zit de fuses configuratie daar niet in. Daarom moet je exporteren, de hex wordt dan ook veel groter en bevat alle informatie.
[Bericht gewijzigd door Henry S. op ]
Daar ben ik weer,
Ik heb mijn hex geexporteerd vanuit MPLAB, alleen weet ik dat ik mijn conguration word niet juist heb ingesteld. Wanneer ik namelijk de HEX er in probeer te schieten met Xwisp2 krijg ik de melding: "WBus command failure Write verify operation failed after 11.59 secondes, RC21!". Ik ontdekte grote verschillen tussen de in te stellen configuration word en de aan mij geleverde configuraion word.
IN MPLAB:
Voor adres 2007:
Oscillator,
Watchdog Timer,
Power Up Timer,
Master Clear Enable,
Code Protect,
Data EE Read Protect,
Brown Out Detect,
Internal External Switch Over Mode,
Monitor Clock Fail-Safe,
Low Voltage Program,
Voor adres 2008:
Self Write enable,
Brown Out Reset Sel Bit,
Het configuration word die heb gekregen is:
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_ENABLE_OFF & _LVP_OFF & _DEBUG_OFF & _CPD_OFF
De vraag is nu welke configuratie bits met elkaar corresponderen. Bij Brown Out Detect kan ik kiezen uit 4 verschillende mogelijkheden T.O.V. mijn configuration word (On & OFF). Wie weet wat er bij mij fout gaat en hoe ik dat kan oplossen? Ik hoor het graag!