upII w7 8


Technika
Mikroprocesorowa II
Wykład 7-8
Wykład 7-8
JACEK KOAODZIEJ
Katedra Elektroniki
AGH
al. A. Mickiewicza 30 C3/301a C3/407, 30-059 Kraków
jackolo@agh.edu.pl http://ke.agh.edu.pl/~lab301
Katedra Elektroniki
Plan
Po co w uP komparator analogowy ?
Po co w uP komparator analogowy ?
Układy zerowania
Układy zerowania
Programowanie
Programowanie
ISP
ISP
Bootloader
Bootloader
Uruchamianie w systemie
Uruchamianie w systemie
2
Technika Mikroprocesorowa II
Komparator
analogowy
analogowy
3
Technika Mikroprocesorowa II
Komparator analogowy
Porównuje napięcia na wejściach AIN0 i AIN1
Mo\e być wykorzystany do budowy prostego
przetwornika a/c
4
Technika Mikroprocesorowa II
Przetwornik U/t
Do pomiaru U wykorzystuje się pomiar czasu ładowania
(rozładowania) kondensatora  najlepiej stałym prądem
Początek ładowania rozpoczyna proces zliczania,
zakończenie wyznacza osiągniecie napięcia
referencyjnego  elementem sterującym jest komparator
5
Technika Mikroprocesorowa II
Implementacja przetwornika analogowo/cyfrowego
// Testowanie komparatora analogowego: wyzwalanie wejścia przechwytującego timera 1 z wyjścia
komparatora analogowego
#define R_PIN PB4 // końcówka rezystora
# define C_PIN PB1 // końcówka kondensatora i rezystora
#define TICIE1 TICIE // zdefiniuj TICIE1 jako TICIE
volatile uint16_t value; // przechowuje przetworzoną wartość
volatile uint8_t busy; // do sprawdzania zajętości przetwornika
void ADC_start(void) // start przetwarzania
{
busy=1; // wpisz zajętość przetwornika
busy=1; // wpisz zajętość przetwornika
TCCR1B = 0; // licznik 1 zatrzymany
TCNT1 = 0; // wyzeruj timer 1
cbi(DDRB, R_PIN); // odłącz linię rezystora
sbi(DDRB, C_PIN); // ustaw linię kondenstaora (- komparatora) jako wyjście
delay10us(); // i czekaj na rozładowanie kondensatora
cbi(DDRB, C_PIN); // ustaw linię kondenstaora (- komparatora) jako wejście
sbi(DDRB, R_PIN); // podłącz linię rezystora (rozpocznij ładowanie kondensatora)
TCCR1B = _BV(CS10)|_BV(ICNC1); // licznik 1 taktowany F_C
// wraz z filtracją zakłóceń z wejścia przechwytywania
// i przechwytywaniem za pomocą opadającego zbocza
while(busy); // czekaj na przerwanie od przechwytywania lub przepełnienia
}
6
Technika Mikroprocesorowa II
Implementacja przetwornika analogowo/cyfrowego
SIGNAL (SIG_INPUT_CAPTURE1) // przerwanie od przechwytywania licznika 1
{
value=ICR1; // odczytaj wartość z rejestru przechwytującego
busy=0; // mo\na zakończyć przetwarzanie
}
SIGNAL (SIG_OVERFLOW1) // przerwanie od przepełnienia licznika 1
{
value=0; // wpisz wartość 0
busy=0; // mo\na zakończyć przetwarzanie
}
}
int main(void) // program główny
{
sbi(PORTB, R_PIN); // linia "zasilająca" rezystor
ACSR = _BV(ACIC); // wyjście komparatora analogowego połączone
// z wejściem przechytującym licznika 1
TIMSK = _BV(TOIE1)|_BV(TICIE1); // włącz przerwania licznika 1
// od przepełnienia i przechwytywania
sei(); // włącz obsługę przerwań
while(1) // pętla nieskończona
{
ADC_start(); // zainicjuj przetwarzanie
}
7
Technika Mikroprocesorowa II
Układy zerowania
Watchdog
Watchdog
8
Technika Mikroprocesorowa II
yródła
9
Technika Mikroprocesorowa II
Watchdog - "czuwający pies"
układ nadzoru składa się z czasomierza, taktowanego z
wewnętrznego generatora o częstotliwości 1MHz (przy napięciu
zasilania Vcc=5V) niezale\nego od zegara systemowego.
Częstotliwość pracy tego generatora jest silnie zale\na od napięcia
zasilającego mikrokontroler.
Pomiędzy czasomierzem a generatorem znajduje się preskaler,
Pomiędzy czasomierzem a generatorem znajduje się preskaler,
którym mo\na ustalić jak często ma być generowany sygnał
restartujący mikrokontroler.
Aby nie dopuścić do restartowania mikrokontrolera nale\y co
pewien czas zerować czasomierz układu nadzoru.
Biblioteka avr-libc dołączona do kompilatora gcc zawiera funkcje
ułatwiające u\ywanie układu Watchdog - avr/wdt.h.
10
Technika Mikroprocesorowa II
Działanie
11
Technika Mikroprocesorowa II
Reset
12
Technika Mikroprocesorowa II
Reset External
13
Technika Mikroprocesorowa II
Brown-out Detection
14
Technika Mikroprocesorowa II
Wektory
15
Technika Mikroprocesorowa II
yródła RESET u  rozró\nienie
16
Technika Mikroprocesorowa II
Kontrola zródła RESETU
#include
#include
uint8_t mcusr_mirror;
void get_mcusr(void) __attribute__((naked)) __attribute__((section(".init3")));
void get_mcusr(void)
void get_mcusr(void)
{
mcusr_mirror = MCUSR;
MCUSR = 0;
wdt_disable();
}
Saving the value of MCUSR in mcusr_mirror is only needed if the application
later wants to examine the reset source, but clearing in particular the watchdog
reset flag before disabling the watchdog is required, according to the datasheet.
17
Technika Mikroprocesorowa II
Watchdog - programowanie
wdt_enable(timeout)
Załącza układ Watchdog z czasem
zdefiniowanym jako timeout.
Ni\sze napięcie zasilania mikrokontrolera
oznacza wydłu\enie czasu zadziałania
układu Watchdog.
wdt_reset()
kasowanie czasomierza układu Watchdog.
Kiedy układ Watchdog jest aktywny, powy\szą funkcję nale\y
wywoływać odstępach czasu mniejszych od czasu zadziałania
układu Watchdog.
wdt_disable()
wyłączenie układu Watchdog.
18
Technika Mikroprocesorowa II
Zewnętrzne układy zerowania
T=0,7RC
19
Technika Mikroprocesorowa II
Zewnętrzne układy zerowania
The discrete R/C POR (Figure 4a) is not
reliable enough for most applications. In
some cases, adding a diode to the circuit
(Figure 4b) corrects quick-supply-cycling
problems and improves the circuit's
performance.
20
Technika Mikroprocesorowa II
Zewnętrzny watchdog
21
Technika Mikroprocesorowa II
Specjalizowane układy Power on Rest POR
The power-fail comparator within the MAX6342 generates the
power-fail signal (PFO-bar) by monitoring whether the
unregulated DC supply has dropped.
22
Technika Mikroprocesorowa II
Reset Sequencing
23
Technika Mikroprocesorowa II
Voltage Sequencing and Voltage Tracking
Most data sheets of processors powered by two supplies
specify the order in which the supplies should come up.
Parts such as the MAX6819/MAX6820 can sequence the
supplies in the proper order. If the processor's supplies
are not sequenced properly, the processor can latch up,
initiate incorrectly, or endure long-term reliability
degradation.
degradation.
24
Technika Mikroprocesorowa II
Voltage Sequencing and Voltage Tracking
Sterowanie logiką pracy
przetwronic
Bezpośrednie sterowanie
włączaniem napięcia
25
Technika Mikroprocesorowa II
Voltage Sequencing and Voltage Tracking
Sekwencje napięć zasilających przy załączaniu i wyłączaniu
26
Technika Mikroprocesorowa II
Voltage Sequencing and Voltage Tracking
27
Technika Mikroprocesorowa II
Tryby oszczędzania
mocy
mocy
28
Technika Mikroprocesorowa II
Tryby zmniejszonego poboru mocy
SLEEP_MODE_ADC
SLEEP_MODE_IDLE
SLEEP_MODE_STANDBY
SLEEP_MODE_PWR_DOWN
SLEEP_MODE_EXT_STANDBY
SLEEP_MODE_PWR_SAVE
set_sleep_mode(SLEEP_MODE_PWR_SAVE);
29
Technika Mikroprocesorowa II
JTAG-dbugWire
30
Technika Mikroprocesorowa II
JTAG to standard IEEE 1149.1
JTAG (ang. Joint Test Action Group) - protokół u\ywany do
testowania połączeń na płytkach drukowanych, stosowany tak\e do
uruchamiania i programowania układów programowalnych i
systemów mikroprocesorowych.
Układy scalone umieszczone w testowanym systemie muszą
posiadać wewnątrz odpowiednią warstwę sprzętową interfejsu
JTAG.
JTAG.
Jednym z najwa\niejszych zało\eń standardu JTAG jest mo\liwość
programowania układu bez zewnętrznego programatora
(ang. In-System_Programming, w skrócie ISP).
31
Technika Mikroprocesorowa II
JTAG linie sterujące
TDI (ang. Test Data In) - Wejście danych
TDO (ang. Test Data Out) - Wyjście danych
TCK (ang. Test Clock) - Wejście sygnału zegarowego
TMS (ang. Test Mode Select) - Wybór trybu pracy
TRST (ang. Test Reset) - Zerowanie (opcjonalne)
JTAG działa na zasadzie automatu 16-stanowego o alfabecie
JTAG działa na zasadzie automatu 16-stanowego o alfabecie
wejściowym TMS=0/TMS=1.
Reset procesu programowania odbywa się na dwa sposoby: albo
poprzez opcjonalne wejście TRST albo po ustawieniu TMS=1 na 5
cykli zegara.
32
Technika Mikroprocesorowa II
JTAG
33
Technika Mikroprocesorowa II
Boundary Scan - Ście\ka krawędziowa
34
Technika Mikroprocesorowa II
DebugWIRETM
One-wire, bi-directional interface
for all new AVRs with 16 kByte
and less flash memory.
It enables On-Chip debugging at the real target device.
This debugging interface offers full execution and
program flow control.
In addition this presents an unlimited number of
breakpoints, adjustment of I/O pins, monitor
functionality and programming of nonvolatile
memories.
Additional pins are not required as the reset pin is used
for connectivity.
35
Technika Mikroprocesorowa II
AVR - przykład
36
Technika Mikroprocesorowa II
AVR - przykład
37
Technika Mikroprocesorowa II
Odblokowanie JTAG
The JTAGEN Fuse must be programmed to enable the
JTAG Test Access Port.
In addition, the OCDEN Fuse must be programmed and
no Lock bits must be set for the Onchip debug system to
work.
work.
As a security feature, the On-chip debug system is
disabled when either of the LB1 or LB2 Lock bits are set.
Otherwise, the On-chip debug system would have
provided a backdoor into a secured device.
38
Technika Mikroprocesorowa II
Narzędzia AVR DRAGONhe AVR
Programming Interfaces
In-System Programming
High Voltage Serial Programming
Parallel Programming
JTAG Programming
Emulation Interfaces
JTAG
debugWIRE
The AVR Dragon is USB powered and is capable of
sourcing an external target. A prototype area allows
simple programming and debugging. The AVR Studio
online-help contains a complete list of supported devices.
39
Technika Mikroprocesorowa II
Narzędzia JTAG ICE II
AVR Studio Operated
Full Emulation of All Analog and Digital
Functions
Full JTAG Programming Support
upports Multiple Devices in a JTAG
Scan Chain
USB 1.1 or RS-232 Interface to PC
USB 1.1 or RS-232 Interface to PC
Full Support for Assembly and High
Level Languages
Program and Data Breakpoints
All Operations and Breakpoints are Real Time
Upgrades are done from AVR Studio
Target Voltage 1.8  5.5V
Supply Voltage 9V  12V, or Powered from USB port
.
40
Technika Mikroprocesorowa II
OCD On-Chip Debug
In the beginning, there was the debug monitor. Inexpensive but
effective, it still serves handily alongside the most expensive
debugging tools. Yet monitors have their drawbacks and
weaknesses. For instance, they require ROM, RAM, and a
communications channel from the target; they need to be ported to
the target hardware; and they don't let you set breakpoints in
programs running out of ROM.
After the debug monitor came the in-circuit emulator (ICE). By
After the debug monitor came the in-circuit emulator (ICE). By
applying some clever hardware methods (usually based on special
bond-out versions of processors), an ICE provides capabilities far
beyond those of a simple ROM monitor. The ICE's most powerful
features include complex breakpoints (even in ROM), real-time
traces of processor activity, and no use of target resources. But this
extra functionality comes at a high cost.
http://www.embedded.com/story/OEG20030205S0032
41
Technika Mikroprocesorowa II
BDM
Background Debug Mode (BDM) is the best known of the proprietary
on-chip debug solutions. It defines a communications standard for
interfacing to a debug core via a 10- or 26-pin connector on the
target system. A host computer, running a BDM-compatible remote
debugger, can communicate with and control the processor through
this interface.
The basic BDM command set is generally the same across
processor families, but differences exist due to the inherent
processor families, but differences exist due to the inherent
architectural differences. These differences are handled by the
particular debugger that drives the BDM.
BDM commands are 17-bits long (actually 16 command bits and one
status/control bit). Commands are shifted serially along the serial-
data-in (DSI) signal from the debugger to the processor; each may
be followed by one or more extension words. Responses are shifted
serially out of the processor on the corresponding serial-data-out
(DSO) signal. These data transmissions are synchronized to a
serial-clock (DSCLK) signal, which is driven by the remote
42
Technika Mikroprocesorowa II
debugger.
BDM - Command
43
Technika Mikroprocesorowa II
Boot Loader
The Boot Loader Support provides a real Read-While-
Write Self-programming mechanism for downloading and
uploading program code by the MCU itself.
44
Technika Mikroprocesorowa II
Boot Loader
The Boot Loader Support provides a real Read-While-
Write Self-programming mechanism for downloading and
uploading program code by the MCU itself.
45
Technika Mikroprocesorowa II
Boot Loader
The Boot Loader Support provides a real Read-While-
Write Self-programming mechanism for downloading and
uploading program code by the MCU itself.
46
Technika Mikroprocesorowa II
Ochrona programu
47
Technika Mikroprocesorowa II
http://www.elektronikab2b.p
l/content/view/2309/lang,pl/
48
Technika Mikroprocesorowa II
49
Technika Mikroprocesorowa II
Koniec
50
Technika Mikroprocesorowa II


Wyszukiwarka

Podobne podstrony:
C w7 pliki operacje we wy
EZNiOS Log 13 w7 zasoby
w7
IiP z w7
w7
upII lab7
w7 sterowanie
W7 Obliczanie osiadań
st TPK w7 w8 14
OAK W7 Pamięci cache
W7 KINETYKA SZYBKOSC REAKCJI ROWNOWAGA
Biologia W7 2014
upII lab2
W7 30 11
PPS 13 W7

więcej podobnych podstron