Extreme Burner: Porovnání verzí

Z MediaWiki SPŠ a VOŠ Písek
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:Extreme_Burner_01.jpg]]
== 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_06.jpg|400px]]


[[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]]
[[Soubor:Extreme_Burner_10.jpg]]

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

Soubor:Extreme Burner 02.jpg


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

Write ALL

Enjoy !