Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Attiny4313 - Czujnik 18b20 po przesiadce przestał działać

rastabandita 23 Paź 2012 23:12 816 0
  • #1 23 Paź 2012 23:12
    rastabandita
    Poziom 9  

    Cześć. Po przesiadce z Attiny2313 na Attiny4313 identycznie wgrany program przez WinAVR przestał działać. Konkretnie zamiast temperatury wyświetla mi wartość +6550,8. Korzystam z bilbioteki "rklibavr_20060316"
    Jedyne co zmieniłem to w makefile
    MCU = attiny4313. Co za tym idzie musiałem dodać wpis do avrdude.conf który wygooglowałem na temat attiny4313
    Całość podłączone mam na AVT-2500. Czujnik 18b20 podłączyłem zwierając wyjścia GND i VCC do masy a DQ podłączyłem na wejście portu D
    Czym może być to spowodowane?

    Kod dodany do avrdude.conf

    Code:
    #------------------------------------------------------------ 
    
    # ATtiny4313
    #------------------------------------------------------------

    part
    id = "t4313";
    desc = "ATtiny4313";
    has_debugwire = yes;
    flash_instr = 0xB2, 0x0F, 0x1F;
    eeprom_instr = 0xBB, 0xFE, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
    0xBA, 0x0F, 0xB2, 0x0F, 0xBA, 0x0D, 0xBB, 0xBC,
    0x99, 0xE1, 0xBB, 0xAC;
    stk500_devcode = 0x23;
    ## Use the ATtiny26 devcode:
    avr910_devcode = 0x5e;
    signature = 0x1e 0x92 0x0d;
    pagel = 0xD4;
    bs2 = 0xD6;
    reset = io;
    chip_erase_delay = 9000;

    pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
    "x x x x x x x x x x x x x x x x";

    chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
    "x x x x x x x x x x x x x x x x";

    timeout    = 200;
    stabdelay    = 100;
    cmdexedelay    = 25;
    synchloops    = 32;
    bytedelay    = 0;
    pollindex    = 3;
    pollvalue    = 0x53;
    predelay    = 1;
    postdelay    = 1;
    pollmethod    = 1;

    pp_controlstack =
    0x0E, 0x1E, 0x0E, 0x1E, 0x2E, 0x3E, 0x2E, 0x3E,
    0x4E, 0x5E, 0x4E, 0x5E, 0x6E, 0x7E, 0x6E, 0x7E,
    0x26, 0x36, 0x66, 0x76, 0x2A, 0x3A, 0x6A, 0x7A,
    0x2E, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
    hventerstabdelay = 100;
    progmodedelay = 0;
    latchcycles = 5;
    togglevtg = 1;
    poweroffdelay = 15;
    resetdelayms = 1;
    resetdelayus = 0;
    hvleavestabdelay = 15;
    chiperasepulsewidth = 0;
    chiperasepolltimeout = 10;
    programfusepulsewidth = 0;
    programfusepolltimeout = 5;
    programlockpulsewidth = 0;
    programlockpolltimeout = 5;

    memory "eeprom"
    size = 256;
    paged = no;
    page_size = 4;
    min_write_delay = 4000;
    max_write_delay = 4500;
    readback_p1 = 0xff;
    readback_p2 = 0xff;
    read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x",
    "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";

    write = "1 1 0 0 0 0 0 0 0 0 0 x x x x x",
    "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";





    loadpage_lo   = " 1 1 0 0 0 0 0 1",
    " 0 0 0 0 0 0 0 0",
    " 0 0 0 0 0 0 a1 a0",
    " i i i i i i i i";

    writepage   = " 1 1 0 0 0 0 1 0",
    " 0 0 x x x x x x",
    " a7 a6 a5 a4 a3 a2 0 0",
    " x x x x x x x x";

    mode    = 0x41;
    delay    = 6;
    blocksize   = 4;
    readsize   = 256;
    ;
    memory "flash"
    paged = yes;
    size = 4096;
    page_size = 64;
    num_pages = 64;
    min_write_delay = 4500;
    max_write_delay = 4500;
    readback_p1 = 0xff;
    readback_p2 = 0xff;
    read_lo = " 0 0 1 0 0 0 0 0",
    " 0 0 0 0 0 a10 a9 a8",
    " a7 a6 a5 a4 a3 a2 a1 a0",
    " o o o o o o o o";

    read_hi = " 0 0 1 0 1 0 0 0",
    " 0 0 0 0 0 a10 a9 a8",
    " a7 a6 a5 a4 a3 a2 a1 a0",
    " o o o o o o o o";

    # The information in the data sheet of April/2004 is wrong, this works:
    loadpage_lo = " 0 1 0 0 0 0 0 0",
    " 0 0 0 x x x x x",
    " x x x x a3 a2 a1 a0",
    " i i i i i i i i";

    # The information in the data sheet of April/2004 is wrong, this works:
    loadpage_hi = " 0 1 0 0 1 0 0 0",
    " 0 0 0 x x x x x",
    " x x x x a3 a2 a1 a0",
    " i i i i i i i i";

    # The information in the data sheet of April/2004 is wrong, this works:
    writepage = " 0 1 0 0 1 1 0 0",
    " 0 0 0 0 0 a10 a9 a8",
    " a7 a6 a5 a4 x x x x",
    " x x x x x x x x";

    mode    = 0x41;
    delay    = 6;
    blocksize   = 32;
    readsize   = 256;
    ;
    # ATtiny4313 has Signature Bytes: 0x1E 0x92 0x0D.
    memory "signature"
    size = 3;
    read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
    "x x x x x x a1 a0 o o o o o o o o";
    ;
    memory "lock"
    size = 1;
    write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
    "x x x x x x x x 1 1 i i i i i i";
    read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
    "x x x x x x x x x x o o o o o o";
    min_write_delay = 9000;
    max_write_delay = 9000;
    ;

    memory "lfuse"
    size = 1;
    write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
    "x x x x x x x x i i i i i i i i";

    read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
    "x x x x x x x x o o o o o o o o";
    min_write_delay = 9000;
    max_write_delay = 9000;
    ;

    memory "hfuse"
    size = 1;
    write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
    "x x x x x x x x i i i i i i i i";

    read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
    "x x x x x x x x o o o o o o o o";
    min_write_delay = 9000;
    max_write_delay = 9000;
    ;

    memory "efuse"
    size = 1;
    write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
    "x x x x x x x x x x x x x x x i";

    read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
    "x x x x x x x x o o o o o o o o";
    min_write_delay = 9000;
    max_write_delay = 9000;
    ;
    # The Tiny4313 has calibration data for both 4 MHz and 8 MHz.
    # The information in the data sheet of April/2004 is wrong, this works:

    memory "calibration"
    size = 2;
    read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
    "0 0 0 0 0 0 0 a0 o o o o o o o o";
    ;
    ;


    Kod Programu
    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 0