From f916ba39f61d8374abcddac3d27164c20a60a034 Mon Sep 17 00:00:00 2001 From: MX682X <58419867+MX682X@users.noreply.github.com> Date: Fri, 29 Nov 2024 22:25:41 +0100 Subject: [PATCH] experiment for attiny15 plus other stuff --- src/avrdude.conf.in | 2 +- src/pickit5.c | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/avrdude.conf.in b/src/avrdude.conf.in index 90220df2..ba1c0434 100644 --- a/src/avrdude.conf.in +++ b/src/avrdude.conf.in @@ -3147,7 +3147,7 @@ programmer # pickit5_dw prog_modes = PM_debugWIRE; extra_features = HAS_VTARG_READ; connection_type = usb; - baudrate = 200000; # dW default clock + baudrate = 125000; # default clock for ISP on switch usbvid = 0x04d8; usbpid = 0x9036, 0x9012, 0x9018; # PK5, PK4 (pic mode), snap (pic mode) ; diff --git a/src/pickit5.c b/src/pickit5.c index 686f0ee9..29d0dfcd 100644 --- a/src/pickit5.c +++ b/src/pickit5.c @@ -522,6 +522,13 @@ static void pickit5_enable(PROGRAMMER *pgm, const AVRPART *p) { mem->page_size = mem->size < 1024? mem->size : 1024; mem->readsize = mem->size < 1024? mem->size : 1024; } + if((mem = avr_locate_eeprom(p))) { + if (mem->mode == 0x04) { + mem->page_size = 0x04; + mem->readsize = 0x04; + mem->blocksize = 0x04; + } + } } if(both_xmegajtag(pgm, p) || both_pdi(pgm, p)) { if((mem = avr_locate_flash(p))) { @@ -1305,6 +1312,8 @@ static void pickit5_dw_switch_to_isp(const PROGRAMMER *pgm, const AVRPART *p) { pmsg_error("Failed switching scripts, aborting.\n"); return; } + pmsg_notice("Switched to ISP mode"); + pickit5_set_sck_period(pgm, 1.0 / my.actual_pgm_clk); pickit5_program_enable(pgm, p); } } @@ -1607,7 +1616,7 @@ static int pickit5_read_prodsig(const PROGRAMMER *pgm, const AVRPART *p, return 0; // debugWire } } else { - rc = -6; // Something went wrong + return 0; // part has no prodsig nor ReadConfigmem } } if (rc >= 0) { // No errors, copy data