Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Programator wg kit'u AVT 871 - nie działa ?

silos
-
-
Posty:4
Rejestracja:23 maja 2005, o 09:01
Lokalizacja:Danków k/Krzepic
Programator wg kit'u AVT 871 - nie działa ?

Postautor: silos » 23 maja 2005, o 09:06

Witam

Wykonałem programator we własnym zakresie wg kitu AVT 871 dla układu AT90S2313 z wykorzystaniem układu 74HCT244N. Po zlutowaniu wszystkiego i podlaczeniu poprzez LPT (SPP) do komputera i pobraniu napiecia +5V z portu joysticka program BASCOM - AVR nie widzi go nawet ustawiając programator na STK200/STK300. Program podaje: "Could not identify chip with ID: FFFFFF". Zmienilem nawet kwarc na 8Mhz z 4Mhz ale to samo jest. Posprzwdzalem luty czy dobrze trzymaja i jest ok. Programator sprawdzalem na roznych sprzetach z Win98SE. Prosze o pomoc poniewaz wydalem juz troche pieniedzy na elementy a teraz nic nie chce dzialac.

Za wszelka odpowiedz serdecznie dziekuje.

Z powazaniem
M.K.

Awatar użytkownika
ACeK
-
-
Posty:1522
Rejestracja:30 mar 2003, o 19:35
Lokalizacja:Kielce

Postautor: ACeK » 23 maja 2005, o 13:14

:) Czy plytki robiles sam czy tez kupowales? Jesli robiles plytke dla procesora 2313 z godnie z plytka z Ep to tam kondensator C2 jest podpiety miedzy plusa a reset a powinien byc miedzy plus a minus. Teraz zrob taki test. Wyciagnij uklad 244 z podstawki i sprawdz czy nie ma zwarc miedzy jego pinami. Jesli nie ma to teraz zrob za pomoca krotkich przewodow polaczenia w podstawce 244 wedlug tej rozpiski

Kod: Zaznacz cały

pin pin (podstawka ukladu 244) 6 => 12 2 => 18 13 => 3 9 => 11
I teraz podepnij do programatora plytke procesora (bez 2313) i spraw czy sa przejscia wedlug tej rozpiski

Kod: Zaznacz cały

LPT 2313 pin pin 6 => 19 (SCK) 7 => 17 (MOSI) 9 => 1 (RES) 10 => 18 (MISO) 25 => 10 (GDN)
Jesli sa przejscia miernik wskazuje zwarcie to znaczy ze jest dobrze. Jesli nie zrobiles zwor na zlaczu LPT miedzy pin 2 => 12 i 3 => 11 to zrob teraz. Zasil uklad z dobrego (pewnego zrodla) zasilacza 5V i sprawdz czy jest 5V na pin 20 244 i pin 20 2313. Proponuje Ci zrobic tez przycisk reset ktory podepniesz do pin 1 ukladu 2313 a GDN. Teraz wloz z powrotem scalaki jesli sa dobre (nie padly) odpal Bascoma i powinno byc dobrze :wink:
:D

silos
-
-
Posty:4
Rejestracja:23 maja 2005, o 09:01
Lokalizacja:Danków k/Krzepic

Programator AVT 871

Postautor: silos » 24 maja 2005, o 05:50

Tak programator (płytke) wykonywałem sam i rzczywiście kondensator C2 z płytki B jest podpięty z jednej strony do RESET i dlatego tez wylutowalem go i podpialem do masy. Sprawdziłem rownież połączenie taśmowe między płytkami i wszystko w porządku. Niestety układ 244 mam wlutowany na stałe bez podstawki. Podłączyłem jeszcze raz do LPT i nadal nie moze zidentyfikować BASCOM-AVR. Zrobie jeszcze sprawdzenie połączenia według opisu.

Dziekuje za odpowiedź.

Z poważaniem
M.K.

Awatar użytkownika
ACeK
-
-
Posty:1522
Rejestracja:30 mar 2003, o 19:35
Lokalizacja:Kielce

Postautor: ACeK » 27 maja 2005, o 14:19

:) Jesli dobrze wykonales plytki i na pewno nie ma bledow to na plytce programatora pin 8 Lpt jest polaczony z pin 4 244 (1A2). A jego wyjscie pin 16 (1Y2) nie jest nigdzie podlaczone. Dlatego proponuje Ci podlaczyc pod to wyjscie diode Led i opornik podlaczony pod +5V wedlug tego schematu.

Kod: Zaznacz cały

R 220-510R ^^ Led (jaki kolwiek) ---- || +5V *----| |-----|>|-------* 16 pin 244 ----
I do tak przygotowanego programatora podlacz pewne zasilanie 5V (pewne znaczy zewnetrzne by miec pewnosc ze zasilanie nie ma wplywu na zachowanie ukladu). Pin 8 Lpt to jest D6 portu drukarki i ustawiajac na nim 0 powodujesz ze dioda bedzie swiecic a 1 ze zgasnie. Ustawienie 1 na tym bicie to jakbys wyslal na port 64 dziesietnie. Ale zeby takie sterowanie bylo mozliwe musisz jeszcze podac na pin 1 244(1G) czyli 5 pin Lpt 0 zeby 244 przepuszczal sygnal. Jesli na pin 1 244 bedzie 1 bez wzgledu co ustawisz na D6 dioda nie bedzie swiecic. Za sterowanie pin 1 244 odpowiada D3 portu Lpt. Ustawienie 1 na tym porcie masz jesli podasz dziesietnie 8. A tu masz dwa przyklady programu Qbasic.

Kod: Zaznacz cały

REM *** Tester programatora stk 200 by :) ACeK *** PRINT "test portu drukarki o adresie H378" FOR i = 1 TO 5 z = INP(&H378) PRINT "Licznik = ", i, "LPT = ", z PRINT "podaj liczbe do zapisania w lpt" INPUT a OUT &H378, a NEXT i
Tu masz mozliwosc podania 5 roznych wartosci od 0 do 255 i przez podanie odpowiedniej wartosi zapalac i gasic Led

Kod: Zaznacz cały

REM *** Tester programatora stk 200 by :) ACeK *** PRINT "test portu drukarki o adresie H378" FOR i = 0 TO 255 z = INP(&H378) PRINT "Licznik = ", i, "LPT = ", z OUT &H378, i FOR ii = 1 TO 2000: NEXT ii NEXT i OUT &H378, 0
Tu z kolei jest podane na port drukarki od 0 do 255 co objawia sie miganiem diody (nie cyclicznie) Jesli potych testach dioda swieci to oznacza ze Twoj programator dziala.
Teraz zciagnij sobie z tego linka :arrow: ispprog i w opcji setup ustaw STK 200/300. Teraz podlacz swoja plytke z procesorem i nacisnij Restart na konsoli programatora i Read singnature :wink:
:D

BTW Czy ktos wie jaki jest odpowiednik rozkazow basic'a out &Hxxx, xxx i inp(&Hxxx) w C?

Awatar użytkownika
tasza
-
-
Posty:456
Rejestracja:17 sty 2005, o 10:52

Postautor: tasza » 30 maja 2005, o 11:27

BTW Czy ktos wie jaki jest odpowiednik rozkazow basic'a out &Hxxx, xxx i inp(&Hxxx) w C?
inp()
http://msdn.microsoft.com/library/defau ... ._inpd.asp

outp()
http://msdn.microsoft.com/library/defau ... _outpd.asp

a tu problemy z tym związane (dla kernela NT/2K/XP), w '95, '98 nie występują
http://support.microsoft.com/default.as ... -us;112298

Awatar użytkownika
ACeK
-
-
Posty:1522
Rejestracja:30 mar 2003, o 19:35
Lokalizacja:Kielce

Postautor: ACeK » 31 maja 2005, o 03:21

:) Thx tasza za pomoc. :607:
:arrow: silos sprawdz jak masz ustawiony port drukarki w BIOS powinno byc EPP a tu masz te same programy co w poscie wyzej :wink:

Kod: Zaznacz cały

// Tester programatora STK 200 by :) ACeK // Thx tasza ;) #include <conio.h> #include <stdio.h> unsigned short lpt = 0x378; int data; int count; main() { puts("test portu drukarki o adresie H378"); for (count = 1; count < 5; count++) { data = _inp(lpt); printf("\nLicznik = %d LPT = %d", count, data); puts("\n\npodaj liczbe do zapisania w lpt\n"); scanf ("%d", &data); _outp(lpt, data); } return 0; }

Kod: Zaznacz cały

// Tester programatora STK 200 by :) ACeK // Thx tasza ;) #include <conio.h> #include <stdio.h> unsigned short lpt = 0x378; int data; int count; int count1; main() { puts("test portu drukarki o adresie H378"); for (count = 0; count < 255; count++) { data = _inp(lpt); printf("\nLicznik = %d LPT = %d", count, data); _outp(lpt, count); for (count1 = 0; count1 < 65535; count1++); } return 0; }

Awatar użytkownika
tasza
-
-
Posty:456
Rejestracja:17 sty 2005, o 10:52

Postautor: tasza » 31 maja 2005, o 08:44

:arrow: ACeK
jak to przypadkiem byś kompilował pod okna w VC++ albo jakimś Borland C++ Builderem to jest taka funkcja:

Kod: Zaznacz cały

void Sleep( DWORD dwMilliseconds /*sleep time*/ );
to tak btw

Kod: Zaznacz cały

for (count1 = 0; count1 < 65535; count1++);
i już mnie nie ma

Awatar użytkownika
ACeK
-
-
Posty:1522
Rejestracja:30 mar 2003, o 19:35
Lokalizacja:Kielce

Postautor: ACeK » 31 maja 2005, o 10:05

:) Thx jeszcze raz. Uzywam :arrow: Dev-C++[ver.4.9.92] :wink:

Kod: Zaznacz cały

// Tester programatora STK 200 by :) ACeK // Thx tasza ;) #include <conio.h> #include <stdio.h> unsigned short lpt = 0x378; int data; int count; main() { puts("test portu drukarki o adresie H378"); for (count = 0; count < 255; count++) { data = _inp(lpt); printf("\nLicznik = %d LPT = %d", count, data); _outp(lpt, count); sleep (50); // by tasza } return 0; }
:D

BTW Co zrobic by chcialo dzialac z NT ?

Awatar użytkownika
tasza
-
-
Posty:456
Rejestracja:17 sty 2005, o 10:52

Postautor: tasza » 31 maja 2005, o 10:44

najpierw tu:
viewtopic.php?p=49871

potem to:

Kod: Zaznacz cały

#include <windows.h> #include <stdio.h> #include <conio.h> #define LPT_ADDRESS 0x378 int main(int argc, char* argv[]) { //++ verify direct IO access HANDLE h = CreateFile( "\\\\.\\giveio", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if( h == INVALID_HANDLE_VALUE ) { printf ("ałć: 'giveio.sys' nie (ma|działa)\n"); return FALSE; } CloseHandle(h); //-- verification unsigned char nData = 0; while ( 1 ) { _outp ( LPT_ADDRESS, nData ); nData++; Sleep (100); if ( kbhit() ) { break; } } //while return 0; }
:570:

silos
-
-
Posty:4
Rejestracja:23 maja 2005, o 09:01
Lokalizacja:Danków k/Krzepic

Zapytanie kompilacja pod Dev C++ 4.9.9.1 ?

Postautor: silos » 2 cze 2005, o 13:50

Przepraszam ze jeszcze raz zapytam glupio ale sciagnalem darmowe srodowisko do C++ i wstawilem kod napisany w tym watku dla Dev C++ podany wyzej jednak nie moze mi znalezc deklarazji dla funkcji _inp i _outp a jak sprawdzalem to w moich naglowkowych plikach conio.h nie ma tego. Wyszukiwalem tez w internecie ale nie znalazlem. Czy moja wersja podstawowa Dev-C++ moze tego nie zawierac ?

Za wszelka odpowiedz serdecznie dziekuje

Z powazaniem
Silos

Awatar użytkownika
tasza
-
-
Posty:456
Rejestracja:17 sty 2005, o 10:52

Postautor: tasza » 2 cze 2005, o 14:13

a poszukaj samych inp, outp we wszystkich plikach *.h...
w MSVC one są w conio.h

Awatar użytkownika
ACeK
-
-
Posty:1522
Rejestracja:30 mar 2003, o 19:35
Lokalizacja:Kielce

Postautor: ACeK » 2 cze 2005, o 16:55

:) Nie wiem dlaczego Ci sie nie kompiluje ja uzywam ver. Dev-C++ 4.9.9.2 ktora jest w linku w poscie wyzej. Sprawdzilem na dwoch kompach i dziala oprocz tego sprawdzilem na Ms VC++ i rowniez dziala. Jak chcesz to przeslij mi na pw Twoj mail to Ci wysle exe (jesli dalej masz klopot) :wink:
:D

BTW
Na tej :arrow: stronie w projektach elektronicznych => Wyswietlacze LCD jest fajny program do monitorowania rejestrow LPT pod tytulem WinPort i tym programem mozesz zapalac i gasic poszczegolne bity na szynie danych oraz rejest sterujacy i uzywajac miernika sprawdzic co i jak :idea:

Kod: Zaznacz cały

Rej We/Wy Lpt Rej Wejsc Lpt Rej Kontr Lpt D0 => 2 pin S3 => 14 pin CO => 1 pin D1 => 3 pin S4 => 13 pin C1 => 14 pin D2 => 4 pin S5 => 12 pin C2 => 15 pin D3 => 5 pin S6 => 10 pin C3 => 17 pin D4 => 6 pin S7 => 11 pin D5 => 7 pin D6 => 8 pin D7 => 9 pin

silos
-
-
Posty:4
Rejestracja:23 maja 2005, o 09:01
Lokalizacja:Danków k/Krzepic

Sprawdzenie AVT 871

Postautor: silos » 9 cze 2005, o 10:38

Sprawdzalem programem WinPort zapalanie diody podlaczonej do nozki 16 244 poprzez D6 (pin8) i dziala prawidlowo dioda gasnie lub zapala sie w zaleznosci od stanu. Teraz wzialem program ISP Programmer i ustawilem odpowiednio w setup'ie typ zrobilem restart i read signature jednak otrzymalem wynik : NOT KNOWN (FF, FF, FF). Probowalem rowniez odczytac EEPROM lub Flash jednak otrzymuje komunikat: Can't read locked or nor known MCU a uklad jest czysty i nieuzywany do tej pory. Czyli z tego moze wynikac ze AT90 moze byc uszkodzony popniewaz w innych programach do programowania podobnie jest. Ukladu w sklepie nie chca mi juz wymienic.

Dziekuje za odpowiedzi.

Z powazaniem
M.K.

[ Dodano: 09-06-2005, 11:16 ]
Witam

Sprawdzilem programator programem podanym przez Pana ACeK w QBasic i dioda miga a potem juz swieci. Port drukarki przestawialem zarowno na EPP jak i ECP jednak nie moge nic odczytac nawet PonyProg po odpowiednim skonfigurowaniu.

Dziekuje
M.K.

Awatar użytkownika
ACeK
-
-
Posty:1522
Rejestracja:30 mar 2003, o 19:35
Lokalizacja:Kielce

Postautor: ACeK » 9 cze 2005, o 16:58

:) Jak jeszcze raz napiszesz pan to juz wiecej nic do Ciebie nie napisze :wink:
Jedno pytanie czy zrobiles zwory o ktorych pisalem wczesniej miedzy 2 i 12 pin oraz 3 i 11 pin Lpt?
To co sprawdziles to jest tylko polowa ukladu 244 (sterowanie przez gate pin 1) i majac program WinPort proponuje Ci sprawdzic druga jego czesc to znaczy sterowne przez pin 19. I sprawdz wszystkie piny w taki sposob ze zmieniajac wartosci na odpowiednim bit D (Lpt) sprawdzasz czy na odpowiadajacym pinie procka zmienia sie stan (sprawdzasz miernikiem napiecie gdzie: 1 to okolo 5V a 0 to okolo 0.02) w ten sposob sprawdzisz przejscie i czy nie zamieniles miedzy soba sygnalow. Mala wskazowka jak bedziesz zmienial bity to wszystkie ustaw na 0 to dzieki temu jak bedziesz podawal 1 na sprawdzany bit nie bedzie watpliwosci ze jest to podane z innego bitu. To dodatkowe sprawdzenie jest po to by calkowicie rozwiac watpliwosci co do dzialania 244 choc mysle ze skoro sterowanie dioda Led dziala to i on caly jest sprawny. Zmieniajac D0 i D1 (jesli zrobiles zwory) zmieniasz stan na S5 i S7.
Jesli wszystko dziala to znaczy ze padl procesor i jedyny sposob zeby sie przekonac jest podlaczenie innego. Tak to juz jest ze czasem nowe i nie dzialaja dlatego warto miec kilka by moc zrobic testy i sprawdzic przez podmiane (co nie raz bardzo oszczedza czas) proponuje tez uzywac podstawki bo jak cos nie idzie jak trzeba to mozna latwiej testowac badany uklad. Z innym prockiem po takim wnikliwym sprawdzeniu Twojego programatora pewnie bedzies hulal na calego :wink:
:D

BTW :arrow: pablo666 jak bys dalej nie wiedzial o jakim schemacie 244 jest tu napisane to tu masz linka :arrow: AVT 871 a tu inny :arrow: 244 :idea:

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 33 gości