Jak probíhá programování AVR MCU? Čím zablokovat reset?

Blbá otázka ?

  • ANO
  • TAK TROCHU
  • NE

0 voters

zdravím
rád bych se zeptal jak v C naprogramovat AVR číp ady šel pak přeprogramovat
(programátor prý před programováním napřed vyšle několik impulsů na reset čip to pochopí a přepne do stavu programování a pak přímá signály od MOSI,MISO,SCK jenže když napíšu DDRC = 0xff; [jen př. atmega8 reset je na portu c] tak to přece nepude naprogramovat znova)
dík za radu

:arrow_right: administrator: přejmenováno z "programování AVR v C"

Programovani probiha pri resetu (signal reset aktivni po celou dobu programovani), takze je uplne jedno co mas nastaveny v programu. Mam dojem, ze u amega8 se ten reset da vypnout a pouzivat jako io pin, to pak uz asi mas smulu. Jinak programovani se da zablokovat jen nastavenim jedny pojistky. viz. datasheet

příkazem DDRC = 0xff nezablokuješ reset pin - to sedělá ve fuse bitech nastavením RSTDISBL do nuly - a pak ti samozřejmě nezbyde než programovat paralelně :slight_smile:

No a ked si zablokujes /RES pre pouzitie SPI programovania alebo si obdobne odpilis JTAG, VZDY je tu moznost paralelneho preprogramovania.
A je absolutne jedno v akom jazyku vytvoris program pre AVR.

  1. MCU rozumie jedine a jedine strojovemu kodu.
  2. pisat program priamo v strojovom kode je uz dnes tazky adrenalin
  3. a to preto, lebo sa od pradavnych dob “vymyslel” asembler
  4. to ale nie je nic ine ako strojovy kod zapisany takymi
    cudnymi mnemotecnickymi skratkami
  5. kazda z tychto skratiek je jednoznacne priraditelna
    k strojovej instrukcii
  6. a tiez plati, ze kazdej publikovanej strojovej instrukcii prislucha zapis
    v asembleri.
  7. Ale rozhodne ziaden mcu nerozumie asembleru.
    8 ) K tomu je potrebne pouzit program, ktory textovy subor obsahujuci
    program v asembleri prelozi do strojoveho kodu.
  8. tomuto programu sa hovori prekladac.
  9. ale kedze v asembleri je tazke vyjadrit vzletné myslienky
    programatorovho ducha, vymysleli sa jazykove konstrukcie
    umoznujuce tieto myslienky pokial mozno zrozumitelne
    a prehladne zapisat
  10. na rozne triedy uloh sa hodia rozne programovacie jazyky,
    preto ich je skoro ako hub po dazdi a urcite sa s tym nebude
    nic zasadne robit
  11. programovaci jazyk nema zmysel ak pren neexistuje prekladac
    ktory spravi to, ze abstraktne konstrukcie prelozi do strojoveho kodu
  12. Pre vyssie programovacie jazyky prakticky neexistuje moznost
    prelozit strojovy kod do tvaru daneho jazyka tak ako je tomu
    pri asembleri.
  13. ak chce niekto upravovat uz napisany a prelozeny program,
    az na uplne okrajove vynimky potrebuje zdrojovy kod programu

Nejako som z kontextu nepochopil co je “blba otazka”.
Je “blba otazka” pytat sa vobec ci sa ma AVR programovať v C, alebo je “blba otazka” AVR programovať v C?

Dopredu dakujem za objasnenie :slight_smile:

Martin:
zajímá mně jestli je blbý se ptát jak to správně naprogramovat jestli to náhodou už všichni nevíte a jen já se ptam na hovadini :smiley: no víc zaštrkávaj ano ale přímá odpověď :question:
v C chci programovat jen proto že je mi bližší
kuto:
jo datašít mam ten 300 strankovej a v tom je ten problem nemohu to tam najít

mam plán B atmege16 má reset zvlášt ale je draší stejnak by bylo lepší znát jak to správne naprogramovat taková attina13 má taky společní reset

Fuse bity jsou v datasheetu na strane 220 “Memory programming/Fuse bits”.

Reset nemá s portem C nic společného.

Správně je to takto:
Pin 1 může fungovat buď jako vývod Portc.6 nebo jako RESET.
U nového procesoru je nastavený jako RESET a od portu PC6 je odpojený.
Takže zápis do portu C nemá na tento pin žádný vliv.

Existuje postup jak změnit tento pin na port PC6, ale moc se nepoužívá,
protože čip pak nejde seriově programovat (tj přes MOSI, MISO atd.).
Bez paralelního programátoru už potom není možné ani vrátit tuto změnu.

Aha, uz som to asi pochopil. Len ma zmiatlo, ze je okolo toho anketa :slight_smile:

Otazka je logicka a spravna. Odpovedou je kapitola o FUSES v datasheete.
Tvoja obava vobec nesuvisi v C-ckom. Rovnako by si sa musel obavat zablokovania resetu aj pri programovani v ASM. To som sa snazil mojimi bodmi objasnit. Ci C alebo ASM, alebo BASCOM, alebo nejaky Pascal, vzdy je vysledok strojovy kod. Samotnym programom pri manipulacii s DDRx si reset neodstavis. Poistka na reset (pripadne aj jtag) urcuje, ci dany pin je pripojeny na DDRx alebo na /RES.

dík vám všem už jsem to ozkoušel je jedno zda napíšu na reset pin nákej udaj stále funguje jako reset aspon dokut nepřepíšu FUSES engbedded.com/fusecalc/