RTV forum PL | NewsGroups PL

Zrozumienie problemów z uruchamianiem układów MSP430 przy niskim napięciu zasilania

TI MSP430 - spostrzeżenia z praktyki

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Zrozumienie problemów z uruchamianiem układów MSP430 przy niskim napięciu zasilania

Andrzej W.
Guest

Tue Jan 11, 2011 10:58 pm   



Uruchamiając układy z różnymi procesorami MSP430 napotkałem podobne
problemy, ich rozwiązanie zajęło mi troszkę czasu, może komuś go
zaoszczędzę.

1. Program nie uruchamiał się po włączeniu zasilania, jednak w trybie
debagowania, czy po resecie wszystko działało poprawnie.
2. Jeśli procesor współpracuje z innymi układami, to układy te po
włączeniu zasilania często nie działały, jednak w trybie debagowania,
czy po resecie wszystko działało poprawnie.

Okazało się, że powodem takiego zachowania jest ograniczona szybkość
narastania napięcia zasilającego.
MSP430 zaczyna działać przy 1,8V, zgodnie z przykładami od TI w
pierwszej linii kodu wyłączałem watchdoga, następnie konfigurowałem
procesor. Jeśli przełączenie wewnętrznego zegara na wyższą częstotliwość
nastąpiło zanim napięcie osiągnęło odpowiednią wartość to procesor się
zawieszał a watchdoga był wyłączony...
Np. dla zegara 16MHz wymagane jest napięcie co najmniej 3,3V.

Podobnie problem wygląda z peryferiami.
Inicjacja peryferiów występuje przeważnie na początku programu, jeśli
napięcie zasilające wynosi wtedy np. 2V a peryferia działają na 3,3V to
nie zostaną one zainicjowane i problem gotowy.

Jeśli w układzie nie mamy możliwości dodania nadzorcy napięcia to
najprostszym rozwiązaniem jest dodanie dostatecznie długo trwającej
pętli na początku programu.


--
Pozdrawiam,
Andrzej

john smith
Guest

Wed Jan 12, 2011 2:31 am   



Quote:
Uruchamiając układy z różnymi procesorami MSP430 napotkałem podobne
problemy, ich rozwiązanie zajęło mi troszkę czasu, może komuś go
zaoszczędzę.

1. Program nie uruchamiał się po włączeniu zasilania, jednak w trybie
debagowania, czy po resecie wszystko działało poprawnie.
2. Jeśli procesor współpracuje z innymi układami, to układy te po
włączeniu zasilania często nie działały, jednak w trybie debagowania,
czy po resecie wszystko działało poprawnie.

To są problemy wspólne dla mikrokontrolerów nie wyposażonych w układ
resetu.
Nie napisałeś z jakimi MSP430 są takie problemy. MSP430 najczęściej mają w
obwodzie resetu układ BOR (opisany w slau144e.pdf), w rodzinie 1xx
większość, w 2xx i wyższych wszystkie.
Jest to nieprogramowalny element obwodu resetu i informuje o poprawnym
napięciu Vcc.
Całość jest tak skuteczna, że jak testowałem resetowanie MSP430F2274 z
zasilacza laboratoryjnego _po_odłączeniu_programatora_ zasilanego z USB to
układ wstawał za każdym razem.
Trzeba pamiętać, wejścia MSP zabezpieczane przed ESD diodami i gdy
napięcie VCC jest mniejsze od napięcia programatora, to może tam popłynąć
pasożytniczy prąd który może zasilić MSP430 i zrobić inne kłopoty.

W części układów MSP430 jest jeszcze SVS, bardziej złożony i już
programowany nadzorca napięcia zasilającego.
K.

Andrzej W.
Guest

Wed Jan 12, 2011 11:33 am   



W dniu 2011-01-12 01:31, john smith pisze:
Quote:
Nie napisałeś z jakimi MSP430 są takie problemy. MSP430 najczęściej mają
w obwodzie resetu układ BOR (opisany w slau144e.pdf), w rodzinie 1xx
większość, w 2xx i wyższych wszystkie.

Bawiłem się rodziną 2xx, która jest wyposażona w BOR i działa on poprawnie.
To co opisałem nie jest błędem tej rodziny procesorów tylko błędem
koncepcyjnym popełnionym w czasie projektowania układu z tym procesorem.
Błędem o tyle trudnym do wykrycia, że objawia się on z pewnym opóźnieniem.
Są to procesory o bardzo szerokim napięciu zasilającym co stanowi jedną
z ich zalet, ale pociąga też za sobą konieczność innego spojrzenia na
projekt.
Trzeba pamiętać, że BOR uruchamia procesor od 1,8V a jeśli nasz układ
potrzebuje wyższego napięcia by poprawnie działać to odpowiedzialność za
jego kontrolę spoczywa na nas.

--
Pozdrawiam,
Andrzej

GĂłrski Adam
Guest

Thu Jan 13, 2011 1:05 pm   



W dniu 1/11/2011 22:58, Andrzej W. pisze:
Quote:
Uruchamiając układy z różnymi procesorami MSP430 napotkałem podobne
problemy, ich rozwiązanie zajęło mi troszkę czasu, może komuś go
zaoszczędzę.

1. Program nie uruchamiał się po włączeniu zasilania, jednak w trybie
debagowania, czy po resecie wszystko działało poprawnie.

Bo się układ zasilał z programatora.

Quote:
2. Jeśli procesor współpracuje z innymi układami, to układy te po
włączeniu zasilania często nie działały, jednak w trybie debagowania,
czy po resecie wszystko działało poprawnie.

To samo.
Quote:

Okazało się, że powodem takiego zachowania jest ograniczona szybkość
narastania napięcia zasilającego.
MSP430 zaczyna działać przy 1,8V, zgodnie z przykładami od TI w
pierwszej linii kodu wyłączałem watchdoga, następnie konfigurowałem
procesor. Jeśli przełączenie wewnętrznego zegara na wyższą częstotliwość
nastąpiło zanim napięcie osiągnęło odpowiednią wartość to procesor się
zawieszał a watchdoga był wyłączony...

C TI example:

void main(void)
{
unsigned int i;
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
BCSCTL1 |= XTS; // ACLK = LFXT1 = HF XTAL
P2DIR |= 0x01; // P2.0 = output direction
P2SEL |= 0x01; // P2.0 = ACLK function
P1DIR |= 0x02; // P1.1 = output direction

do
{
IFG1 &= ~OFIFG; // Clear OSCFault flag
for (i = 0xFF; i > 0; i--); // Time for flag to set
}
while ((IFG1 & OFIFG)); // OSCFault flag still set?

BCSCTL2 |= SELM_3;


Wyraźnie widać oczekiwanie na uruchomienie generatora HF. Więc z czym
problem ?


Quote:
Np. dla zegara 16MHz wymagane jest napięcie co najmniej 3,3V.

Podobnie problem wygląda z peryferiami.
Inicjacja peryferiów występuje przeważnie na początku programu, jeśli
napięcie zasilające wynosi wtedy np. 2V a peryferia działają na 3,3V to
nie zostaną one zainicjowane i problem gotowy.


Jakie peryferia nie chciały działać ? wewnętrzne ?
Quote:

Jeśli w układzie nie mamy możliwości dodania nadzorcy napięcia to
najprostszym rozwiązaniem jest dodanie dostatecznie długo trwającej
pętli na początku programu.



Zrobiłem z nim przeszło 30 projektów - nigdy nie miałem takich problemów.


Adam

Andrzej W.
Guest

Thu Jan 13, 2011 1:50 pm   



W dniu 2011-01-13 13:05, Górski Adam pisze:
Quote:

Bo się układ zasilał z programatora.

Ja akurat nie używam programatora do zasilania prototypów.
Zasilanie było "nierzeczywiste" i dlatego właśnie pisałem, że jest to
problem ujawniający się z opóźnieniem dopiero w realnym układzie.

Quote:

C TI example:
......

Wyraźnie widać oczekiwanie na uruchomienie generatora HF. Więc z czym
problem ?

Wyraźnie widać, że nie doczytałeś, pisałem o zegarze wewnętrznym a nie
generatorze kwarcowym. Wewnętrzny zegar nie ma chyba bitu awarii.

Quote:

Jakie peryferia nie chciały działać ? wewnętrzne ?

Peryferia peryferyjne Smile czyli np. LCD, mój poprawnie działa dla napięć
powyżej 3V.


Quote:

Zrobiłem z nim przeszło 30 projektów - nigdy nie miałem takich problemów.


Ja zrobiłem kilka, może naście, natrafiłem na taki problem i go opisałem
by oszczędzić czasu innym.
Nie ukrywam, że akurat w tym projekcie zasilanie było złożone i
przejście od 2V do 3,3V potrafiło zająć i ze 100 ms, a to dla procesora
wieczność.


--
Pozdrawiam,
Andrzej

GĂłrski Adam
Guest

Thu Jan 13, 2011 2:41 pm   



W dniu 1/13/2011 13:50, Andrzej W. pisze:
Quote:
W dniu 2011-01-13 13:05, Górski Adam pisze:

Bo się układ zasilał z programatora.

Ja akurat nie używam programatora do zasilania prototypów.
Zasilanie było "nierzeczywiste" i dlatego właśnie pisałem, że jest to
problem ujawniający się z opóźnieniem dopiero w realnym układzie.

No i duma dała znać.

Quote:


C TI example:
......

Wyraźnie widać oczekiwanie na uruchomienie generatora HF. Więc z czym
problem ?

Wyraźnie widać, że nie doczytałeś, pisałem o zegarze wewnętrznym a nie
generatorze kwarcowym. Wewnętrzny zegar nie ma chyba bitu awarii.


Jakie peryferia nie chciały działać ? wewnętrzne ?

Peryferia peryferyjne Smile czyli np. LCD, mój poprawnie działa dla napięć
powyżej 3V.



Zrobiłem z nim przeszło 30 projektów - nigdy nie miałem takich problemów.


Ja zrobiłem kilka, może naście, natrafiłem na taki problem i go opisałem
by oszczędzić czasu innym.
Nie ukrywam, że akurat w tym projekcie zasilanie było złożone i
przejście od 2V do 3,3V potrafiło zająć i ze 100 ms, a to dla procesora
wieczność.

Miałeś normalne problemy z prototypem - kto tego nie zna ?
Ale to nie problem z MSP tylko z projektem.
Nie ma prototypów działających od pierwszego włączenia i tyle.


Pozdrawiam

Górski Adam

Andrzej W.
Guest

Thu Jan 13, 2011 8:13 pm   



W dniu 2011-01-13 14:41, Górski Adam pisze:
Quote:
Miałeś normalne problemy z prototypem - kto tego nie zna ?
Ale to nie problem z MSP tylko z projektem.
Nie ma prototypów działających od pierwszego włączenia i tyle.


Przecież pisałem, że to nie wina MSP, tylko specyfika projektu.


--
Pozdrawiam,
Andrzej

elektroda NewsGroups Forum Index - Elektronika Polska - Zrozumienie problemów z uruchamianiem układów MSP430 przy niskim napięciu zasilania

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map