Witam!
Posiadam tablice LED, które wygrzebałem z... no nie ważne. Ważne, że nic o tym układzie nie wiem, zgranie programu się udało, ale odczytanie jak to działało, nie jest warte zachodu
.
Long story short: siedzą tam dwa typy procków: AT89S51 oraz AT89C2051 oba są podłączone w taki sposób, że „na świat” wystawiony jest tylko jeden pin oraz kwarc 12M. Zatem stworzyłem sobie program, w którym jest funkcja delay50ns() oparta na nop'ach (czas 50ns skalibrowany za pomocą arduino). Program czeka, aż na pinie wejściowym pojawi się 1, czeka 50 ns i sprawdza czy dalej jest jeden czy zero. Krótki sygnał to bit 0, długi 1. W ten sposób przesyłanych jest 5 * 8 bitów. Pierwszy bajt to „identyfikator” panelu, reszta instrukcja.
Program wgrany na S51 przez ISP działa. Natomiast na 2051, równolegle - nie. Oba się uruchamiają (mrugnięcie po uruchomieniu), pierwszy odbiera instrukcje, drugi nie.
Program na AT2051:
Program na AT89S51:
Program na Arduino (wysyłający instrukcje):
Dodam tylko, że 2051 musiałem zdemontować dwa razy (błąd we wgranym programie =/) więc trochę tej temperatury przyjął. Czy to może być przyczyną?
Pozdrawiam!
Posiadam tablice LED, które wygrzebałem z... no nie ważne. Ważne, że nic o tym układzie nie wiem, zgranie programu się udało, ale odczytanie jak to działało, nie jest warte zachodu

Long story short: siedzą tam dwa typy procków: AT89S51 oraz AT89C2051 oba są podłączone w taki sposób, że „na świat” wystawiony jest tylko jeden pin oraz kwarc 12M. Zatem stworzyłem sobie program, w którym jest funkcja delay50ns() oparta na nop'ach (czas 50ns skalibrowany za pomocą arduino). Program czeka, aż na pinie wejściowym pojawi się 1, czeka 50 ns i sprawdza czy dalej jest jeden czy zero. Krótki sygnał to bit 0, długi 1. W ten sposób przesyłanych jest 5 * 8 bitów. Pierwszy bajt to „identyfikator” panelu, reszta instrukcja.
Program wgrany na S51 przez ISP działa. Natomiast na 2051, równolegle - nie. Oba się uruchamiają (mrugnięcie po uruchomieniu), pierwszy odbiera instrukcje, drugi nie.
Program na AT2051:
Code: c
Program na AT89S51:
Code: c
Program na Arduino (wysyłający instrukcje):
Code: c
Dodam tylko, że 2051 musiałem zdemontować dwa razy (błąd we wgranym programie =/) więc trochę tej temperatury przyjął. Czy to może być przyczyną?
Pozdrawiam!