-
11. Data: 2014-07-08 21:21:13
Temat: Re: Dziwne zachowanie ENC28J60 po softresecie ATmegi
Od: Atlantis <m...@w...pl>
Hmm... Jedno jest pewne, to nie jest problem sprzętowy.
Spróbowałem odpalić instrukcję programowego resetu przez watchdoga na
drugim egzemplarzu tego samego urządzenia - efekt taki sam. Potem
zrobiłem to samo na płytce prototypowej z ENC28J60 i ATmegą 328. Program
zachowuje się dokładnie tak samo za każdym razem.
Używam biblioteki Tuxgraphics, a moje urządzenia są wzorowane na
schematach płytek z tej strony (MCU taktowany z pinu CLKOUT ENC28J60).
Gdzieś musi być błąd. Tylko jaki błąd może powodować takie zachowanie
urządzenia? Po włączeniu zasilania inicjacja przebiega normalnie, ale po
resecie przez watchdoga już nie...
-
12. Data: 2014-07-08 21:22:48
Temat: Re: [OT] Dziwne zachowanie ENC28J60 po softresecie ATmegi
Od: "ACMM-033" <v...@i...pl>
Użytkownik "AlexY" <a...@i...pl> napisał w wiadomości
news:lph7hj$ks2$1@dont-email.me...
> Użytkownik Włodzimierz Wojtiuk napisał:
>> On 2014-07-07 20:48, feldmarszałek tusk wrote:
>>> dziwne rzeczy dzieją się ostatnio z tymi wszystkimi naszymi
>>> projektami...
>>
>> To są jeszcze inne trolle, które coś projektują?
>
> Myślisz że ten troll cokolwiek zaprojektował?
<Wiech mode>
Pewne stronkie internetowe...
</Wiech>
--
Spamerów i "pytaczy" informuję, iż bardzo narażają się na to, że ich
adresy e-mail będą podawane harwesterom służącym do rozsyłania spamu.
-
13. Data: 2014-07-08 23:21:24
Temat: Re: Dziwne zachowanie ENC28J60 po softresecie ATmegi
Od: Marek <f...@f...com>
On Tue, 08 Jul 2014 21:21:13 +0200, Atlantis <m...@w...pl>
wrote:
> Używam biblioteki Tuxgraphics, a moje urządzenia są wzorowane na
> schematach płytek z tej strony (MCU taktowany z pinu CLKOUT
ENC28J60).
Tak trochę z imnej beczki ale może Cię zainteresuje: do swojej płytki
z encj dołożyłem moduł wifi mrf24wg (współdzieli spi z encj) i jeśli
chodzi o uzyskane transfery to ten moduł wifi jest bez porównania
szybszy niż encj przy połowie prędkości spi (wifi 10Mhz, encj
20Mhz). Pewnie dlatego, że driver do mrf używa przerwań a nie pooling
jak encj...
--
Marek
-
14. Data: 2014-07-09 00:18:59
Temat: Re: Dziwne zachowanie ENC28J60 po softresecie ATmegi
Od: Adam Górski <gorskiamalpa@wpkropkapl>
W dniu 2014-07-08 20:40, Atlantis pisze:
> BTW czy reset ENC28J60 w procedurze inicjującej pracę układu jest
> przeprowadzony prawidłowo?
>
> #define ENC28J60_SOFT_RESET 0xFF
> (...)
> enc28j60WriteOp(ENC28J60_SOFT_RESET, 0, ENC28J60_SOFT_RESET);
> _delay_loop_2(0); // 20ms
>
Poproszę trochę obszerniej z tym źródłem. Ale bez przesady.
Mogę się domyślać że argumenty to opcode,addres,databyte .....
Ale dlaczego enc28j60WriteOp(0xff, 0, 0xff) ? Jakieś maski ?
Databyte nie występuje ....
czyli
1. Cs w dół.
2. byte 0xff
3. Cs w górę
Czekać na startup.
Ale co robi enc28j60..... to ja nie wiem bo to Twoje dzieło.
Pzdr
Adam
---
Ta wiadomość e-mail jest wolna od wirusów i złośliwego oprogramowania, ponieważ
ochrona avast! Antivirus jest aktywna.
http://www.avast.com
-
15. Data: 2014-07-09 05:57:51
Temat: Re: Dziwne zachowanie ENC28J60 po softresecie ATmegi
Od: Atlantis <m...@w...pl>
W dniu 2014-07-09 00:18, Adam Górski pisze:
> Poproszę trochę obszerniej z tym źródłem. Ale bez przesady.
> Mogę się domyślać że argumenty to opcode,addres,databyte .....
Sama funkcja wygląda następująco:
void enc28j60WriteOp(uint8_t op, uint8_t address, uint8_t data)
{
CSACTIVE;
// issue write command
SPDR = op | (address & ADDR_MASK);
waitspi();
// write data
SPDR = data;
waitspi();
CSPASSIVE;
}
Makrodefinicja ADDR_MASK to 0x1F
Część odpowiadająca za soft reset układu przy inicjalizacji jest
zrobiona prawidłowo? Bo myślałem nawet o przesiadce na uIP, ale tego co
widzę, to sterownik ENC28J60 z tej biblioteki ma bardzo podobhnie
zrealizowaną funkcję resetu.
BTW Jak powinno się resetować układ za pomocą pinu RESET? Bo próbowałem
czegoś takiego:
RSTACTIVE; //makrodefinicja ustawiająca stan niski na odpowiedniej linii
_delay_loop_2(0);
RSTPASSIVE;
_delay_loop_2(0);
W efekcie nawet nie zaświeciła się żadna dioda na gniazdku RJ45...
-
16. Data: 2014-07-09 10:19:54
Temat: Re: Dziwne zachowanie ENC28J60 po softresecie ATmegi
Od: Atlantis <m...@w...pl>
W dniu 2014-07-09 05:57, Atlantis pisze:
> void enc28j60WriteOp(uint8_t op, uint8_t address, uint8_t data)
> {
> CSACTIVE;
> // issue write command
> SPDR = op | (address & ADDR_MASK);
> waitspi();
> // write data
> SPDR = data;
> waitspi();
> CSPASSIVE;
> }
>
> Makrodefinicja ADDR_MASK to 0x1F
Hmm... Tak się przyglądam temu i coś mi tu nie pasuje. W nocie
katalogowej ENC28J60 na stronie 28 i 32 podano informację, że za komendę
soft resetu odpowiada wysłanie sekwencji ośmiu bitów "1".
Tymczasem wywołanie tej funkcji jako enc28j60WriteOp(0xFF, 0, 0xFF)
spowoduje wysłanie 16 "jedynek". Bo najpierw wysyłamy wynik operacji:
0xFF | (0x00 & 0x1F)
Co daje 0xFF.
Potem jeszcze raz wysyłamy 0xFF.
Czy w takim razie reset nie jest przeprowadzany w zły sposób? A może ja
coś pomieszałem?
-
17. Data: 2014-07-09 12:37:38
Temat: Re: Dziwne zachowanie ENC28J60 po softresecie ATmegi
Od: Adam Górski <gorskiamalpa@wpkropkapl>
W dniu 2014-07-09 10:19, Atlantis pisze:
> W dniu 2014-07-09 05:57, Atlantis pisze:
>
>> void enc28j60WriteOp(uint8_t op, uint8_t address, uint8_t data)
>> {
>> CSACTIVE;
>> // issue write command
>> SPDR = op | (address & ADDR_MASK);
>> waitspi();
>> // write data
>> SPDR = data;
>> waitspi();
>> CSPASSIVE;
>> }
>>
>> Makrodefinicja ADDR_MASK to 0x1F
>
> Hmm... Tak się przyglądam temu i coś mi tu nie pasuje. W nocie
> katalogowej ENC28J60 na stronie 28 i 32 podano informację, że za komendę
> soft resetu odpowiada wysłanie sekwencji ośmiu bitów "1".
>
> Tymczasem wywołanie tej funkcji jako enc28j60WriteOp(0xFF, 0, 0xFF)
> spowoduje wysłanie 16 "jedynek". Bo najpierw wysyłamy wynik operacji:
> 0xFF | (0x00 & 0x1F)
> Co daje 0xFF.
> Potem jeszcze raz wysyłamy 0xFF.
>
> Czy w takim razie reset nie jest przeprowadzany w zły sposób? A może ja
> coś pomieszałem?
>
Wysyłasz za dużo. Czy to ma znaczenie - nie wiem.
Adam
---
Ta wiadomość e-mail jest wolna od wirusów i złośliwego oprogramowania, ponieważ
ochrona avast! Antivirus jest aktywna.
http://www.avast.com
-
18. Data: 2014-07-09 20:27:03
Temat: Re: Dziwne zachowanie ENC28J60 po softresecie ATmegi
Od: Atlantis <m...@w...pl>
W dniu 2014-07-09 12:37, Adam Górski pisze:
> Wysyłasz za dużo. Czy to ma znaczenie - nie wiem.
Ciągle nie to. :/
Spreparowałem funkcję wysyłającą 0xFF. Układ ruszył tak samo jak
przedtem, i tak samo zawiesił się po resecie. :/
Swoją drogą jak prawidłowo zresetować sprzętowo ENC28J60? Na jak długo
mam ustawić RESET na stan niski? Bo przy _delay_loop_2(0) jakby nie
wstawał w ogóle - nie świecą się diody.
-
19. Data: 2014-07-09 20:50:23
Temat: Re: Dziwne zachowanie ENC28J60 po softresecie ATmegi
Od: Adam Górski <gorskiamalpa@wpkropkapl>
W dniu 2014-07-09 20:27, Atlantis pisze:
> W dniu 2014-07-09 12:37, Adam Górski pisze:
>
>> Wysyłasz za dużo. Czy to ma znaczenie - nie wiem.
>
> Ciągle nie to. :/
> Spreparowałem funkcję wysyłającą 0xFF. Układ ruszył tak samo jak
> przedtem, i tak samo zawiesił się po resecie. :/
>
> Swoją drogą jak prawidłowo zresetować sprzętowo ENC28J60? Na jak długo
> mam ustawić RESET na stan niski? Bo przy _delay_loop_2(0) jakby nie
> wstawał w ogóle - nie świecą się diody.
>
1) Co to znaczy : "się zawiesił". Nie istnieje takie pojęcie.
Zawiesić to się może jak zegar zniknie.
Wisi gdzieś czekając na coś. Na co ?
2)Gdzieś widziałem w dokumentacji minimum 2us.
Pzdr
Adam
---
Ta wiadomość e-mail jest wolna od wirusów i złośliwego oprogramowania, ponieważ
ochrona avast! Antivirus jest aktywna.
http://www.avast.com
-
20. Data: 2014-07-10 15:52:48
Temat: Re: Dziwne zachowanie ENC28J60 po softresecie ATmegi
Od: Atlantis <m...@w...pl>
W dniu 2014-07-09 20:50, Adam Górski pisze:
> 1) Co to znaczy : "się zawiesił". Nie istnieje takie pojęcie.
> Zawiesić to się może jak zegar zniknie.
> Wisi gdzieś czekając na coś. Na co ?
Tak jak mówiłem - po zresetowaniu ATmegi przez watchdoga nie mogę
ponownie nawiązać połączenia z układem, a jedna z diod na gniazdku RJ45
(ta, która normalnie świeci cały czas) dość szybko miga. Pomaga dopiero
ponowne uruchomienie układu przez chwilowe odcięcie zasilania.
> 2)Gdzieś widziałem w dokumentacji minimum 2us.
A jest jakieś maksimum? Bo próbowałem resetu sprzętowego, ustawiając pin
na stan nisku na kilkadziesiąt-kilkaset ms. Układ w ogóle nie łączył się
z siecią - to znaczy nawet nie zaświeciła się żadna dioda.