rmk napisał: A do czego wykorzystujesz ten układ?
W skrócie: do szyfrowania połączenia Ethernetowego.
rmk napisał: Niby RTL zapisuje jakies dane, ale przeważnie błędne (albo nie zapisuje). Na razie tylko kilka rejestrów się zgadza, reszta jest błędna. A jak to jest z wyborem strony? Nie trzeba do CR wpisywać na miejsce bitu 6 i 7 (PS0 i PS1) odpowiednio żeby wybierać stronę? Bo wydaje mi się, że 'samo' to się nie zrobi

No tak, samo się nie zrobi, jeżeli chcesz zapisywać lub odczytywać inną stronę rejestrów, to oczywiście musisz te bity najpierw odpowiednio ustawić. Jednak z moich obserwacji wynika, że zawsze po zrestartowaniu urządzenia wybrana jest strona 0.
rmk napisał:
Edit
RTL zapisuje coś, nie zawsze dobrze, ale większość jest dobra. Zmieniłem wartości przy wyborze stron i się polepszyło. Będe dalej próbował

i informował na bieżąco, co się dzieje

;] Zwróć uwagę na trzy sprawy:
1) Jeżeli wybierzesz stronę 0 rejestrów, a następnie wpiszesz jakąś wartość pod adres (0x02), to zostanie ona umieszczona w rejestrze PSTART (zgodnie z tablicą rejestrów, w mojej dokumentacji punkt 5.1.1, strona 9)
Jeżeli następnie odczytasz wartość spod tego samego adresu (0x02), to odczytasz wartość rejestru CLDA0, która najprawdopodobniej będzie inna, niż ta którą zapisałeś do PSTART pod ten sam adres.
Aby odczytać wartość PSTART, należy wybrać stronę 2 i odczytać wartość spod adresu 0x02 (patrz do tabelki...)
2) Niektóre bity poszczególnych rejestrów są zarezerwowane, np. rejestr RCR. Jeżeli zapiszesz wartość pod adres 0x0C na stronie 0, a następnie odczytasz spod tego samego adresu na stronie 2, to ta wartość mimo wszystko może się różnić, bo zgodnie z dokumentacją 7 i 6 bit RCR jest zarezerwowany, wiec powinieneś porównywać tylko pozostałe bity, np:
[code]
RTLwrite(CR,0x21); //wybor strony 0
RTLwrite(RCR,wr_temp); //zapis wartosci jakiejs zmiennej, np wr_temp
RTLwrite(CR,0xA1); //wybor strony 2
rd_temp = RTLread(RCR); //odczyt wartosci jakiejs zmiennej, np rd_temp
if((wr_temp&0b00111111) != (rd_temp&0b00111111)) print("blad!");
[\code]
3) Nie wszystkie rejestry można zapisywać w dowolnej chwili. Polecam dokumentację układu DP8390D. Jest tam opisane wszystko po kolei.
W związku z tym, proponowałem wcześniej rejestr BNRY, ponieważ zapisuje się go i odczytuje z tej samej strony rejestru, nie ma żadnych bitów zarezerwowanych i przyjmuje wszystkie możliwe wartości 8 bitowe.