EDAboard.com | EDAboard.eu | EDAboard.de | EDAboard.co.uk | RTV forum PL | NewsGroups PL

AVR32 - jak ruszyc z tym prockiem

elektroda.net NewsGroups Forum Index - Elektronika Polska - AVR32 - jak ruszyc z tym prockiem

Goto page Previous  1, 2, 3  Next

SM
Guest

Tue Nov 10, 2009 6:22 am   



Quote:
AVR32 (na pewno UC3A0512) ma to samo - jak za wolno napiecie narasta to
procek sie zatrzaskuje i grzeje, wiec uwazaj. W pdfie nigdzie o tym nie
znalazlem.

Nieee. Tylko nie to! A czy pomaga zewnętrzny reset? Zewnętrzny układ
który trzyma reset procka, zamiast jego wewnętrznego brownout.
Może tylko jego wewnętrzny układ kontroli napięcia działa niepoprawnie?
Może na zewnętrznym resecie będzie OK?

Ale byłby numer jakby znów wpakował się w atmela co zastartować
nie potrafi. Zaraz zrobiÄ™ testy.

SM

SM
Guest

Tue Nov 10, 2009 6:28 am   



Quote:
Typow implementacja watkow we wlasnym, wycisnietym sofcie -
Odpytywanie non-stop wszystkich pocedurek czy czasem ktoras nie ma czegos do
zrobienia - jakiez to szybkie i wydajne;)
Wszak przeciez scheduler to diabel wcielony, ktory zzera nasze cene zasoby a
nasza "petla glowna" nie.

Zawsze bêdzie wolniej. Nawet pomijaj±c os³ugê zdarzeñ, semaforów,
mutexów, czyli robi±c w przerwaniu tylko obs³ugê prze³±czania w±tków,
to sama ta obs³uga prze³±czania zajmuje czas. Trzeba do kontekstu
zapisaæ stan bierz±cego w±tku i odtworzyæ stan kolejnego
w±tku z tablicy.
Tym bardziej ¿e ja potrzebujê akurat w przerwaniu wywo³ywanym
z czêstotliwo¶ci± kilkuset herzów liczyæ trajektoriê dla
4 osi silników wraz z zachowaniem trapezowego profilu prêdko¶ci.

SM

SM
Guest

Tue Nov 10, 2009 6:36 am   



SM pisze:
Quote:
AVR32 (na pewno UC3A0512) ma to samo - jak za wolno napiecie narasta
to procek sie zatrzaskuje i grzeje, wiec uwazaj. W pdfie nigdzie o tym
nie znalazlem.

Nieee. Tylko nie to! A czy pomaga zewnętrzny reset? Zewnętrzny układ
który trzyma reset procka, zamiast jego wewnętrznego brownout.
Może tylko jego wewnętrzny układ kontroli napięcia działa niepoprawnie?
Może na zewnętrznym resecie będzie OK?

Ale byłby numer jakby znów wpakował się w atmela co zastartować
nie potrafi. Zaraz zrobiÄ™ testy.

SM

Zrobiłem szybki test. Bardzo wolno podawałem na LDO (obniża napięcie
z 5V do 3,3V dla procka) napięcie od 0 to 5V. Procek zastartował
poprawnie. Oczywiście ostateczne potwierdzenie wyjdzie dopiero
w kompletnym docelowym układzie - główne zasilanie odkłócone
przez filtr LC, podpięte do procka pozostałe elementy (np. mały
CPLD). Może być tak że coś "zbiera" przez zabezpieczenia przepięciowe
wejść i podaje to sobie gdzieś wewnątrz na zasilanie i głupieje
bo brownout czy reset tego nie widzi. Każda nóżka dostaje różne
napięcia w różnym czasie. Niektóre te same 3V3 które ma procek
na VCCIO, inne 5V (np. z CPLD) które przecież narasta inaczej niż
to co on widzi na 3V3 czy resecie.

SM

SM
Guest

Tue Nov 10, 2009 9:50 am   



shg pisze:
Quote:
On 10 Lis, 06:36, SM <bi...@korinsj.com.pl> wrote:
Oczywi¶cie ostateczne potwierdzenie wyjdzie dopiero
w kompletnym docelowym uk³adzie - g³ówne zasilanie odk³ócone
przez filtr LC, podpiête do procka pozosta³e elementy (np. ma³y
CPLD).

LC na zasilaniu? Oczywi¶cie sprawdzi³e¶, jak siê ten filtr zachowuje
(co pojawia siê na jego wyj¶ciu) w stanach przej¶ciowych, zw³aszcza
przy w³±czaniu zasilania i nag³ych skokach obci±¿enia?

Tak. Bardzo ³adnie wszystko filtruje. Mia³em problemy w mocno
zak³óconym ¶rodowisku, zak³ócenia na zasilaniu, itp. Teraz
jest OK.

SM

shg
Guest

Tue Nov 10, 2009 10:37 am   



On 10 Lis, 06:36, SM <bi...@korinsj.com.pl> wrote:
Quote:
Oczywi¶cie ostateczne potwierdzenie wyjdzie dopiero
w kompletnym docelowym uk³adzie - g³ówne zasilanie odk³ócone
przez filtr LC, podpiête do procka pozosta³e elementy (np. ma³y
CPLD).

LC na zasilaniu? Oczywi¶cie sprawdzi³e¶, jak siê ten filtr zachowuje
(co pojawia siê na jego wyj¶ciu) w stanach przej¶ciowych, zw³aszcza
przy w³±czaniu zasilania i nag³ych skokach obci±¿enia?

cepu69
Guest

Tue Nov 10, 2009 5:31 pm   



SM wrote:

Quote:
Typow implementacja watkow we wlasnym, wycisnietym sofcie -
Odpytywanie non-stop wszystkich pocedurek czy czasem ktoras nie ma czegos
do zrobienia - jakiez to szybkie i wydajne;)
Wszak przeciez scheduler to diabel wcielony, ktory zzera nasze cene
zasoby a nasza "petla glowna" nie.

Zawsze bêdzie wolniej.
I to jest wlasnie clue problemu. Kto powiedzial, ze zawsze : zmierzyles,

sprawdziles czy tylko tak twierdzisz bo tam jest tyle kodu???

Quote:
Nawet pomijaj±c os³ugê zdarzeñ, semaforów,
mutexów, czyli robi±c w przerwaniu tylko obs³ugê prze³±czania w±tków,
to sama ta obs³uga prze³±czania zajmuje czas.
Rescheduling jest wykonywany nie non-stop tylko gdy :

1. przyjdzie systemowe przerwanie zegarowe np. 10ms
2. w przerwaniu budzisz watek o wyzszym priorytecie niz biezacy
Pamietaj, ze przelacznie watkow jest silnie zoptymalizowani i jest napisane
w asemblerze - trzeba na stos zrzucic kontekst czyli w ARMie 16 rejestrow
natomiast twoja petla glowna tlucze non-stop.

Wszelkie elemnty programowania wspolbieznego sa uzyte tylko wtedy gdy ich
uzyjesz (same z siebie nie obciazaja systemu) a wygoda jest duza. Juz widze
te wydajna synchronizacje zadan na flagach;)

Quote:
Trzeba do kontekstu zapisaæ stan bierz±cego w±tku i odtworzyæ stan
kolejnego w±tku z tablicy.
Ze stosu i jest to raptem kilkadziesiat instrukcji procesora i jestes w

nowym watku, procedurki na flagach zuzywaja wiecej czasu procesora -
pamietaj ze sa wykonywne non-stop

Quote:
Tym bardziej ¿e ja potrzebujê akurat w przerwaniu wywo³ywanym
z czêstotliwo¶ci± kilkuset herzów liczyæ trajektoriê dla
4 osi silników wraz z zachowaniem trapezowego profilu prêdko¶ci.
A to wyjasnia wszystko - czasochlone obliczenia w procedurze obslugi

przerwania. Nie twierdze, ze jest to zle w kazdym przypadku tj. gdy masz
tylko jedno zadanie do wykonania to jest ok - dosc typowa sytuacja na
kontrolerze.
Ale w sytuacji bardziej generycznej tj. kilka zadan do obrobienia
rownoczesnie JEST TO NIEACEPTOWEALNE bezwzgledu czy jest OS czy nie -
responsywnosc takiego systemu jest mala.

SM
Guest

Tue Nov 10, 2009 9:42 pm   



Quote:
Tym bardziej ¿e ja potrzebujê akurat w przerwaniu wywo³ywanym
z czêstotliwo¶ci± kilkuset herzów liczyæ trajektoriê dla
4 osi silników wraz z zachowaniem trapezowego profilu prêdko¶ci.
A to wyjasnia wszystko - czasochlone obliczenia w procedurze obslugi
przerwania. Nie twierdze, ze jest to zle w kazdym przypadku tj. gdy masz
tylko jedno zadanie do wykonania to jest ok - dosc typowa sytuacja na
kontrolerze.
Ale w sytuacji bardziej generycznej tj. kilka zadan do obrobienia
rownoczesnie JEST TO NIEACEPTOWEALNE bezwzgledu czy jest OS czy nie -
responsywnosc takiego systemu jest mala.

W moim przypadku w przerwaniu realizowana jest generacja przebiegów
(impulsów krok +/-) dla silników (trajektoria, modyfikacja prêdko¶ci)
a g³ówny program zajmuje siê obs³ug± USB.
Chocia¿ trochê siê martwiê o t± obs³ugê USB. Nie wiem czy nie
bêdzie zbyt du¿ych opó¼nieñ w odpowiedzi na komendy hosta.
Czas trwania 1 bitu dla full speed to 1/12MHz = 83ns. Wg standardu
USB ograniczenie czasowe nie mo¿e byæ mniejsze 16 bitów i wiêksze
ni¿ 18 bitów. Je¶li procek znajduje siê za 5-tym hubem
to na odpowied¼ mam 7,5 bitu. I to mnie trochê niepokoi.

SM

Jerry1111
Guest

Tue Nov 10, 2009 11:36 pm   



SM wrote:
Quote:
SM pisze:
AVR32 (na pewno UC3A0512) ma to samo - jak za wolno napiecie narasta
to procek sie zatrzaskuje i grzeje, wiec uwazaj. W pdfie nigdzie o
tym nie znalazlem.

Nieee. Tylko nie to! A czy pomaga zewnętrzny reset? Zewnętrzny układ
który trzyma reset procka, zamiast jego wewnętrznego brownout.
Może tylko jego wewnętrzny układ kontroli napięcia działa niepoprawnie?
Może na zewnętrznym resecie będzie OK?

Ale byłby numer jakby znów wpakował się w atmela co zastartować
nie potrafi. Zaraz zrobiÄ™ testy.

SM

Zrobiłem szybki test. Bardzo wolno podawałem na LDO (obniża napięcie
z 5V do 3,3V dla procka) napięcie od 0 to 5V. Procek zastartował
poprawnie.

A napiecie za LDO roslo powoli? Bo u mnie lockup jest dosc powtarzalny -
musialem zadbac o dobre zasilanie.

Z drugiej strony - pierwszy procek Atmela jaki uzylem i dosc duza wpadka
(poza tym nie nowa - Altera to miala z 5 lat temu z Cyclonami).

--
Jerry1111

SM
Guest

Wed Nov 11, 2009 9:38 am   



Quote:
A napiecie za LDO roslo powoli?

Bardzo wolno. Powoli kręciłem zasilaczem od 0 do 5V.
Napięcie 5V narastało powoli, za LDO 3,3V też powoli,
napięcie 1,8V z VDDOUT powoli. Nóżka reset bez zewnętrznego
układu reset (rezystor 10k, kondensator 100nF, dioda BAS85
równolegle do rezystora). Na resecie napięcie też narastało
powoli. Procek za każdym razem prawidłowo startuje.
(używam 32UC3B0256).

Quote:
Z drugiej strony - pierwszy procek Atmela jaki uzylem i dosc duza wpadka
(poza tym nie nowa - Altera to miala z 5 lat temu z Cyclonami).


Po testach z AT91SAM7S64 doszukałem się w PDFie takiego zdania:

"During startup, core supply voltage (VDDCORE) slope must be superior or
equal to 6V/ms."

Oczywiście już po tym jak gotowy prototyp i brałem się za jego
oprogramowanie :)

SM

Zbych
Guest

Wed Nov 11, 2009 11:53 am   



SM przemówi³ ludzkim g³osem:

Quote:
Chocia¿ trochê siê martwiê o t± obs³ugê USB. Nie wiem czy nie
bêdzie zbyt du¿ych opó¼nieñ w odpowiedzi na komendy hosta.
Czas trwania 1 bitu dla full speed to 1/12MHz = 83ns. Wg standardu
USB ograniczenie czasowe nie mo¿e byæ mniejsze 16 bitów i wiêksze
ni¿ 18 bitów. Je¶li procek znajduje siê za 5-tym hubem
to na odpowied¼ mam 7,5 bitu. I to mnie trochê niepokoi.

A to ¿e host wysy³a pakiety do urz±dzenia co 1ms, to ju¿ ci nie
przeszkadza? Albo to, ¿e program na PC mo¿e byæ wyw³aszczony na dowolnie
d³ugi czas i nic ci nie wy¶le?

SM
Guest

Wed Nov 11, 2009 12:29 pm   



Quote:
A to ¿e host wysy³a pakiety do urz±dzenia co 1ms, to ju¿ ci nie
przeszkadza?

A co ma jedno z drugim wspólnego? Przecie¿ pisa³em o czasie
oczekiwania na odpowied¼, a nie o tym ¿e czas pomiêdzy
dwoma pakietami SOF to 1ms. Sk±d w takim razie
ograniczenie oczekiwania na odpowied¼ do 18 bitów?
No chyba ¿e chodzi tu o odpowied¼ sprzêtowego
kontrolera USB w procku, a nie mojego softu
obs³uguj±cego USB.

Quote:
Albo to, ¿e program na PC mo¿e byæ wyw³aszczony na dowolnie
d³ugi czas i nic ci nie wy¶le?

Czyli mam liczyæ na to ¿e program obs³uguj±cy bêdzie
"przyhamowywany" i tylko dlatego soft bêdzie dzia³a³.

SM

Zbych
Guest

Wed Nov 11, 2009 1:59 pm   



SM przemówi³ ludzkim g³osem:
Quote:
A to ¿e host wysy³a pakiety do urz±dzenia co 1ms, to ju¿ ci nie
przeszkadza?

A co ma jedno z drugim wspólnego? Przecie¿ pisa³em o czasie
oczekiwania na odpowied¼, a nie o tym ¿e czas pomiêdzy
dwoma pakietami SOF to 1ms. Sk±d w takim razie
ograniczenie oczekiwania na odpowied¼ do 18 bitów?
No chyba ¿e chodzi tu o odpowied¼ sprzêtowego
kontrolera USB w procku, a nie mojego softu
obs³uguj±cego USB.

Oczywi¶cie, to kontroler zajmuje siê sygnalizacj±, czy ma co¶ w buforze
do wys³ania, czy nie.

Quote:
Albo to, ¿e program na PC mo¿e byæ wyw³aszczony na dowolnie
d³ugi czas i nic ci nie wy¶le?

Czyli mam liczyæ na to ¿e program obs³uguj±cy bêdzie
"przyhamowywany" i tylko dlatego soft bêdzie dzia³a³.

Tak to napisa³e¶ jakby twój soft musia³ dostawaæ nowe dane z
dok³adno¶ci± co do us. Je¶li tak nie jest to ok.

SM
Guest

Wed Nov 11, 2009 6:35 pm   



Zbych pisze:
Quote:
SM przemówi³ ludzkim g³osem:
A to ¿e host wysy³a pakiety do urz±dzenia co 1ms, to ju¿ ci nie
przeszkadza?

A co ma jedno z drugim wspólnego? Przecie¿ pisa³em o czasie
oczekiwania na odpowied¼, a nie o tym ¿e czas pomiêdzy
dwoma pakietami SOF to 1ms. Sk±d w takim razie
ograniczenie oczekiwania na odpowied¼ do 18 bitów?
No chyba ¿e chodzi tu o odpowied¼ sprzêtowego
kontrolera USB w procku, a nie mojego softu
obs³uguj±cego USB.

Oczywi¶cie, to kontroler zajmuje siê sygnalizacj±, czy ma co¶ w buforze
do wys³ania, czy nie.

Albo to, ¿e program na PC mo¿e byæ wyw³aszczony na dowolnie d³ugi
czas i nic ci nie wy¶le?

Czyli mam liczyæ na to ¿e program obs³uguj±cy bêdzie
"przyhamowywany" i tylko dlatego soft bêdzie dzia³a³.

Tak to napisa³e¶ jakby twój soft musia³ dostawaæ nowe dane z
dok³adno¶ci± co do us. Je¶li tak nie jest to ok.


No to chyba siê kompletnie nie rozumiemy.

Przyk³ad:
1. Host USB wysy³a do urz±dzenia pakiet "In Token"
2. Urz±dzenie USB odpowiada pakietem "Data"
3. Host USB wysy³a do urz±dzenia pakiet "Handshake"

Sterownik USB w uC informuje mnie, ¿e odebra³ dane - czyli
pakiet "In Token". Ja te dane interpretuje i odsy³am
"Data". I pytanie - jak d³ugo Host czeka na odpowied¼
od urz±dzenia?

W ksi±¿ce wyczyta³em:
"Czas pomiêdzy dwoma kolejnymi pakietami SOF nazywany jest
ramk±". Ramka wynosi 1ms. Czyli wnioskujê ¿e Host wysy³a
pakiet "In Token" poprzedzony przez SOF. Ja odpowiadam
"Data" równie¿ z nag³ówkiem SOF, ale nie w tej samej 1ms
bo miêdzy dwoma pakietami SOF ma byæ 1ms przerwy (czyli
ramka).
Ale dalej czytam:
"St±d wyra¿one w bitach maksymnalne opó¼nienie w dotarciu
odpowiedzi do gosta wynosi 16 bitów. W³a¶nie to opó¼nienie
jest podstaw± do okre¶lenia ograniczenia czasowego
oczekiwania na odpowied¼ w urz±dzeniu nadaj±cym".
W wcze¶niej:
w najgorszym przypadku przej¶cie przez 5 hubów mo¿e
zaj±æ 350ns. "Ostatni hub przesy³a pakiet do urz±dzenia,
które po jego odebraniu i sprawdzeniu wysy³a
odpowied¼. SPECYFIKACJA PODAJE, ¿e czas na WYMIENIONE
OPERACJE liczony od momentu dotarcia odpowiedzi do
huba [...] nie mo¿e przekroczyæ 7,5 bitu."

No to zaczynam nie ca³kiem rozumieæ o co tu chodzi.

SM

Zbych
Guest

Wed Nov 11, 2009 6:45 pm   



SM przemówi³ ludzkim g³osem:

Quote:
No to chyba siê kompletnie nie rozumiemy.

Przyk³ad:
1. Host USB wysy³a do urz±dzenia pakiet "In Token"
2. Urz±dzenie USB odpowiada pakietem "Data"
3. Host USB wysy³a do urz±dzenia pakiet "Handshake"

Sterownik USB w uC informuje mnie, ¿e odebra³ dane - czyli
pakiet "In Token". Ja te dane interpretuje i odsy³am
"Data". I pytanie - jak d³ugo Host czeka na odpowied¼
od urz±dzenia?

Je¶li nie zd±¿ysz wstawiæ do bufora danych to kontroler wy¶le
informacjê, ¿e nic nie ma do wys³ania. Tym steruje sprzêt, wiêc nie ma
co siê przejmowaæ czy zd±¿ysz. Za 1ms host ponowi pytanie. Je¶li wtedy
bêdzie co¶ w buforze, to kontroler to wy¶le.

SM
Guest

Wed Nov 11, 2009 6:47 pm   



....chodzi o czas Round-Trip Delay wynosz±cy 1,5us.

"The maximum length of a standard USB cable is 5.0 meters (16.4 ft). The
primary reason for this limit is the maximum allowed round-trip delay of
about 1500 ns. If a USB device does not answer to host commands within
the allowed time, the host considers the command to be lost."

"The USB Specification allows a maximum period of approximately 1.5
microseconds for the round-trip delay of a single communication from a
host computer to a device and back to the computer"

Je¶li urz±dzenie USB nie odpowie Hostowi USB w czasie 1,5us,
Host uznaje komendê za "stracon±" (nie odebran±).

W³a¶nie tym czasem siê martwiê. W 1,5us muszê odebraæ dane od
sterownika USB w uC, zanalizowaæ je, i odes³aæ odpowied¼.
Poniewa¿ mogê byæ za 5-tym Hubem to na wszystko pozostaje mi
7,5 bitu * 83ns (FullSpeed) 623ns!!!

SM

Goto page Previous  1, 2, 3  Next

elektroda.net NewsGroups Forum Index - Elektronika Polska - AVR32 - jak ruszyc z tym prockiem

RTV map EDAboard.com map News map EDAboard.eu map EDAboard.de map EDAboard.co.uk map