AT 89S8252 - prvi korak

Rasprava o AVR mikrokontrolerima, AVR projekti i drugo vezano za AVR...

Moderators: pedja089, stojke369, trax, InTheStillOfTheNight

Post Reply
Shtetocina
Posts: 15
Joined: 04-02-2005, 10:42

AT 89S8252 - prvi korak

Post by Shtetocina »

Pokusavam da unesem gotov i provjeren .hex zapis programcica ( najjednostavniji moguci - ispravan, provjeren ) u mikrokoMtroler. Koristim ATMEL AVR ISP. Par koraka ide dok ne trebam da prebrisem memoriju mikrokontrolera. Pokusaj rezultira u poruci:

" AT 89S8252 port not detected - This may be due to power off on programming module, security bits enabled, or a pre production AVR. "

* E, sat ovo trece nije. Nema teorije. Kad sam kupovao razvojni sistem, demonstriran je rad i sve je islo glatko.

* Druga mogucnost mi je ovako-onako. Uzeo multimetar i na programatoru detektirao napone. Dakle - ima napajanja. Mozda ipak .....

* Ovo sa sigurnosnim bitovima bi k´o moglo da bude. Sta su to SB, gdje su i kako da dodjem do njih ?

Neka sugestija, sovjet .....

Napominjem da se radi o mikroelektronikinom " UNI " razvojnom sistemu i OS 2000. Svaka sugestija i pomoc dobrodosla, pogotovu u ovoj fazi kad nisam napravio jos ni jedan korak koji bi me povukao. :(
buco

Post by buco »

AVR i serija 89 nisu iste imaju ISP mode kao i paralelni obe [mega ima jos 1--2 opcije , bootloader i neke jos i jtag] . 89 serija je bazirana bez preinaka nekih vecih na 8050 [8030] MCU jezgri pa zahtijeva i takvo programiranje tj algoritam za programiranje . Uzmi tehnicku dokumentaciju sto bi bilo vise neko neophodno kad ides prvi put radit sa nekim programibilnom ICom i tamo ti sve lijepo pise sto , kako , s cime u kojim uvijetima ! Pa inace sam stekao dojam da veoma mali broj ljudi koji se "bavi" s programibilnom ICima ,recimo MCUima , upce procita dokumentaciju bilo kakvu o tom ICu . Zasto je tome tako neznam , valjda velika samouvijerenost , sto se kasnije i vidi iz neobicnih pitanja ciji odgovor lezi u toj istoj dokumentaciji obrazlozen nasiroko i nadugacko.
Pozdrav
P.S. evo ti dio documenta , najcesce ti treba kristal kao osc , to je nacesca opcija , obicno uxmu onaj s 24MHz radi vece brzine dekodiranja naredbe ISP moda , sve isto kao za 8051 kao sto vidis !! Mozda nemas externi kristal pa te zeza mala freq na xtal1 pinu !!!!!!!
------------------------------------------------------------------------
Reading the Signature Bytes: The signature bytes are
read by the same procedure as a normal verification of
locations 030H and 031H, except that P3.6 and P3.7 must
be pulled to a logic low. The values returned are as follows:
(030H) = 1EH indicates manufactured by Atmel
(031H) = 72H indicates 89S8252
Programming Interface
Every code byte in the Flash and EEPROM arrays can be
written, and the entire array can be erased, by using the
appropriate combination of control signals. The write operation
cycle is sel f - timed and once i n i tiated, wi l l
automatically time itself to completion.
All major programming vendors offer worldwide support for
the Atmel microcontroller series. Please contact your local
programming vendor for the appropriate software revision.
Serial Downloading
Both the Code and Data memory arrays can be programmed
using the serial SPI bus while RST is pulled to
VCC. The serial interface consists of pins SCK, MOSI (input)
and MISO (output). After RST is set high, the Programming
1. Power-up sequence:
Apply power between VCC and GND pins.
Set RST pin to “H”.
If a crystal is not connected across pins XTAL1 and
XTAL2, apply a 3 MHz to 24 MHz clock to XTAL1 pin
and wait for at least 10 milliseconds.
2. Enable serial programming by sending the Programming
Enable serial instruction to pin
MOSI/P1.5. The frequency of the shift clock supplied
at pin SCK/P1.7 needs to be less than the
CPU clock at XTAL1 divided by 40.
3. The Code or Data array is programmed one byte at
a time by supplying the address and data together
with the appropriate Write instruction. The selected
memory location is first automatically erased before
new data is written. The write cycle is self-timed and
typically takes less than 2.5 ms at 5V.
4. Any memory location can be verified by using the
Read instruction which returns the content at the
selected address at serial output MISO/P1.6.
5. At the end of a programming session, RST can be
set low to commence normal operation.
Power-off sequence (if needed):
Set XTAL1 to “L” (if a crystal is not used).
Shtetocina
Posts: 15
Joined: 04-02-2005, 10:42

Bogami Buco ...

Post by Shtetocina »

..... naruzi ti mene. Velis " Samouvjeren ". A ja bauljam cetvoronoske u pokusaju da napravim prvi korak. Ne znam nista cojvece. Ni-sta. Cini mi se da sam u pitanju naveo da je sistem vec provjeren pred mojim ocima, ali na tudjem PC-u. Dakle podesen sistem, samo je sada problem u mom racunaru.

Slusaj ! Na MCU kartici imaju prespojnici koje sam ja postavio kako treba ( prema uputstvu ). Poslije priupitam okolo i cujem da ima nekakav program ATMEL Flash, koji je ( valjda ) program koji treba unijeti u programator. Tako sam barem ja razumio. Kako unijeti program, ako je to vec tako kako sam razumio ?

Ja znam nesto malo, ali sasvim malo o mikrokontrolerima, a nesto vise o C++ programiranju, iako je i to malo znanja s vremenom iscurilo. Da mi je da napravim nulti korak ( unos gotovog programa u kontroler ) i prvi korak ( kompajliranje vec gotovog programa ( primjera ). Ni to ne ide, ali hajde da nacinim barem nulti. U svakom slucaju, hvala ti i na dosadasnjoj zelji da pomognes.
buco

Post by buco »

Cuj ovako u vezi tog "nultog" koraka , reflashiranja interne programske memorije, za pocetak ti treba programator koji radi s tim kontrolerom tj ima algoritam koji podrzava brisanje, programiranje, citanje istog. To je razlog sto sam te uputio na literaturu da napravis uspijesan "nulti" korak , cak sam ti i kopirao dio koji govori sto i kako se programira tvoj MCU tj kako se inicira mod za unos programa. Znam da na netu mozes nac hrpu "programatora" ali s veoma ogranicenim mogucnostima , i lako mozes uzet "krivog" , jer to nije kao prvo AVR serija i ISP programski mod[ a i paralelni] nisu uopce isti , slicni jesu, kao za AT89 seriju.Ja sam se potrudio koliko to mogu da ti upravo to i kazem . Vecina MCUa ima programsku i memoriju podataka . I algortmi za programiranje su isti jedino ne macro naredbe. Ako imas izvrsni kod [hex,bin,crd...] jednostavno ga unesi programatorom koji podrzava at89 seriju i to je sva mudrost, [ pazi neki ce mozda trebat , vecina, externi oscilator radi brzog upisa kao sto ti i pise u dijelu org doc , i kao sto sam ti i ja napiso u pred textu].
Bilo bi dobro da nam kazes koji programator koristis ?? za pocetak , bit ce ti lakse pomoc .
Pozdrav
Shtetocina
Posts: 15
Joined: 04-02-2005, 10:42

Probao sam da dobijem pomoc od prodavca ...

Post by Shtetocina »

.... i dobio objasnjenje, doduse s pola srca - iz druge, trece ruke, da stvar ne sljaka zato sto koristim W 2000. Navodno sistem radi sa W98 i Millenijum. Kao drugi nacin upravljanja portom ??? E, sad Buco hvala tebi na prethodnim odgovorima, ali kao da se igramo gluhih telefona. Dakle, sistem je RADIO. Programator - O.K. Razvojna ploca - O.K. (valjda je, majku mu, i oscilator O.K). Uglavnom nikakva opcija ( provjera programa, brisanje, pregled memorije ) rezultira u poruci da cilj, mikrokontroler nije prepoznat. Jos samo da kazem da programator nema neku oznaku, niti je enkapsuliran. Jednostavno PCB, desetak elemenata oko 16F 876, prikljucnice i to je to.

Pitanje: Moze li uzrok biti u W 2000 ?
buco

Post by buco »

Izvini na podebljem kasnjenju , neki programatori ne mogu prepoznat ID zakljucanog MCUa [ ima i takvih], atmel obicno promijeni ID kad je chip zakljucan [ recimo avr serija ima ID 1E0102 kad je zkljucan ! ].Jer ako ti je prije sve radilo vidi dal je to mozda , a to OP sys se zna dogadjat i kod mnogih drugih aplikacija.
Pozdrav
Shtetocina
Posts: 15
Joined: 04-02-2005, 10:42

Post by Shtetocina »

Buco, hvala ti na zelji da pomognes. Ono za kasnjenje nije problem. Ne znam sta bi ja ovakav nevjeza mogao tu da uradim po savjetu sa posljednjeg posta. Nego, evo mene opet sa nowim ( neuspjesanim ) pokusajem !

Probao sam nesto drugo. Uzeo sam ‘ Keil μVision ’ V2.40.a i prvo sto mi je na pamet palo je da prosvercam iz primjera kompajlirani ‘ .hex’ zapis. Ubacim ja njega u drustvo (projekt), i nije mu tamo lose, ali kad otvorim ‘ Keil ’, ikonica za unos programa u kontroler je onemogucena. Opet nista.
Ondak ja uzmem pa ubacim ‘ .c ’ zapis, pa cu njega fino da kompajliram i onda ce dobijeni ‘ .hex ’ zapis biti domorodac, pa ce da prodje. JOK. Za pocetak, reda radi uzmem da debugiram, ali dobijem poruku:

Greska 56 – Ne moze da otvori zapis.

Sad se ja napravim lud i idem dalje na kompajliranje, kad ce ti on:

1 – Ne moze da otvori zapis <at898252.H>, i
2 – Nepoznat identifikator ( misli na P2 port kontrolera u C programu )

Da dodam da pri otvaranju projekta, dobijem ponudu da ugradim STARTUP.A51 zapis, sto ja velikodusno prihvatim. I jos, u bloku ‘ Opcije za cilj ’ ima listic ( tab ) ‘ C51 ’ bas kao i ‘ A51 ’ nemam nijedan zapis koji ima ekstenziju ‘ C51 ’ za razliku od ovog drugog.
Ne znam mozes li u ovom slucaju da pomognes, a vazniji je od prethodnog koji se odnosio samo na unos programa. Ako imas vremena da pogledas, mogu ti prikaz postavki prenesenih graficki u Word-u poslati na e-mail. Vjerovatno da je greska u nekoj od postavki.
Firkragg

Post by Firkragg »

Ma skini BASCOM 8051, u njemu možeš pisati basic i asm a podržava većinu programatora. Za AVR mikrokontrolere imaš BASCOM AVR.
Za 89S8252 tu biti i ne treba pravi programator, može se programirat u sustavu preko SPI linije, koja ide na paralelni port preko jednog driver IC-a. (možda bi radilo da se i direktno spoji, nisam probo).
Bascom ti radi sve ostalo, kompilira kod, prenese u programator i isprogramira...ako si početnik onda je najbolje da počneš s bascomom.

Ta tvoja razvojna ploča u sebi vjerojatno ima takav programator (SPI flash programmer) koji programira 8252, i mogo bi je lako programirat pomoću BASCOM-a.

Istina je da komp može nekad radit problem, može port programatora zezat ili je windows nekompatibilan....ja sam promijenio 3 kante i tek onda mi je dobro proradio TAFE programator (bezveze ali jednostavan za napravit/jeftin za kupit :D ), možda bi to što ti sad neradi radilo na nekom drugom kompu...ili windowsu.
buco

Post by buco »

@firkragg

"Za 89S8252 tu biti i ne treba pravi programator, može se programirat u sustavu preko SPI linije...."

Sto je "pjesnik" htio rec ?? :-) Nije vrag da ti vjerujes u to ?? Pa ja sam uploadirao u replay proceduru [algoritam] programiranja AT89 serije iz koje se vidi da bas i nije prosti SPI , koristi se istim nacinom prijenosa podataka [linije sck, miso, mosi] , ali svi Atmelovi ISP modovi ga koriste .

@stetocina Znaci ovako ti imas izvrsni kod [ u intel hex formatu ]koji zelis unijet u MCUAt89sxxx !!!!
Nije mi jasno zasto ti treba Kail Alat ako imas izvrsni kod ?? Ako nemas mislim da AVR studio4 moze generirat isvrsni kod iz source coda napisanog u C jeziku.Ti si mislio da ce tvoj programator tad htijet radit ?? Neki Alati su vezani na "tipske" programatore i prvo ocekuju definirani odgovor [ ili imaju jasno definirani protokol] da se sprijeci "zloupotreba" . Ako ti je AVR-ISP programmer prije radio provijeri settingse da nisi mozda promijenio uvjete ili redefinirao za nesto drugo. Ja nikad nisam koristio Atmelov ISP programator , jer sam radio svoje za visenamijensku upotrebu . Jedan od njih sam stavio i na board [ doduse tamo nema unesenog algoritma za 8051/52/53 tj AT89 seriju ali moze se dodat .. , jer nisam s njima radio] .
Ja sam alate poput Kaila i neke jos mnogo rafiniranije obicno otvorio malo prolistao i zatvorio jer moj nacin izrade source koda je iskljucivo asembler i kod PICa i kod ATMELA , cak sam za arm7tdmi [AT91xx] koristio assembler sto jedan moj "kolega" nije mogao vijerovat , ali moja je zadaca bila da reduciram kod a njegova da kreira kod , pise source u C i kompilira , ja bih ga disasemblirao i izvrsio redukciju i reasemblirao.
Meni je zao sto ti nemogu bas pomoc oko toga zasto ti C alat [ Kail ]ne radi bas najbolje jer ga u pravilu ne koristim , samo ako dobijem nesto zanimljivo u C onda ga otvorim da vidim sto je bila ideja nacina rijesavanja problema i tu zavrsava "koketiranje" s C , Delphi, VB ..PL-ima
kad je u pitanju pisanje soure koda sa ciljani MCU .
Pozdrav
Firkragg

Post by Firkragg »

Ma znam da nije pravi SPI al programator se zove SPI flashprogrammer pa zato ... :D (možda su pobrkali ISP i SPI :P ), i nekužim buco zašto si protiv toga, samo dodaš još jedan IC zajedno s mikrokontrolerom na ploču i dodaš konektor, i moš programirat mcu bez da ga vadiš, bez da kupuješ skupe programatore i adaptere. Tako se mogu programirat 89Sxx ,svi AVR i neki picevi...
buco

Post by buco »

@firkragg

" ..samo dodaš još jedan IC zajedno s mikrokontrolerom na ploču i dodaš konektor, i moš programirat mcu bez da ga vadiš, bez da kupuješ skupe programatore .." .
Nemam ja nista protiv toga naravno, pa postavio sam jedan programator
s PIC16F84 koji moze programirat i AVR i megu i PIC 16/17/18 serije , redefinicijom macro naredbi mogao bi se spojit na alate koje vi koristite.
A to dodas jos jedan MCU i imas programator ... pa ja sam " dodao" ATmegu128 i napravio programator koji moze programirat i UVeprome i MCUe i Flash mem i serijske memorije .. FWH [ firmware hub memorije INtel i ST] s vlastitim LCDom itd , programator je 16 bitni paralelni za flash nand memorije. Tako da to "ako dodas" IC i imas programator za jednu seriju MCUa [ tj kompaniju] je out of time . To ti govorim iz iskustva jer mi je to "hobi u hobiju" tim se bavim zadnjih oko 3 godine. Programator je autokonfiguracioni , ubacis IC stisnes tipku i on setira HW prema chipu koji si "ubacio" postavi menu i pitate sto zelis dalje na LCDu , ima sposobnost samoucenja koristenjem CFI moda koji je standardni dio svih "novijih" flash memorija i ostalih programibilnih ICa. Imam ja i programator za UVeprome i nand flasheve , MCUe , serial flasheve .. samostojni autokonfigurirajuci do 32 pina s ATmega8515 , ima spi flash za bazu podataka i MMC karticu za mjesto tvrdog diska za pohranu fileova[ koju mozes mijenjat kad se napuni]. Za njega cekam plocicu jer su svi programatori radjeni na vjerovao ili ne univerzalnoj plocici i oziceni su gomilom zica. :-( neki od njih koji su koristili PIC16F877 su jednostavno "rastavljeni" , kod imam njega nisam "rastavio" !!! Eto vidis sto moze bit ako dodas jedan MCU !!! Ima puno lipih stvari s samo jednim MCUom !!!! :-) Naravno ti projekti nisu bas za publik sferu [ mislim na davanje izvrsnog koda] iako je sve i pocelo tako ali nisam mogao nac zainteresirane za rad na projektu pa sam radio sam, zainteresiranih za public koristenje je bilo mos mislit koliko. ! :-(
To i je najveci problem , kako zainteresirat ljude da suradjuju na nekom projektu od pocetka ???
Pozdrav
Firkragg

Post by Firkragg »

Kako si izveo programiranje UV eproma i flasha, sa shift registrima?
buco

Post by buco »

:-) Pa nisam ja radio @Willem-ov programator ili onaj batronix i sl . Oni koriste shift registre i 8 bitna vrata u svom HW a sw za PC su platili da im naprave [ konkretno @willem u tajlandu]. Moj programator nema nikakvih shift registara , jedino su kod "manjeg" programatora dodana 8 bitna vrata radi vrlo "smijesnog" razloga , imao sam IC ATmega8515 i trebalo ga je iskoristiti za nesto posto je malo pretijesan [ ima premalo portova] za funkciju koju je trebao obavljat morao sam mu "prosirit" broj portova [ koristen je IC 74HC373 ]. Kompletna aplikacija s bootloaderom je u njemu , primarno je imao i bazu podataka jedino sam rad s LCDom [ tj HW kontrolu i kontrolu tastera] prepustio PIC16F84 [ da sam koristioATmegu128 za taj projekt nebi trebao nijedan processor na pomoc].Aplikacija velicime oko 5-6Kbyte ima u sebi sve potrebne algoritme za rad s navedenim porodicama ICa , rutine za test HW, rad s bazom podataka , rutine za autokonfiguraciju ,SW kontrolu rada LCDa id s menu-em, komunikacione rutine itd....!!!!! Tako da ne razumijem pitanje vezano na shift registre ?? Pa napisao sam da su programatori [ i onaj drugi ] standalone uredjaji , da bi radili i da bi ih kontrolirao ne treba ti PC , jel ti sad jasnije ??
Pozdrav
Firkragg

Post by Firkragg »

Ma pito sam jer očito nisi imo dosta portova za programirat eprom, al vidim napravio si to s latchem 74HC373...
buco

Post by buco »

Ma evo stas si me pitao

"Kako si izveo programiranje UV eproma i flasha, sa shift registrima?"

A ince da sam koristio mod deepswitcha bez autokonfiguracije HW bio bi dovoljan broj portova tj nebi trebao latch . Za neke flasheve kao FWH cak i uzasno prevelik , ISP[MCUi] , SPI , I2C , sve eprome UV i flash do 32 pina . Dodani port [ tj latch 8 bitni] sluzi za setiranje upravljackih napona.
Zasto bi netko s Atmegom8515 za prosto programiranje UVeproma , flasheva , nvrama i sl [ do 32 pina] koristio shift registre [ mogao bi bez problema odradit i sve AMD/ST/SST flasheve do 48 pin-ova s byte opcijom] ?? zbog toga ne razumijem pitanje !!!! :-)
Da te pitam nesto, jesi li kad radio FW za bilo kakav programator za "paralelne" memorije ili bilo sto sto se programira ?? Nemoj da se naljutis sve je to dio rasprave.I mozda netko nesto is toga nauci .Zato sluze forumi , valjda.
Mozda nebi bilo lose da pokrenemo neki projekt u tom stilu ili za nesto potpuno drugo , mislim da bi nas rad na nekom zajednickom projektu vise priblizio stvarnosti i tad bi mogli da zaista ucimo jedni od drugih prave stvari iz prakse jer napisani kod govori bolje od tisucu rijeci.
Pozdrav
P.S. stvarno mozda bi bilo dobro da napravimo neku "anketu" dali i kakav projekt bi zeljeli da zajednicki pokrenemo i po mogucnosti odradimo !!?? Sto mislite ?? Puno bi bolje mogli suradjivat , animirali bi board i vidjeli gdje smo s znanjem i mozda uradil;i nesto korisno za sve nas.
Post Reply