Uklad na AVR?



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Janusz F." <janufry_at_nospam_polbox.com>
Subject: Uklad na AVR?
Date: Fri, 19 Jan 2001 01:42:50 +0100


Witam szanowne grono grupowiczów.

Chciałbym zapytać czy wymyślony przeze mnie układ da się oprogramować.
Ale do rzeczy:
Układ steruje matrycą 24x8 z diod święcących.
Zmiana jednego z 8 rzędów odbywa się co 1.25 ms (800Hz)
Jasność poszczególnych diód powinna być regulowana przez zmianę czasu
świecenia (PWM) w 256 krokach w ostateczności w 128.

Wymyśliłem że całością sterowałby AT90s8515 taktowany 8,192MHz.
Dane do wyświetlania dosyłane przez SPI - tu nie widzę problemów.

Jasności diód musiałyby być zapamiętane w RAM (192 komórki)
Co 4.8us (1,25ms/256) procesor uaktualniałby stan 24 wyjść sterujących
diodami tak by uzyskać regulacje jasności (PWM)
Musiałby w tym celu przejrzeć 24 bajty RAM i zadecydować czy dana dioda ma
jeszcze świecić czy trzeba ją zgasić.

I tu jest moje pytanie:
Czy ktoś mógłby ocenić czy da się to zrobić w 40 taktach zegara bo tyle jest
do dyspozycji.
Ja osobiście wątpię i już przymierzam się do zmniejszenia rozdzielczości
PWM-a do 7 bitów lub powiększenia taktowania procesora.
Ale może ktoś to potrafi rozwiązać.


Tak więc mając nadzieję że nie za bardzo zaciemniłem problem proszę osoby
mające doświadczenia z AVR-ami o opinię czy to jest realne.

--
Janusz F.
janufry_at_nospam_polbox.com



Poprzedni Następny
Wiadomość
Spis treści
From: Roland Zerek <R.Zerek_at_nospam_adb.pl>
Subject: Re: Uklad na AVR?
Date: Fri, 19 Jan 2001 08:40:23 +0100


[...]

Po pierwsze - dlaczego ograniczasz czestotliwosc kwarca? Daj na maxa,
chyba, ze masz szczegolne powody, zeby byl akurat taki jak chcesz dac...

Po drugie - zastanow sie, czy potrzebujesz takiej rozdzielczosci dla PWM

Roland

Poprzedni Następny
Wiadomość
Spis treści
From: "peters" <peters_at_nospam_poczta.onet.pl>
Subject: Re: Uklad na AVR?
Date: Fri, 19 Jan 2001 09:08:37 +0100


Po pierwsze - dlaczego ograniczasz czestotliwosc kwarca? Daj na maxa,
chyba, ze masz szczegolne powody, zeby byl akurat taki jak chcesz dac...

Po pierwsze 8MHz to max.

--
pozdrawiam, peters
peters_at_nospam_poczta.onet.pl
http://peters.republika.pl (strona Petersa dla elektroników)


Poprzedni Następny
Wiadomość
Spis treści
From: "Arek Karas" <karas_at_nospam_2com.pl>
Subject: Re: Uklad na AVR?
Date: Fri, 19 Jan 2001 09:56:06 +0100


Po drugie do regulacji jasnosci wystarczyly by 4 bity, a nie 8.

AK

Użytkownik "peters" <peters_at_nospam_poczta.onet.pl> napisał w wiadomości
news:948sk4$4kn$1_at_nospam_news.tpi.pl...
Po pierwsze - dlaczego ograniczasz czestotliwosc kwarca? Daj na maxa,
chyba, ze masz szczegolne powody, zeby byl akurat taki jak chcesz dac...

Po pierwsze 8MHz to max.

--
> pozdrawiam, peters
> peters_at_nospam_poczta.onet.pl
> http://peters.republika.pl (strona Petersa dla elektroników)
>



Poprzedni Następny
Wiadomość
Spis treści
From: "Janusz F." <janufry_at_nospam_polbox.com>
Subject: Re: Uklad na AVR?
Date: Fri, 19 Jan 2001 10:02:24 +0100


peters <peters_at_nospam_poczta.onet.pl> wrote in message
news:948sk4$4kn$1_at_nospam_news.tpi.pl...
Po pierwsze - dlaczego ograniczasz czestotliwosc kwarca? Daj na maxa,
chyba, ze masz szczegolne powody, zeby byl akurat taki jak chcesz dac...

Po pierwsze 8MHz to max.

Właśnie tak myślałem.
Zobaczyłem w posiadanych materiałach o AVR-ach.
Moze już zaczęli robić coś na 20 MHz ale to dopiero sprawdzę.
I jeszcze nie pisałem że to musi być możliwie najtańsze więc nie mogę kupić
sobie hi-endowego procesora tylko muszę wycisnąc wszystkie poty z jakiegoś
taniego.
Urządzenie będzie powielane w wielu egzemplarzach więc każda zaoszczędzona
złotówka się liczy.
Drugim pomysłem było wykonanie tego układu jako PLD or something ale tu
jestem zupełnie zielony więc staram sie obchodzic ten pomysł dużym łukiem. A
pewnie i tak wyszłoby drozej.

--
Janusz F.
janufry_at_nospam_polbox.com




Poprzedni Następny
Wiadomość
Spis treści
From: "peters" <peters_at_nospam_poczta.onet.pl>
Subject: Re: Uklad na AVR?
Date: Fri, 19 Jan 2001 19:31:20 +0100


Drugim pomysłem było wykonanie tego układu jako PLD or something ale tu
jestem zupełnie zielony więc staram sie obchodzic ten pomysł dużym łukiem.
A
pewnie i tak wyszłoby drozej.

Kiedys popelnilem cos takiego na '51 i wspolpracujacym z nim Lattice ispLSI
1016. Sterowalo to matryca 16 x 16 diod.
Uklad wspomagal regulacje jasnosci.
Moze da sie na samym procesorze, zacznij od napisania fragmentow programu i
przetestuj to pod AVR Studio.
Pamietaj tylko, ze transmisja danych nie moze wplywac na rytm przelaczania
diod. Najlepiej gdyby program pracowal bez przerwan.


--
pozdrawiam, peters
peters_at_nospam_poczta.onet.pl
http://peters.republika.pl (strona Petersa dla elektronikow)



Poprzedni Następny
Wiadomość
Spis treści
From: "Janusz F." <janufry_at_nospam_polbox.com>
Subject: Re: Uklad na AVR?
Date: Fri, 19 Jan 2001 23:51:37 +0100


peters <peters_at_nospam_poczta.onet.pl> wrote in message
news:94a12s$cgn$1_at_nospam_news.tpi.pl...

Pamietaj tylko, ze transmisja danych nie moze wplywac na rytm przelaczania
diod. Najlepiej gdyby program pracowal bez przerwan.


Nie znam dobrze AVR-a bo dopiero zabrałem sie za tego potwora ale wlasnie na
przerwaniach bym to zrobił.
Powiem na przykładzie '51:
1 - przerwanie o wysokim priorytecie - wyswietlanie taktowane timerem z
autoreloadem + odliczanie czasu do zmiany wiersza.
2 - przerwanie o niskim priorytecie - obsluga SPI
3 - program glowny - wszystkie pozostale zadania - glownie spanie i czekanie
na przerwania

Swoja droga zaprojektowalem sobie na zwykłych "TTL"-kach taki układ
realizujacy całe to wyswietlanie tylko ze dane trzeba mu dosylac na bieżąco.
I nie wiem w co dałoby się go wprogramować. Pewnie w coś dużego i drogiego
;-(
Ale pomyślę nad taką hybrydą uP+ kawałek "PLD" do regulacji jasnosci to
bedzie moze własciwe rozwiązanie. Moze '51 by sie w takim zastosowaniu
wyrobił ;-)
--
Janusz F.
janufry_at_nospam_polbox.com




Poprzedni Następny
Wiadomość
Spis treści
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: Uklad na AVR?
Date: 19 Jan 2001 09:24:44 GMT


On Fri, 19 Jan 2001 01:42:50 +0100, Janusz F. <janufry_at_nospam_polbox.com> wrote:
Układ steruje matrycą 24x8 z diod święcących.
Zmiana jednego z 8 rzędów odbywa się co 1.25 ms (800Hz)
Jasność poszczególnych diód powinna być regulowana przez zmianę czasu
świecenia (PWM) w 256 krokach w ostateczności w 128.
Wymyśliłem że całością sterowałby AT90s8515 taktowany 8,192MHz.

Musiałby w tym celu przejrzeć 24 bajty RAM i zadecydować czy dana dioda ma
jeszcze świecić czy trzeba ją zgasić.
Czy ktoś mógłby ocenić czy da się to zrobić w 40 taktach zegara bo tyle jest
do dyspozycji.

Na pewno nie.

Ja osobiście wątpię i już przymierzam się do zmniejszenia rozdzielczości
PWM-a do 7 bitów lub powiększenia taktowania procesora.

Roznicy 1/256 nie zauwazysz. Roznicy 1/64 mowiac szczerze tez nie.
Zejdz do 4 bitow, albo wrecz 2 bitow.

Takie kolejne sprawdzanie danych moze zaowocowac nierownym czasem
swiecenia dla kolejnych diod.
Poza tym potrzebujesz troche czasu na wykonanie innych zadan przez
procesor - nie mozna zajac go w 100% wyswietlaniem.

Byc moze rozwiazaniem jest wstepne przygotowanie danych do wyswietlania -
tzn np przechowujesz 8 kompletow bitow dla kazdego z 8 krokow PWM,
i po otrzymaniu danej odpowiednio ustawiasz bity. Przerwanie juz tylko
je wyprowadza ..

J.

Poprzedni Następny
Wiadomość
Spis treści
From: "Janusz F." <janufry_at_nospam_polbox.com>
Subject: Re: Uklad na AVR?
Date: Fri, 19 Jan 2001 23:35:50 +0100


J.F. <jfox_at_nospam_friko6.onet.pl> wrote in message

Roznicy 1/256 nie zauwazysz. Roznicy 1/64 mowiac szczerze tez nie.
Zejdz do 4 bitow, albo wrecz 2 bitow.

Na razie nie moge powiedziec co to jest za uklad (top secret do czasu
zrealizowania) ale zapewniam ze koniecnie musi byc przynajmniej 6 bitowa
rozdzielczosc tego PWM-a


Takie kolejne sprawdzanie danych moze zaowocowac nierownym czasem
swiecenia dla kolejnych diod.

O rownomiernosc wyswietlania nie ma sie co martwic - sa jeszcze latche do
ktorych bedzie przepisywane wszystko jednoczesnie.

Poza tym potrzebujesz troche czasu na wykonanie innych zadan przez
procesor - nie mozna zajac go w 100% wyswietlaniem.

Jasne ale na szczescie za wiele roboty to juz nie zostaje (odbieranie danych
z SPI duzo nie zajmie czasu, zmiany rzedów matrycy tez )


Byc moze rozwiazaniem jest wstepne przygotowanie danych do wyswietlania -
tzn np przechowujesz 8 kompletow bitow dla kazdego z 8 krokow PWM,
i po otrzymaniu danej odpowiednio ustawiasz bity. Przerwanie juz tylko
je wyprowadza ..


A to jest juz niezly pomysl
tyle ze taktow to i tak nie zaoszczedzi ;-((
Ale troche uprosci pisanie.

--
Janusz F.
janufry_at_nospam_polbox.com





Poprzedni Następny
Wiadomość
Spis treści
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: Uklad na AVR?
Date: Sun, 21 Jan 2001 15:43:41 GMT


On Fri, 19 Jan 2001 23:35:50 +0100, Janusz F. wrote:
J.F. <jfox_at_nospam_friko6.onet.pl> wrote in message
Roznicy 1/256 nie zauwazysz. Roznicy 1/64 mowiac szczerze tez nie.
Zejdz do 4 bitow, albo wrecz 2 bitow.

Na razie nie moge powiedziec co to jest za uklad (top secret do czasu
zrealizowania) ale zapewniam ze koniecnie musi byc przynajmniej 6 bitowa
rozdzielczosc tego PWM-a

Hm, zakladajac ze nie jest to jakas tablica do kalibracji kolorow,
to ci mowie ze 1/64 nie zauwazysz. Na 6 bitach da sie od
biedy zdjecia cz-b ogladac, a ty nie masz takiej rozdzielczosci.

Poza tym potrzebujesz troche czasu na wykonanie innych zadan przez
procesor - nie mozna zajac go w 100% wyswietlaniem.

Jasne ale na szczescie za wiele roboty to juz nie zostaje (odbieranie danych
z SPI duzo nie zajmie czasu, zmiany rzedów matrycy tez )

Problem w tym ze nie masz kiedy tego robic :-)
No - miedzy rzedami spokojnie mozna cos wykonac, ale czy to nie za
wolno dla SPI ?

Byc moze rozwiazaniem jest wstepne przygotowanie danych do wyswietlania -
tzn np przechowujesz 8 kompletow bitow dla kazdego z 8 krokow PWM,
i po otrzymaniu danej odpowiednio ustawiasz bity. Przerwanie juz tylko
je wyprowadza ..

A to jest juz niezly pomysl tyle ze taktow to i tak nie zaoszczedzi ;-((

Taktow zaoszczedzi, bo robisz to raz, a potem w czasie wyswietlania
juz tylko wyprowadzasz 3 bajty zamiast porownywac 24.
Tylko ze proponowalem dla 3 bitow, a dla 6 nie starczy Ci pamieci :-)

Czas pomyslec na zmianie zalozen, albo dorobieniu hardwarowego ukladu
..

J.