Extreme Burner: Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
Založena nová stránka: Soubor:Extreme_Burner_01.jpg <source lang="asm"> .NOLIST .INCLUDE "m8def.inc" .LIST ldi R16, HIGH(RAMEND) ;do R16 vlozime vyssi byte posledni adresy RAM ... |
|||
(Není zobrazeno 5 mezilehlých verzí od stejného uživatele.) | |||
Řádek 1: | Řádek 1: | ||
[[Soubor: | == Draw electronic schematic == | ||
[[Soubor:AVR14.png|400px]] | |||
== Create PBS == | |||
[[Soubor:Extreme_Burner_PBS.jpg|400px]] | |||
== Write source code == | |||
<source lang="asm"> | <source lang="asm"> | ||
; http://jan16.czela.net/index.php?id=81&n=1---avr-zaciname---uvod | |||
.NOLIST | .NOLIST | ||
.INCLUDE "m8def.inc" | .INCLUDE "m8def.inc" | ||
Řádek 41: | Řádek 51: | ||
</source> | </source> | ||
== Connect HW == | |||
[[Soubor:Extreme_Burner_02.jpg|400px]] | [[Soubor:Extreme_Burner_02.jpg|400px]] | ||
== Run eXtreme Burner - Select CHIP== | |||
[[Soubor:Extreme_Burner_03.jpg|400px]] | [[Soubor:Extreme_Burner_03.jpg|400px]] | ||
== Open Flash (load HEX file) == | |||
:020000020000FC | :020000020000FC | ||
Řádek 55: | Řádek 71: | ||
[[Soubor:Extreme_Burner_04.jpg|400px]] | [[Soubor:Extreme_Burner_04.jpg|400px]] | ||
[[Soubor:Extreme_Burner_05.jpg|400px]] | === Setings Fuse === | ||
* RSTDISBL – vypne reset signál a využije daný pin jako i/o. '''Pozor''' – MCU se již přes ISP nenaprogramuje! | |||
* WTDON – zapne watchdog | |||
* SPIEN – povolí SPI. '''Pozor''' – MCU se již přes ISP nenaprogramuje! | |||
* EESAVE – pojistka nastavuje zda se má EEPROM paměť po přepsání FLASH smazat a nebo zachovat | |||
* BOOTSZ – určuje místo v FLASH paměti, kde se nachází bootloader | |||
* BOOTRST – zapnutí funkce bootloadera | |||
* CKOPT – při použití externího krystalu se zvýší napětí pro oscilátor (méně náchylný v vf prostředí, vyšší spotřeba) | |||
* BODLEVEL – nastavení spodní hranice napájecího napětí, při které se MCU restartuje | |||
* BODEN – zapnutí funkce restartu MCU při nízkém stavu napájecího napětí | |||
* SUT_CKSEL – nastaveni zdroje hodin pro MCU (interní RC oscilátor, externí krystal ...) | |||
[http://www.engbedded.com/fusecalc Engbedded Atmel AVR® Fuse Calculator] | |||
'''* Příklad: ATmega8 s vnitřním krystalem 1 MHz''' | |||
'''AVRDUDE -U lfuse:w:0xe1:m -U hfuse:w:0xd9:m''' | |||
[[Soubor:Extreme_Burner_05.jpg|400px|link=http://www.engbedded.com/fusecalc]] | |||
[[Soubor:Extreme_Burner_06.jpg|400px|link=http://www.engbedded.com/fusecalc]] | |||
[[Soubor:Extreme_Burner_07.jpg|400px]] | [[Soubor:Extreme_Burner_07.jpg|400px]] | ||
'''* Příklad: ATmega8 s vnitřním krystalem 8 MHz''' | |||
'''AVRDUDE -U lfuse:w:0xe4:m -U hfuse:w:0xd9:m''' | |||
== Write ALL == | |||
[[Soubor:Extreme_Burner_08.jpg|400px]] | [[Soubor:Extreme_Burner_08.jpg|400px]] | ||
== Enjoy ! == | |||
[[Soubor:Extreme_Burner_09.jpg|400px]] | [[Soubor:Extreme_Burner_09.jpg|400px]] | ||
Aktuální verze z 30. 1. 2014, 13:14
Draw electronic schematic
Create PBS
Write source code
; http://jan16.czela.net/index.php?id=81&n=1---avr-zaciname---uvod
.NOLIST
.INCLUDE "m8def.inc"
.LIST
ldi R16, HIGH(RAMEND) ;do R16 vlozime vyssi byte posledni adresy RAM
out SPH, R16 ;nastavime SPH na tuto adresu
ldi R16, LOW(RAMEND) ;do R16 vlozime nizsi byte posledni adresy RAM
out SPL, R16 ;nastavime SPL na tuto adresu
ldi R16, 0b00000001 ;do R16 vlozime 1
out DDRB, R16 ;pin PB0 nastavime jako vystupni
zacatek: rcall zpozdi ;zavolame rutinu zpozi
in R16, PORTB ;precteme stav portu B
ldi R17, 0b00000001 ;do R17 vlozime 1
eor R16, R17 ;znegujeme bit 0 XORem
out PORTB, R16 ;vysledek posleme z5 na port B
rjmp zacatek ;skocime na navesti "zacatek"
;rutina ZPOZDI 500ms, tedy 2000000 cyklu při 4MHz
zpozdi: ldi R16, $12 ;do R16 cislo $12
on1: ldi R17, $BC ;do R17 cislo $BC
on2: ldi R18, $C4 ;do R18 cislo $C4
on3: dec R18 ;sniz R18 o 1
brne on3 ;pokud Z = 1 (zero flag), tedy pokud po prevedeni dec byl vysledek 0, skoc na "on3"
dec R17 ;sniz R17 o 1
brne on2 ;pokud Z = 1, skoc na "on2"
dec R16 ;sniz R16 o 1
brne on1 ;pokud Z = 1, skoc na "on1"
nop ;nedelej jeden cyklus nic
nop ;nedelej dalsi cyklus nic (od zacaku sem je to presne 2000000 cyklu)
ret
Connect HW
Run eXtreme Burner - Select CHIP
Open Flash (load HEX file)
:020000020000FC :1000000004E00EBF0FE50DBF01E007BB05D008B34C :1000100011E0012708BBFACF02E11CEB24EC2A9582 :10002000F1F71A95D9F70A95C1F700000000089575 :00000001FF
Setings Fuse
- RSTDISBL – vypne reset signál a využije daný pin jako i/o. Pozor – MCU se již přes ISP nenaprogramuje!
- WTDON – zapne watchdog
- SPIEN – povolí SPI. Pozor – MCU se již přes ISP nenaprogramuje!
- EESAVE – pojistka nastavuje zda se má EEPROM paměť po přepsání FLASH smazat a nebo zachovat
- BOOTSZ – určuje místo v FLASH paměti, kde se nachází bootloader
- BOOTRST – zapnutí funkce bootloadera
- CKOPT – při použití externího krystalu se zvýší napětí pro oscilátor (méně náchylný v vf prostředí, vyšší spotřeba)
- BODLEVEL – nastavení spodní hranice napájecího napětí, při které se MCU restartuje
- BODEN – zapnutí funkce restartu MCU při nízkém stavu napájecího napětí
- SUT_CKSEL – nastaveni zdroje hodin pro MCU (interní RC oscilátor, externí krystal ...)
Engbedded Atmel AVR® Fuse Calculator
* Příklad: ATmega8 s vnitřním krystalem 1 MHz
AVRDUDE -U lfuse:w:0xe1:m -U hfuse:w:0xd9:m
* Příklad: ATmega8 s vnitřním krystalem 8 MHz
AVRDUDE -U lfuse:w:0xe4:m -U hfuse:w:0xd9:m