Dotaz na převod z C do HEX

Mám na vás zkušené prosbu,Chtěl jsem si vyrobit spínač na DMX ze stránky
ulrichradig.de/home/index.p … x-switch-2
pod projektem je archiv s programem.
kde je pouze program napsaný v C…Já bych potřeboval soubor hex…a prosím ještě o radu,jak mají být nastavené pojistky na ATMEGA88…Nějak se mi nedaří to rozchodit,už nevím kde mám hledat…Začínám se AVR teprve učit,ale někde dělám chybu a nevím kde.prosím o pomoc

Chce to jenom trochu líp hledat - ve staženém archivu je i HEX soubor. V pojistkách nebude nic zásadního, jen musíš ATmega88 nastavit tak, aby běžel na 12 MHz z externího krystalu s kmitočtem 12 MHz (záměrně píšu 12 MHz v obou případech, protože i při krystalu 12MHz může být výsledný kmitočet dělený prescalerem - to je zároveň nápověda, na co si dát pozor…). Jak pojistky nastavít najdeš v datasheetu. Jediné, na co si v případě pojistek musíš dát pozor je, aby sis nezakázal RESET (pojistka RSTDISBL). Všechno ostatní se dá vyřešit. RSTDISBL bys pak musel odblokovat HV paralelním programováním.

Vidím ale problém ve špatném zapojení na straně 220V. Tam jsou propojené piny X1-5 a X1-6 a vzhledem k tomu, že ja na ně připojené trafo přes pojistku, měla by tam být fáze a na X1-3 pak nula. Jenže v takovém případě se na výstupu spíná nula (X1-3 a X1-1) a fáze jde do zařízení přímo, což by být nemělo. V případě, že by na X1-3 byla fáze, pak je pojistka na nuláku, což by taky nemělo být… Na funkčnost to vliv nemá, ale může to mít vliv na bezpečnost v případě nějaké poruchy.

Co se týče souboru hex…ten už mám,stáhl jsem to nějak bez té složky,kde je i hex…na výstupu to jde ještě přes panelovou pojistku,takže je to v pohodě,F1 chrání desku a F2 bude chránit výstup relé…jinak v datasheetu jsem pěkně zmatenej z těch pojistek,co se týče toho co jsem pochopil,mám je nastavené a stejně mám ještě někde chybu,jen nevím kde…Fuse low 3F…Fuse High DF a fuse Ext F9…

tak se mi to podařilo rozchodit,fuse mám Low 9E ,High DF a Ext F9…Takže děkuji Ti za posunutí a vysvětlení některých pojmů :slight_smile: Někdy staačí základ,kde začít…člověk už je z toho někdy opravdu magor,když se v tom rejpe a ono to pořád nechodí a nechodí… :slight_smile: :slight_smile: Ještě jednou děkuji

Dobře, žes to nevzdal, když se Ti řešení nenaservírovalo na zlatém podnosu, ale že sis to našel. Zkusím tedy dovysvětlit, co dané pojistky znamenají. Pojistky u procesorů (a hlavně jejich umístění) jsou různě, takže datasheet potřebuješ pokaždé.

EXT :
bity 7-3 nejsou použité - nechávají se na 1 (nenaprogramováno)
bity 2-1 = BOOTSZ1:0 udávají velikost paměti pro bootloader v případě, že je BOOTRST naprogramována
bit 0 = BOOTRST - pokud je naprogramována, po resetu procesor startuje na adresu určenou BOOTSZ1:0, jinak skáče na 0

High :
bit 7 = RSTDISBL - RESET pin se dá použít jako IO, pokud naprogramuješ tuto pojistku. V tomto případě se ale procesor dá znova přeprogramovat pouze :

  1. pokud máš napsaný tzv. bootloader nebo pokud se umí aplikace přeprogramovat sama (vetšinou se ale na to používá bootloader).
  2. pokud použiješ HV programování.
    bit 6 = DWEN - při naprogramování povoluje debugWIRE
    bit 5 = SPIEN - z výroby je napogramovaná a pokud bys ji zakázal, znemožníš nahrávání přes SPI. Musel bys ji ale zakázat přes HV programování, protože přes SPI programování není přístupná.
    bit 4 = WDTON - trvale zapíná WatchDog, který pak programově nelze vypnout
    bit 3 = EESAVE - pokud ji naprogramuješ, pak chip erase nemaže EEPROM
    bity 2-0 = BODLEVEL2:0 - Nastavují napětí, při kterém dochází k resetu procesoru - hodnoty jsou v datasheetu. Používá se v případě použtí interní EEPROM a pak pokud máš periferie háklivé na nízké napětí.

Low :
bit 7 = CKDIV8 - nastavuje prescaler systémových hodin na 8 při startu MCU. Prescaler se dá nastavovat i programově, takže není nutné tuto pojistku programovat - tohle je pojistka, která Ti způsobila nefunkčnost zařízení, protože to sice jelo, ale systémové hodiny byly dělené 8, tudíž vše bylo 8x pomalejší. A vzhledem k tomu, že se tam příkazy posílají po UARTu, pak byla i rychlost UARTu nastavená de-facto na 1/8 toho, co teď.
bit 6 = CKOUT - pokud je naprogramovaná, jsou systémové hodiny posílány na pin CLKO
bity 5-4 = SUT1:0 - startup time - rozběh procesoru po zapnutí napájení kvůli stabilizaci oscilátoru - hodnoty viz datasheet
bity 3-0 = CKSEL3:0 - výběr systémových hodin MCU (pohonu MCU) - opět viz datasheet

P.S.: Tohle všechno je ale v tom datasheetu napsané …