Sziasztok!
Az alábbi problémám lenne.
SPIEN opció a HIGH fusebit beállításoknál található. Ahogy olvastam az adatlapokon az az ISP programozás hozzáférés engedélyezés/tiltása.
De ezzel az a gáz hogy nekem ez az opció NULLÁN van mind a 4 mikrokontrollernél, és csak az egyikből tudom visszaolvasni a tartalmat (ATmega8)
A másik 3-nál pedig ha az alap beállításokkal írom a procikat utána bármikor tudom törölni/újraírni. Az-az hozzáférhető.
De ha a fuse biteket beállítom, mert muszáj hogy működjenek a procik, és úgy írom meg őket, akkor utána nem tudom őket olvasni/írni.
Pedig SPIEN funkcióhoz nem is nyúltam. Maradt az alap beállítás (0).
Ha az adatlapokat megnézitek ott is 0 az alapbeállítás (engedélyezve van).
Itt vannak a FUSE BIT beállításaim:
ProgISP-t használok írásra.
Az alap az azt akarja jelenteni hogy a progi beállít egy alap beállítást a fusebitekhez (opcionális beállítás)
ATmega8515
Alap->LOW:E1 HI:D9
Beállított->LOW:DF HI:D9
ATmega8
Alap->LOW:E1 HI:D9
Beállított->Maradt az alap beállítás!
ATTiny2313
Alap->LOw:62 HI:DF
Beállított->LOW:DF HI:D9
ATmega16
Alap->LOW:E1 HI:99
Beállított->LOW:CF HI:19
De a procikat újra lehet írni más hardverrel (párhuzamos) csak nem ISP-n keresztül.
És nem halottak.
Ha tud valaki valamit az jelentkezzen.
Megköszönném mert még csak kezdő vagyok a területen.
Szia Isaac!
Ott lesz a gond, hogy a programozód nem ad órajelet a chipnek.
Soros programozáshoz szükség van a CKSEL bitekkel kiválasztott
órajelforrásra is -- kivéve persze, ha a belső óraoszcillátort
választottad, ami az alapbeállítás.
Ezt a tényt az adatlapok is megemlítik, bár jól eldugva (én is
csak akkor találtam meg, amikor már kerestem...):
> Depending on CKSEL fuses, a valid clock must be present.
Nálad viszont (pont a működő ATmega8-at kivéve) mindegyik chip
low fuse bitjei "külső kvarc"-ra vannak állítva. (Kvarc híján
ilyenkor azt is megteheted, hogy TTL szintű négyszögjelet adsz
az X1 lábra. De ha egyik sincs, akkor a soros programozás nem
működik, a szoftver valószínűleg fel sem ismeri a chipet.)
Ha nincs ilyen lehetőség a programozódon, tegyél a programozód
és a chip közé egy foglalatot, és forrassz rá egy 1 MHz körüli
kvarcot (az X1 és X2 lábakra), vagy hajtsd meg az X1 lábat egy
1 MHz-es jellel. Ezzel már mennie kell.
Még egy tipp: az órajel frekvenciája legyen legalább háromszor
akkora, mint a soros programozó ütemjele (SCK). Ez csak akkor
szokott gondot okozni, ha 100 kHz alá merészkedik az ember, de
a legtöbb programozó fel van készítve erre (pl. avrdude -i).
Sok sikert!
Jibaro
0
Szia!
Szóval akkor ha kapcsolási rajzon szerepel kvarc, akkor mindenképp kell az íráshoz és a visszaolvasáshoz is. Mert a fuse bitek is úgy vannak beállítva hogy a kűlső kvarcot használja. Az Atmega8-asnál pedig nincs kűlső kvarc a kapcsolásban. Igaz pedig erre figyelmeztettek még régebben, csak nem is gondoltam rá így hirtelen.
0
Szia Isaac!
Azt megteheted, hogy amíg csak fejleszted a chip szoftverét, a
belső oszcillátort használod (viszonylag bőséges a választék),
és csak akkor programozod át a fuse biteket, amikor már "kész"
a szoftver. (Kész szoftver persze nincs. :-))
Sokan úgy kerülik meg a problémát, hogy nem építenek különálló
AVR-programozót, hanem ISP-csatlakozót (in-system programming)
terveznek az áramkörbe. Igaz, ilyenkor oda kell figyelni arra
a bizonyos három lábra (MISO, MOSI, SCK), így viszont egyrészt
nem kell átdugdosni az IC-t a programozóba, másrészt az órajel
programozás és működés közben ugyanúgy rendelkezésre áll.
Az első AVR-programozómról én is lefelejtettem az órajelet, de
azóta építettem egy másikat: ezen egy 28 MHz-es oszcillátor és
egy 74HC4040 dolgozik, így jumperekkel lehet beállítani a chip
órajelét, széles határok között.
Jibaro
0
Szia!
Tegnap este fontolóra vettem hogy inkább ISP-n keresztűl kellene felprogramozni a procikat, mert így legalább körülötte van minden ami kell.
A te megoldásod az órajel beállítására azt esetleg elkérhetném?
Megköszönném!
0
Szia Isaac!
Nagyon egyszerű az egész -- összesen egy oszcillátorból és egy
sokbites bináris számlálóból áll, amit frekvenciaosztó gyanánt
használok. Az oszcillátor kimenetét a számláló órabemenetére,
a számláló sok kimenetét pedig egy sor jumperre kötöttem (úgy,
mint egy sokállású kapcsolóra): az első jumperen így az órajel
frekvenciájának fele jelenik meg, a másodikon a negyede stb.
A jumperek másik lábait összekötöttem és az AVR chip X1 lábára
vezettem. Persze mindig csak egy átkötést szabad feltenni; az
így kiválasztott kimenet adja az AVR chip órajelét. (Ha egyik
jumper sincs átkötve, akkor ugyanúgy nincs órajel, mint a sima
programozóknál; ez akkor lehet hasznos, ha tényleg I/O-lábként
működtetjük az X1-et.)
Oszcillátort százféleképpen lehet építeni, én egy kis fémtokos
kvarcoszcillátort használtam (mert az volt otthon); 10 MHz-től
30 MHz-ig nagyjából bármi megfelel.
A számláló sem kritikus: sokfokozatút érdemes választani, hogy
minél többféle órajel közül válogathass; a 74HC4040-es például
12-fokozatú. De ugyanúgy megfelel a 74HC4024, sőt 74LS393-mal
vagy más számlálókkal is működnie kell.
Küldhetek kapcsolási rajzot is, de nem akarlak megsérteni. ;-)
Sok sikert!
Jibaro
0
Hali!
Hát azért elfogadnám a rajzot.
Próbálkoztam összerakni a EAGLE-ben, de a TTL ic-s témát még soha nem bolygattam.
Ja és megpróbáltam az egyik chip-et ISP-n keresztül (mert elkészült a panel).
És frankón működik. (ATmega16-os chippel szerelt).
Ja és esetleg tudsz valami oldalt ahol a fuse bitekkel részletesen foglalkoznak? (Leírás)
Vagy ha esetleg neked valami?
0
Szia Isaac!
Lásd a csatolmányt! (Fülesmester után szabadon. ;-))
Az AVR-programozó "érdemi" részét nem rajzoltam le, csak magát
az óragenerátort; elvileg bármilyen programozóhoz használható.
Mindkét IC-nek megfelel az 5 voltos táp, amit érdemes mindjárt
a tok vagy a foglalat alatt szűrni egy-egy 100 nF-os kondival.
(Ugyanezt tedd a mikrovezérlővel is, ha még nincs neki.)
A nem használt inverterek bemenetét kösd a földre, mert a CMOS
bemenetek nem szeretnek lebegni. (Nem "egytokos" oszcillátort
rajzoltam, mert elég drága, de ha van kéznél ilyened, az egész
kvarcos-inverteres kapcsolást helyettesítheted vele.)
> esetleg tudsz valami oldalt ahol a fuse bitekkel részletesen
> foglalkoznak?
Pontosan mire vagy kíváncsi? Ha az alapok érdekelnek, azt pl.
itt megtalálod (bár ezekkel szerintem már tisztában vagy):
http://www.ladyada.net/learn/avr/fuses.html
http://electrons.psychogenic.com/modules/arms/art/14/AVRFusesHOWTOGuide.php
Bevezetőnek ez elég, de az aprólékos részleteket mindig a chip
adatlapjából kell kikeresni. Még a népszerű fuse calculatorok
eredményét se vedd készpénznek; inkább számold ki kézzel azt a
néhány bitet, és csak ellenőrzésre használd a calculatort.
Még egy-két apró meglepetés, amire érdemes felkészülni:
http://www.ladyada.net/library/ucannoyances.html
http://www.avrfreaks.net/wiki/index.php/Documentation:Things_That_Are_Br...
Gratula az ATmega16-hoz! :-)
Jibaro
0