Fuse bitek beágyazása a forrásba
Fuse bitek beágyazása a forrásba
ÜdVWözletem Urak!
Csinálom a mindenféle áramméréses, frekvencia-feszültség konverteres, időzítős és miegyéb dolgokat, de egyvalamire nem tudok rájönni.
Amikor a kezdet kezdetén hajdanán STK200-al progoltam a mikroprofesszort, a baszkom beépítet programozóját használtam. És az tudott olyantot is, hogy integrálta az általam megbizgerált fjúzbiteket a forráskódom elejére.
Arra a meglátásra jutottam (tök egyedül), hogy valószínűleg, azután már nem kellett beállítani a többi procinál pl a bódlevel szintet, meg hogy milyen órajelforrás kell, meg semmit, hanem csak feltöltöm a kódot, és a biztibitek is beállnak.
Vagy tévednék?
Ha nem, akkor viszont miíly módon tehetem meg, hogy a biztibitek beállítását el tuggyam végezni a forráskódban?
Előre istenítem azt aki válaszol az újabb hülye kérdésemre!
Csinálom a mindenféle áramméréses, frekvencia-feszültség konverteres, időzítős és miegyéb dolgokat, de egyvalamire nem tudok rájönni.
Amikor a kezdet kezdetén hajdanán STK200-al progoltam a mikroprofesszort, a baszkom beépítet programozóját használtam. És az tudott olyantot is, hogy integrálta az általam megbizgerált fjúzbiteket a forráskódom elejére.
Arra a meglátásra jutottam (tök egyedül), hogy valószínűleg, azután már nem kellett beállítani a többi procinál pl a bódlevel szintet, meg hogy milyen órajelforrás kell, meg semmit, hanem csak feltöltöm a kódot, és a biztibitek is beállnak.
Vagy tévednék?
Ha nem, akkor viszont miíly módon tehetem meg, hogy a biztibitek beállítását el tuggyam végezni a forráskódban?
Előre istenítem azt aki válaszol az újabb hülye kérdésemre!
Re: Fuse bitek beágyazása a forrásba
$PROG direktíva a forráskódban (és a helpben )...ezt vagy manuálisan lököd fejből (LB, FB , FBH , FBX), vagy a fuse bites programozólapon (STK200 vagy natív STK500 (ezeken tudom, hogy biztosan van)) az első alkalommal manuálisan beállított fuse bit állapotokat a "Write PRG" gombbal beírja a kódba - ahol a kurzor éppen áll.HPMaster írta:...akkor viszont miíly módon tehetem meg, hogy a biztibitek beállítását el tuggyam végezni a forráskódban?
Asszem kezdek megvilágosodni.
Ezexerint, ha a lokbiteket úgy állítom, be, hogy
LB - No memory lock features enabled
BLB0 - LPM and SPM prohibited in Application Section
BLB1 - No lock on SPM and LPM in Boot Section
és a fjúzbiteknél a következők vannak engedélyezve:
SPIEN
EESAVE
BOOTSZ - 1024, $0C00
CKOPT
BODLEVEL - 2,7V
BODEN
SUT_CKSEL16K CK + 64ms
akkor $PROG &h33, &hBF, &hC1, FBX=?
Nekem az AVR STÚDIÓ ezeket írja a beállítások alatt.
LOCKBIT = 0x33
Fuses HIGH = 0xC1 (gonfolom a $PROGban ez az FB)
Fuses LOW = 0xBF (ez meg az FBH)
De mi az FBX?
Ezexerint, ha a lokbiteket úgy állítom, be, hogy
LB - No memory lock features enabled
BLB0 - LPM and SPM prohibited in Application Section
BLB1 - No lock on SPM and LPM in Boot Section
és a fjúzbiteknél a következők vannak engedélyezve:
SPIEN
EESAVE
BOOTSZ - 1024, $0C00
CKOPT
BODLEVEL - 2,7V
BODEN
SUT_CKSEL16K CK + 64ms
akkor $PROG &h33, &hBF, &hC1, FBX=?
Nekem az AVR STÚDIÓ ezeket írja a beállítások alatt.
LOCKBIT = 0x33
Fuses HIGH = 0xC1 (gonfolom a $PROGban ez az FB)
Fuses LOW = 0xBF (ez meg az FBH)
De mi az FBX?
Jakérem... aztatat nem tudom Bascom-hoz értek egy keveset - de aztán kész is.HPMaster írta:...akkor $PROG &h33, &hBF, &hC1, FBX=?
Nekem az AVR STÚDIÓ ezeket írja a beállítások alatt.
Gondolom nagyobb prociknál van több fuse bit rész is - pl lásd egy tiny13 és egy mega128 fuse bit készletét. Tehát opcionális - szerintem (de a hozzáértőbbek majd kijavítanak).HPMaster írta:De mi az FBX?
Biztosítékbitek kiszámítása:
http://www.engbedded.com/fusecalc/
$PROG LB, FB , FBH , FBX
$Prog esetén ha valamelyiket nem akarod használni:
PROG &H20 ,,,
Csak a LockBitet állítja. Többi marad.
$PROG ,,&H30,
Csak az FBH állítódik.
LB - LockBit (lezárása a chipnek)
FB - Standard biztosítékbitek
FBH - High (bővített) biztosítékbitek
FBX - Bővített (extra) biztosítékbitek
Az automata programozáshoz kell. STK500, STK200 esetén van ilyen....
http://www.engbedded.com/fusecalc/
$PROG LB, FB , FBH , FBX
$Prog esetén ha valamelyiket nem akarod használni:
PROG &H20 ,,,
Csak a LockBitet állítja. Többi marad.
$PROG ,,&H30,
Csak az FBH állítódik.
LB - LockBit (lezárása a chipnek)
FB - Standard biztosítékbitek
FBH - High (bővített) biztosítékbitek
FBX - Bővített (extra) biztosítékbitek
Az automata programozáshoz kell. STK500, STK200 esetén van ilyen....
Hú ez a téma jól esett, pont ezt akartam kérdezni. Kellene néhány AVR-t feltöltenem, és ez sok problémám megoldja. Ha lenne még olyan STK ami több AVR-t kezel egyszerre az lenne ám a kánaán. Gondolom van is csak még nem néztem unána.
Köszi
Ui.
Róbert tanácsára nem igen álligatom ezeket a biteket Bascom-al csak AVR studioval.
Na de most akkor ez a AVR Studioval beállított Bascommal beolvasott és "Write PRG" generált
Pld. "$prog &HFF , &H64 , &H9F , &H00 "
sor már teljes értékű?
Csak az F4-et kel nyomogatnom, és hányni halomba a soklábúakat?
Köszi
Ui.
Róbert tanácsára nem igen álligatom ezeket a biteket Bascom-al csak AVR studioval.
Na de most akkor ez a AVR Studioval beállított Bascommal beolvasott és "Write PRG" generált
Pld. "$prog &HFF , &H64 , &H9F , &H00 "
sor már teljes értékű?
Csak az F4-et kel nyomogatnom, és hányni halomba a soklábúakat?
Ha a Chip LOCon van, akkor nem tudsz semmit módosítani. csak ha előtte a Chip Erase parancsot kiadod. ez a Flash, EEPROM ill a Lockbiteket törli.
AVRStudio alatt a ELF létrehozása:
FLASH betallóz
EEPROM betallóz.
Fusebitek beállít (NEM kell a Write FuseBits-re tenyerelni)
Lockbitek beállít (NEM kell a Write FuseBits-re tenyerelni)
Mentés ELF-ként (2. fül, alul lenn).
Utána ELF beolvas, és program.
Ha nem rontottam el a leírást, akkor Örül
AVRStudio alatt a ELF létrehozása:
FLASH betallóz
EEPROM betallóz.
Fusebitek beállít (NEM kell a Write FuseBits-re tenyerelni)
Lockbitek beállít (NEM kell a Write FuseBits-re tenyerelni)
Mentés ELF-ként (2. fül, alul lenn).
Utána ELF beolvas, és program.
Ha nem rontottam el a leírást, akkor Örül
Re: Fuse bitek beágyazása a forrásba
Üdv Urak!
Miért nem működik a bascomba begépelt $PROG direktíva?
Az AVR Studio-ban, ha beállítom az LB LOCK BIT-et "PROG_VER_DISABLED"-re, akkor nem tudom visszaolvasni a chip-ből a kódot. Szép. Ezt akartam.
De ha ezt beírom a programom elejére, akkor nem működik.
Mit rontok el?
Ezt írtam be:
$Prog &HFC ,,,
Miért nem működik a bascomba begépelt $PROG direktíva?
Az AVR Studio-ban, ha beállítom az LB LOCK BIT-et "PROG_VER_DISABLED"-re, akkor nem tudom visszaolvasni a chip-ből a kódot. Szép. Ezt akartam.
De ha ezt beírom a programom elejére, akkor nem működik.
Mit rontok el?
Ezt írtam be:
$Prog &HFC ,,,
Re: Fuse bitek beágyazása a forrásba
Mivel programozol? A lockbit nem a HEX-ben van, hanem a programozáskor adja ki. Mintha a $prog az összes fusebit HEX megadását kérné...
Re: Fuse bitek beágyazása a forrásba
ZeptoProg II-m van, amit az AVR Studio "AVRISP mkII"-nek ismer fel.
ATMegy88P procin ezeket a beállításokat szeretném implementálni a kódba (AVR Studio 5 van fent a gépen):
FUSE bits:
LOCK bits:
A programkódom eleje így néz ki:
ATMegy88P procin ezeket a beállításokat szeretném implementálni a kódba (AVR Studio 5 van fent a gépen):
FUSE bits:
Kód: Egész kijelölése
BOOTSZ = 1024W_0C00
BOOTRST = [X]
RSTDISBL = [ ]
DWEN = [ ]
SPIEN = [X]
WDTON = [ ]
EESAVE = [X]
BODLEVEL = 2V7
CKDIV8 = [ ]
CKOUT = [ ]
SUT_CKSEL = INTRCOSC_8MHZ_6CK_14CK_65MS
EXTENDED = 0xF8 (valid)
HIGH = 0xD5 (valid)
LOW = 0xE2 (valid)
Kód: Egész kijelölése
LB = PROG_VER_DISABLED
BLB0 = NO_LOCK
BLB1 = NO_LOCK
LOCKBIT = 0xFC (valid)
Kód: Egész kijelölése
$regfile = "m88def.dat"
$crystal = 8000000
$swstack = 48
$hwstack = 48
$framesize = 64
$prog &HFC , , ,
Re: Fuse bitek beágyazása a forrásba
Nem lehet.
A Bascom saját égetője használja csak, vagy ha a Bascom alól programozol. A lefordított HEX állományba nem kerül be.
A Bascom saját égetője használja csak, vagy ha a Bascom alól programozol. A lefordított HEX állományba nem kerül be.