Dariusz Zolna
Guest
Thu Feb 14, 2008 4:33 pm
Mam do rozwiązania następujący problem:
W projekcie chcę użyć dwóch procków AVR - 1 nazwijmy go Główny i 2
powiedzmy Podrzędny. Główny zajmuje się komunikacją ze światem
zewnętrznym (pobieranie i wyświetlanie danych, interakcja z
użytkownikiem) a Podrzędny zapisuje zebrane dane na dysku USB (choć tak
naprawdę co konkretnie robi nie jest aż tak istotne). Istotne jest, że
Główny komunikuje się z wieloma układami za pośrednictwem I2C, problemem
jest, że Podrzędny też podłączony jest jako I2C Slave. Problem w tym, że
Podrzędny potrzebuje też skorzystać z pamięci FRAM na I2C (ma za mało
pinów na Parallel i za mało wewnętrznego RAM). Pamięć ta ma być używana
jako bufor do zapisu danych na dysku. Jako że jest na I2C oba procki
mają do niej dostęp. Oczywiście najłatwiej byłoby użyć większego procka
jako Podrzędny, ale po co iść łatwą drogą kosztów?
Macie jakieś pomysły / sugestie?
Dariusz Żołna
entroper
Guest
Thu Feb 14, 2008 6:15 pm
Użytkownik "Dariusz Zolna" <answer@usenet.com> napisał w wiadomości
news:fp1mvi$2rc$1@inews.gazeta.pl...
Quote:
W projekcie chcę użyć dwóch procków AVR - 1 nazwijmy go Główny i 2
powiedzmy Podrzędny. Główny zajmuje się komunikacją ze światem
zewnętrznym (pobieranie i wyświetlanie danych, interakcja z
użytkownikiem) a Podrzędny zapisuje zebrane dane na dysku USB (choć tak
naprawdę co konkretnie robi nie jest aż tak istotne). Istotne jest, że
Główny komunikuje się z wieloma układami za pośrednictwem I2C, problemem
jest, że Podrzędny też podłączony jest jako I2C Slave. Problem w tym, że
Podrzędny potrzebuje też skorzystać z pamięci FRAM na I2C (ma za mało
pinów na Parallel i za mało wewnętrznego RAM). Pamięć ta ma być używana
jako bufor do zapisu danych na dysku. Jako że jest na I2C oba procki
mają do niej dostęp. Oczywiście najłatwiej byłoby użyć większego procka
jako Podrzędny, ale po co iść łatwą drogą kosztów?
Jak pobawisz się trybem multi-master z arbitrażem (w AVR to w ogóle możliwe
?), to sam dodasz w przyśpieszonym tempie niezależną pamięć szeregową do
Podrzędnego. Jeśli koniecznie ma być ta jedna pamięć, możesz dodać dodatkową
linię do prostej komunikacji żądań dostępu między procesorami albo dodatkową
warstwę programową.
e.
Dariusz Zolna
Guest
Fri Feb 15, 2008 3:36 pm
entroper pisze:
Quote:
Jak pobawisz się trybem multi-master z arbitrażem (w AVR to w ogóle możliwe
?), to sam dodasz w przyśpieszonym tempie niezależną pamięć szeregową do
Podrzędnego. Jeśli koniecznie ma być ta jedna pamięć, możesz dodać dodatkową
linię do prostej komunikacji żądań dostępu między procesorami albo dodatkową
warstwę programową.
Zmieniłem koncepcję i dzięki temu rozwiązał się ten i jeszcze jeden
problem - VNC1L, którego teraz używam do komunikacji z modułem akwizycji
danych (USB Slave) i zapisu danych na dysk / pendrive, nie pozwala na
odczyt ze Slave w tym samym czasie kiedy dane są zapisywane na dysk,
jedyne wyjście które zaproponował mi support FTDI to użycie dwóch hostów
(co podnosi mi znacząco koszty i komplikuje firmware). W związku z tym
USB zajmie się tylko komunikacją z układem akwizycji danych, a zapisywał
je będę na kartach SD/MMC (co ma jeszcze dodatkową zaletę, że nie będzie
mi kawał plastiku wystawał poza śliczną "clean look" obudowę

)
Dariusz Żołna