Atmega328p nastavení pojistek

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
TomasN
Příspěvky: 64
Registrován: 15 dub 2016, 00:00
Bydliště: Šumperk

Atmega328p nastavení pojistek

#1 Příspěvek od TomasN »

Zdravím vespolek.
Mám Atmega328p + externí oscilátor 16MHz. Jelikož mi to jelo zřejmě na 1MHz (sekunda trvala 16s), tak jsem podle přiloženého obraázku nastavil fuse a zapsal v AVRDUDESS. Programuji to přes USBasp. Procesor mi přestal komunikovat a program, který jsem do něj předtím nahrál je asi vymazán.
Co s tím mohu udělat? Poradíte mi, jak nastavit fuse, aby procesor chodil na 16MHz?
Přílohy
fuse.jpg
Do L H E LB jsem zadal hodnoty z kalkulátoru a dal jsem WRITE na úrovni řádku s hodnotou L. Tak nevím, co jsem zmatlal...
(281.32 KiB) Staženo 334 x
Naposledy upravil(a) TomasN dne 22 led 2018, 14:06, celkem upraveno 1 x.
Uživatelský avatar
Spreer
Příspěvky: 26
Registrován: 24 led 2013, 00:00
Bydliště: Černá Hora, Brno

#2 Příspěvek od Spreer »

Chybi obrazek.
Zpravidla se stane ze je spatne nastaveny zdroj hodin. Vetsinou to lze vyresit pripojenim externich hogin z generatoru na jeden pin krystalu. Funguje zpravidla 32kHz a 1MHz. Nejhorsi co se mohlo stat je vypnuti ISP - timpadem pouze prepsat pojistky pomoci JTAG. To je jednodussi vymenit uPC
Uživatelský avatar
TomasN
Příspěvky: 64
Registrován: 15 dub 2016, 00:00
Bydliště: Šumperk

#3 Příspěvek od TomasN »

Vyměním procesor. Ale co dál. Měl jsem zatrzene, že je povolena komunikace přes ISP. Jak nastavit, aby to jelo na 16MHz?
Uživatelský avatar
kachle
Příspěvky: 276
Registrován: 23 lis 2015, 00:00

#4 Příspěvek od kachle »

Uživatelský avatar
TomasN
Příspěvky: 64
Registrován: 15 dub 2016, 00:00
Bydliště: Šumperk

#5 Příspěvek od TomasN »

Podle toho jsem to přece nastavoval...Jak budu doma,pošlu screenshot. Jsem odpovídal přes mobil,tak jsem si nevšiml..
Uživatelský avatar
TomasN
Příspěvky: 64
Registrován: 15 dub 2016, 00:00
Bydliště: Šumperk

#6 Příspěvek od TomasN »

Přidal jsem screenshot...Díky za každou radu
Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 00:00
Bydliště: Praha

#7 Příspěvek od FHonza »

Opravdu používáš externí hodiny a ne krystal ?

Vypni bit CKDIV8, jinak se dělí interní frekvence 8.

A opravdu je dobře programátor USBasp a port COM ? Myslím že by tam mělo být USB.
Uživatelský avatar
TomasN
Příspěvky: 64
Registrován: 15 dub 2016, 00:00
Bydliště: Šumperk

#8 Příspěvek od TomasN »

Aha. Tak to kecám. Používám krystal 16MHz....
Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 00:00
Bydliště: Praha

#9 Příspěvek od FHonza »

Viz obrázek. CKSEL0 a SUT nastav podle toho, jaký chceš čas po zapnutí a po resetu.
Přílohy
fuse.gif
(37.24 KiB) Staženo 287 x
Uživatelský avatar
TomasN
Příspěvky: 64
Registrován: 15 dub 2016, 00:00
Bydliště: Šumperk

#10 Příspěvek od TomasN »

Přes COM3 to v pohodě fungovalo. Týden jsem si hrál s programem, takže jsem to mockrát programoval. Teď to prostě nenadetekuje CPU.
Mohl by jsi mi to popsat jak por blbce? Nevím, jaký čas chci po startu a resetu. Nevím jaké jsou možnosti. Nerad bych odvalil další procesor...
Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 00:00
Bydliště: Praha

#11 Příspěvek od FHonza »

Procesor si velmi pravděpodobně "neodvalil", jenom má špatně nastavený zdroj hodin. Někdy je to těžší napravit, ale není to neřešitelné.

CKSEL0 a SUT určují "startovací" čas po připojení napájení a po resetu. Záleží jak rychle naběhne napájení. Ve "Fuse Calculatoru" jsou časy vidět v kombu. Důležité je zvolit "Ext. Crystal Osc Frequency 8- MHz". Na jistotu zvol 16k CK/14 CK + 65ms. Tj. jediné bude zaškrtnuté SPIEN.

Podrobnosti jsou v datasheetu na straně 52
Uživatelský avatar
nekmil
Příspěvky: 787
Registrován: 06 bře 2005, 00:00
Bydliště: Havířov

#12 Příspěvek od nekmil »

Low Byte: FF
High Byte: D9

A měl by běžet na kmitočtu krystalu. Rychlost náběhu hodin jsem nikdy moc neřešil.
Uživatelský avatar
TomasN
Příspěvky: 64
Registrován: 15 dub 2016, 00:00
Bydliště: Šumperk

#13 Příspěvek od TomasN »

Takže jsem v Bit select změnil vše na 1 až na položku SPIEN, kde mám 0. A teď co? Mám dát zapsat v které položce? Na úrovni L nebo na úrovni LB. Mám něco zatrhnout? Set lock nebo set Fuse? Vúbec netuším a nerad bych ten procík pájel znovu na desku...
Přílohy
fuse.jpg
(177.83 KiB) Staženo 317 x
Uživatelský avatar
TomasN
Příspěvky: 64
Registrován: 15 dub 2016, 00:00
Bydliště: Šumperk

#14 Příspěvek od TomasN »

Jinak jsem tam použil tento krystal:
https://www.svetsoucastek.cz/krystal-iq ... 37-p70323/
Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 00:00
Bydliště: Praha

#15 Příspěvek od FHonza »

Lock bity jsou úplně něco jiného, ty neměň !

Low fuse: 0xFF
High fuse: 0xDF
Extended fuse: 0xFF
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“