Michał
Guest
Sat Aug 15, 2009 6:28 pm
Witam,
Walczę z uruchomieniem układu Ethernetowego na M128 i NM7010A.
Program pisze w Bascom AVR.
Niestety program wiesza mi się przy Config TCPIP.
NM7010A uruchomiłem już z M32 ale chciałem użyć M128.
Pytanie dlaczego to nie działa skoro układ poza M128 jest prawie taki sam?
Poza tym że używająć M32 używałem SCL, SDA i INT0 a w M128 INT0=SCL, więc
używam SCL, SDA i INT2.
Pierwszy raz uzywam M128 i póki co jestem zaskoczony każdą jej zmiana:-)
Zaczynająć od tego że ISP nie idzie przez SPI jak w M32 i niższych.
Może TWI nie działa mi bo jeszcze o czymś nowym w M128 nie wiem?
Czytałem manuala i nie widze nic co by wskazywało że mam gdzieś błąd.
Niestety chwilowo nie mam nic innego pod reką na I2c, żeby sprawdzić
komunikacje np z eeprom.
Może ktoś bardziej doświadczony w M128, ma jakąś sugestie?
Pozdrawiam Michał
Michał
Guest
Mon Aug 17, 2009 12:11 pm
Quote:
Pierwszy raz uzywam M128 i póki co jestem zaskoczony każdą jej zmiana:-)
Zaczynająć od tego że ISP nie idzie przez SPI jak w M32 i niższych.
Może TWI nie działa mi bo jeszcze o czymś nowym w M128 nie wiem?
Czytałem manuala i nie widze nic co by wskazywało że mam gdzieś błąd.
Niestety chwilowo nie mam nic innego pod reką na I2c, żeby sprawdzić
komunikacje np z eeprom.
Zrobiłem prosty test ze zmianą stanu PD.0 i PD.1 co 1s.
Wynik negatywny.
Teraz pytanie czy to problem w konfiguracji M128 czy zdążyłem ubić TWI.
Inne porty w M128 działają bez zastrzeżeń.
Rezonator działa prawidłowo, UART działa działa prawidłowo.
Pozdrawiam Michał
Konop
Guest
Mon Aug 17, 2009 12:43 pm
Quote:
Zrobiłem prosty test ze zmianą stanu PD.0 i PD.1 co 1s.
Wynik negatywny.
Teraz pytanie czy to problem w konfiguracji M128 czy zdążyłem ubić TWI.
Inne porty w M128 działają bez zastrzeżeń.
A jaki wpływ ma mieć TWI na sterowanie portem IO?? Albo uwaliłeś port,
albo masz skonfigurowany jako TWI i proca g**** obchodzi, co mu
wpisujesz do rejestru PORTD

...
A swoją drogą - może uruchom toto na Mega32, ale z wykorzystaniem innego
przerwania (int2, jeśli posiada, albo int1).. to wtedy wyjdzie, czy
winny jest Twój soft, czy coś nie tak z Megą128 (np. uszkodzony
egzemplarz)...
Pozdrawiam
Konop
Zbych
Guest
Mon Aug 17, 2009 1:12 pm
Michał pisze:
Quote:
Może TWI nie działa mi bo jeszcze o czymś nowym w M128 nie wiem?
Czytałem manuala i nie widze nic co by wskazywało że mam gdzieś błąd.
Wyłączyłeś tryb kompatybilności z Atmega103?
Michał
Guest
Mon Aug 17, 2009 2:05 pm
Quote:
Może TWI nie działa mi bo jeszcze o czymś nowym w M128 nie wiem?
Czytałem manuala i nie widze nic co by wskazywało że mam gdzieś błąd.
Wyłączyłeś tryb kompatybilności z Atmega103?
Mam ATMEGA128 Mode.
Przy tescie ze zmiana stanu portów PD.0 i PD.1 wyłączyłem użycie biblioteki
TWI,
więc powinno działać.
Kupiłem właśnie drugą M128 i zabieram się za testy.
Pozdrawiam Michał
Konop
Guest
Mon Aug 17, 2009 2:59 pm
Quote:
Przy tescie ze zmiana stanu portów PD.0 i PD.1 wyłączyłem użycie biblioteki
TWI,
więc powinno działać.
Kupiłem właśnie drugą M128 i zabieram się za testy.
Biblioteki??

... Wiesz, nie wiem, jakiej biblioteki używasz, pewnie ma
ona funkcję w stylu TWI init, ale upewnij się, czy NIE WŁĄCZASZ tego TWI
w jakimś innym miejscu kodu. Dokładniej - rejestr TWCR, bit TWEN (2) ma
być ustawiony na 0. W przeciwnym wypadku rejestr PORTD nie ma wpływu na
stan pinów wyjściowych...
Pozdrawiam
Konop
Michał
Guest
Mon Aug 17, 2009 4:11 pm
Quote:
Biblioteki??

... Wiesz, nie wiem, jakiej biblioteki używasz, pewnie ma
ona funkcję w stylu TWI init, ale upewnij się, czy NIE WŁĄCZASZ tego TWI w
jakimś innym miejscu kodu. Dokładniej - rejestr TWCR, bit TWEN (2) ma być
ustawiony na 0. W przeciwnym wypadku rejestr PORTD nie ma wpływu na stan
pinów wyjściowych...
Pozdrawiam
Konop
Dla testu napisałem program, który ma tylko zmieniać stan portów PD.0 i PD.1
Ustawione są jako wyjścia, mają pullupy 10k.
Cały czas na wyjściu mam +5V.
Inne porty np PD.5 i PD.6 działają bez zarzutu.
W miedzy czasie kupiłem drugą M128 i uniwesalna PCB.
Objaw ten sam, więc coś w konfiguracji M128 mi krzaczy.
Jeśli chodzi o FuseBity config jest w linku:
http://www.mieciu.pl/M128.JPG
Pozdrawiam Michał
Konop
Guest
Mon Aug 17, 2009 4:24 pm
Quote:
Dla testu napisałem program, który ma tylko zmieniać stan portów PD.0 i PD.1
Ustawione są jako wyjścia, mają pullupy 10k.
Cały czas na wyjściu mam +5V.
Inne porty np PD.5 i PD.6 działają bez zarzutu.
Rozumiem, że zmiana z PD0 na PD5 polega po prostu na zmianie linii w stylu:
PORTD |= (1<<0);
na linię
PORTD |= (1<<5);
i że to wystarczy do zadziałania/niezadziałania, tak?? I ze program to w
sumie prosta pętla i nic więcej w nim nie ma??!!
Quote:
W miedzy czasie kupiłem drugą M128 i uniwesalna PCB.
Objaw ten sam, więc coś w konfiguracji M128 mi krzaczy.
Albo w konfiguracji albo w kompilacji

... tak swoją drogą -sprawdź
jeszcze raz, dokładnie, od nowa, czy na pewno sprawdzasz właściwe piny,
czy nie masz jakiejś prostej głupoty, czy wgrywasz właściwy plik HEX itp

...
Drugie pytanie - czego używasz do programowania?? Programmera jakiegoś,
czy wgrywasz bootloadera?? Bo różnica jest spora - bootloader zapewne
nie robi twardego resetu (chyba, że przez watchdoga), tak więc raz
ustawiony rejestr nie będzie "kasowany" :/... dla 100% pewności
wpisałbym w programie linię:
TWCR = 0;
Quote:
Sorry za trochę głupie uwagi, ale z tego co piszesz, to wszystko powinno
działać

... dlatego szukam jakiegoś głupiego błędu po prostu...
Pozdrawiam
Konop
Michał
Guest
Mon Aug 17, 2009 4:57 pm
Quote:
Rozumiem, że zmiana z PD0 na PD5 polega po prostu na zmianie linii w
stylu:
PORTD |= (1<<0);
na linię
PORTD |= (1<<5);
i że to wystarczy do zadziałania/niezadziałania, tak?? I ze program to w
sumie prosta pętla i nic więcej w nim nie ma??!!
Oto program testowy:
$regfile "m128def.dat"
$crystal = 8000000
Twcr = 0
Rel1 Alias Portd.0
Rel2 Alias Portd.1
Rel3 Alias Portd.5
Rel4 Alias Portd.6
Config Pind.0 = Output
Config Pind.1 = Output
Config Pind.5 = Output
Config Pind.6 = Output
Do
Toggle Rel1
Toggle Rel2
Toggle Rel3
Toggle Rel4
Waitms 1000
Loop
Quote:
W miedzy czasie kupiłem drugą M128 i uniwesalna PCB.
Objaw ten sam, więc coś w konfiguracji M128 mi krzaczy.
Albo w konfiguracji albo w kompilacji

... tak swoją drogą -sprawdź
jeszcze raz, dokładnie, od nowa, czy na pewno sprawdzasz właściwe piny,
czy nie masz jakiejś prostej głupoty, czy wgrywasz właściwy plik HEX itp

...
Robie to niestety w Bascomie AVR, więc plik idzie dobry.
Sprawdziłem ustawienia kompilatora i nigdzie nie ma użytych portów D.
Quote:
Drugie pytanie - czego używasz do programowania?? Programmera jakiegoś,
czy wgrywasz bootloadera?? Bo różnica jest spora - bootloader zapewne nie
robi twardego resetu (chyba, że przez watchdoga), tak więc raz ustawiony
rejestr nie będzie "kasowany" :/... dla 100% pewności wpisałbym w
programie linię:
TWCR = 0;
Dodałem linie TWCR = 0, efekt ten sam.
Wszystkie linie posiadają pullupy 10k.
Uzywam programatora STK200/300.
BTW TWI też mi nie działa, podłączałem pod TWI na zmianę 24C04 oraz NM7010A.
Niestety NM7010A zadziała tylko na TWI, dlatego muszę to uruchomić.
Przy testch TWI używałem pullupów 10k oraz 4k7 - bez efektów.
Jeśli chodziło by o pamięć EEPROM użyłbym innych portów i po sprawie.
Quote:
Jeśli chodzi o FuseBity config jest w linku:
http://www.mieciu.pl/M128.JPG
Sorry za trochę głupie uwagi, ale z tego co piszesz, to wszystko powinno
działać

... dlatego szukam jakiegoś głupiego błędu po prostu...
Pozdrawiam
Konop
Wielkoktornie używałem M32 i nie miałem nigdy problemów.
Przy M128 zaskoczyło mnie programowanie ISP.
Przyznaję się, że poleciałem bez czytania PDF co przypłaciłem kilkoma
godzinami nad zmianą PCB:-)
Teraz po lekturze PDFa nie widzę przyczyn takiego zachowania ukłądu.
Pozdrawiam Michał
Michał
Guest
Tue Aug 18, 2009 10:01 am
Quote:
Dodałem linie TWCR = 0, efekt ten sam.
Wszystkie linie posiadają pullupy 10k.
Uzywam programatora STK200/300.
BTW TWI też mi nie działa, podłączałem pod TWI na zmianę 24C04 oraz
NM7010A.
Niestety NM7010A zadziała tylko na TWI, dlatego muszę to uruchomić.
Przy testch TWI używałem pullupów 10k oraz 4k7 - bez efektów.
Jeśli chodziło by o pamięć EEPROM użyłbym innych portów i po sprawie.
Jeśli chodzi o FuseBity config jest w linku:
http://www.mieciu.pl/M128.JPG
Sorry za trochę głupie uwagi, ale z tego co piszesz, to wszystko powinno
działać

... dlatego szukam jakiegoś głupiego błędu po prostu...
Wielkoktornie używałem M32 i nie miałem nigdy problemów.
Przy M128 zaskoczyło mnie programowanie ISP.
Przyznaję się, że poleciałem bez czytania PDF co przypłaciłem kilkoma
godzinami nad zmianą PCB:-)
Teraz po lekturze PDFa nie widzę przyczyn takiego zachowania ukłądu.
Uff uruchomiłem układ.
Napisałem zupełnie nowy program i ruszyły porty PD.0 i PD.1
Dlaczego wczoraj nie chodziły nie wiem, nie bylo tam nic wiecej poza tym co
tu napisałem.
Napisałem też od zera obsługe TWI i wszystko zadziałało.
Dzięki za uwagi i pomoc.
Pozdrawiam Michał
Michał
Guest
Tue Aug 18, 2009 12:46 pm
Quote:
Uff uruchomiłem układ.
Napisałem zupełnie nowy program i ruszyły porty PD.0 i PD.1
Dlaczego wczoraj nie chodziły nie wiem, nie bylo tam nic wiecej poza tym
co tu napisałem.
Napisałem też od zera obsługe TWI i wszystko zadziałało.
Dzięki za uwagi i pomoc.
Pozdrawiam Michał
Uwaga dla potomnych używających Bascoma do M128 i NM7010A.
Nie wiem dlaczego (nie mam czasu szukać) ale używając INT2 co chwile TWI
wywala się.
Zmieniłem na INT3 i działa super.
Pozdrawiam Michał