Merge branch 'main' into ser_posix_cleanup

This commit is contained in:
Dawid Buchwald 2022-02-20 12:37:19 +01:00
commit cf67a76c23
3 changed files with 39 additions and 12 deletions

3
NEWS
View File

@ -133,6 +133,9 @@ Changes since version 6.4:
- Tweak programmer info formatting strings #872 - Tweak programmer info formatting strings #872
- Remove libhid support in ser_avrdoper.c in favor of libhidapi #882 - Remove libhid support in ser_avrdoper.c in favor of libhidapi #882
- Reduce jtag3 output verbosity #877 - Reduce jtag3 output verbosity #877
- Fix Curiosity Nano target voltage #878
- Smallest possible fix for PL2303HX #885
- Add missing USBtiny derived programmers #873
* Internals: * Internals:

View File

@ -886,6 +886,24 @@ programmer
usbpid = 0x0c9f; usbpid = 0x0c9f;
; ;
programmer
id = "arduinoisp";
desc = "Arduino ISP Programmer";
type = "usbtiny";
connection_type = usb;
usbvid = 0x2341;
usbpid = 0x0049;
;
programmer
id = "arduinoisporg";
desc = "Arduino ISP Programmer";
type = "usbtiny";
connection_type = usb;
usbvid = 0x2A03;
usbpid = 0x0049;
;
# commercial version of USBtiny, using a separate VID/PID # commercial version of USBtiny, using a separate VID/PID
programmer programmer
id = "ehajo-isp"; id = "ehajo-isp";
@ -896,6 +914,16 @@ programmer
usbpid = 0x0BA5; usbpid = 0x0BA5;
; ;
# commercial version of USBtiny, using a separate VID/PID
programmer
id = "iseavrprog";
desc = "USBtiny-based USB programmer, https://github.com/IowaScaledEngineering/ckt-avrprogrammer";
type = "usbtiny";
connection_type = usb;
usbvid = 0x1209;
usbpid = 0x6570;
;
programmer programmer
id = "micronucleus"; id = "micronucleus";
desc = "Micronucleus Bootloader"; desc = "Micronucleus Bootloader";
@ -914,16 +942,6 @@ programmer
usbpid = 0x0478; usbpid = 0x0478;
; ;
# commercial version of USBtiny, using a separate VID/PID
programmer
id = "iseavrprog";
desc = "USBtiny-based USB programmer, https://github.com/IowaScaledEngineering/ckt-avrprogrammer";
type = "usbtiny";
connection_type = usb;
usbvid = 0x1209;
usbpid = 0x6570;
;
programmer programmer
id = "butterfly"; id = "butterfly";
desc = "Atmel Butterfly Development Board"; desc = "Atmel Butterfly Development Board";

View File

@ -53,7 +53,7 @@ static void updi_set_rtsdtr_mode(PROGRAMMER* pgm)
static int updi_physical_open(PROGRAMMER* pgm, int baudrate, unsigned long cflags) static int updi_physical_open(PROGRAMMER* pgm, int baudrate, unsigned long cflags)
{ {
serial_recv_timeout = 100; serial_recv_timeout = 1000;
union pinfo pinfo; union pinfo pinfo;
pinfo.serialinfo.baud = baudrate; pinfo.serialinfo.baud = baudrate;
@ -155,6 +155,8 @@ static int updi_physical_send_double_break(PROGRAMMER * pgm)
serial_send(&pgm->fd, buffer, 1); serial_send(&pgm->fd, buffer, 1);
serial_recv(&pgm->fd, buffer, 1); serial_recv(&pgm->fd, buffer, 1);
serial_drain(&pgm->fd, 0);
if (serial_setparams(&pgm->fd, pgm->baudrate? pgm->baudrate: 115200, SERIAL_8E2) < 0) { if (serial_setparams(&pgm->fd, pgm->baudrate? pgm->baudrate: 115200, SERIAL_8E2) < 0) {
return -1; return -1;
} }
@ -196,10 +198,14 @@ int updi_physical_sib(PROGRAMMER * pgm, unsigned char * buffer, uint8_t size)
int updi_link_open(PROGRAMMER * pgm) int updi_link_open(PROGRAMMER * pgm)
{ {
unsigned char init_buffer[1];
if (updi_physical_open(pgm, pgm->baudrate? pgm->baudrate: 115200, SERIAL_8E2) < 0) { if (updi_physical_open(pgm, pgm->baudrate? pgm->baudrate: 115200, SERIAL_8E2) < 0) {
return -1; return -1;
} }
return updi_physical_send_double_break(pgm);
init_buffer[0]=UPDI_BREAK;
return updi_physical_send(pgm, init_buffer, 1);
} }
void updi_link_close(PROGRAMMER * pgm) void updi_link_close(PROGRAMMER * pgm)