avrisp 0.3.1

AVR ISP library.
Documentation
#![no_std]

use crate::Memory;
use crate::Signature;
use crate::Specs;

pub const ATMEGA_32: Specs = Specs {
    timeout: 0xc8,
    stab_delay: 0x64,
    cmd_exe_delay: 0x19,
    synch_loops: 0x20,
    byte_delay: 0x00,
    pool_value: 0x53,
    pool_index: 0x03,
    pre_delay: 1,
    erase_poll_method: 0,
    erase_delay: 20,
    fuse_poll_index: 4,
    lock_poll_index: 4,
    signature_poll_index: 4,
    osccal_poll_index: 4,
    post_delay: 1,
    reset_polarity: true,
    flash: Memory {
        block_size: 64,
        page_size: 128,
        start: 0,
        size: 32768,
        mode: 0x21,
        delay: 10,
        cmd: (0x40, 0x4c, 0x20),
        poll: (0xff, 0x00),
    },
    eeprom: Memory {
        block_size: 64,
        page_size: 4,
        start: 0,
        size: 1024,
        mode: 0x04,
        delay: 20,
        cmd: (0xc0, 0x00, 0xa0),
        poll: (0xff, 0xff),
    },
    signature: Signature {
        bytes: (0x1e, 0x95, 0x02),
    },
};

pub const ATMEGA_2560: Specs = Specs {
    timeout: 200,
    stab_delay: 100,
    cmd_exe_delay: 25,
    synch_loops: 32,
    byte_delay: 0,
    pool_value: 0x53,
    pool_index: 3,
    pre_delay: 1,
    erase_poll_method: 0,
    erase_delay: 55,
    fuse_poll_index: 4,
    lock_poll_index: 4,
    signature_poll_index: 4,
    osccal_poll_index: 4,
    post_delay: 1,
    reset_polarity: true,
    flash: Memory {
        block_size: 64,
        size: 262144,
        start: 0,
        page_size: 256,
        mode: 0x21,
        delay: 10,
        cmd: (0x40, 0x4c, 0x20),
        poll: (0xff, 0x00),
    },
    eeprom: Memory {
        block_size: 64,
        page_size: 8,
        start: 0,
        size: 4096,
        mode: 0x04,
        delay: 20,
        cmd: (0xc0, 0x00, 0xa0),
        poll: (0xff, 0xff),
    },
    signature: Signature {
        bytes: (0x1e, 0x98, 0x01),
    },
};