content/prologix.rst

Fri, 18 Jan 2019 12:33:39 +0100

author
David Douard <david.douard@logilab.fr>
date
Fri, 18 Jan 2019 12:33:39 +0100
changeset 111
25cae2c53694
parent 109
96e9f64b86ed
child 115
6b6e13653348
permissions
-rw-r--r--

[hp34970a] fixes and improvements on the protocol description

30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
1 ==================================================
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
2 Updating the Prologix USB-GPIB firmware on Linux
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
3 ==================================================
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
4
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
5
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
6 :author: David Douard
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
7 :Category: Electronics
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
8 :Tags: test equipment, GPIB, Prologix
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
9
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
10
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
11 Prologix_ sell several low cost GPIB controllers. I have one their old
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
12 deprecated dongle "GPIB-USB Controller 4.2" and had fun with it with
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
13 my pygpibtoolkit_ project.
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
14
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
15 It's a very simple dongle consisting in an Atmel ATMega164P
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
16 microcontroller and a FTDI FT245FL chip for the USB<->RS232
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
17 convertion.
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
18
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
19 .. image:: {filename}images/prologix/prologix_4.2_small.jpg
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
20 :alt: The Prologix GPIB-USB controller.
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
21
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
22 Unfortunately, it's no longer available (I find this unfortunate
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
23 because it was really cheap, and very useful for hobbyist like me).
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
24
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
25
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
26 Upgrading the buggy firmware
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
27 ============================
109
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
28
30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
29 My controller had the version 5.2 of the firmware, which really is
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
30 buggy. For example if a device on the GPIB bus is continuously sending
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
31 data and the controller is in "auto" mode (in which it automatically
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
32 perform a reading of the available data), then it was impossible to
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
33 send it commands anymore.
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
34
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
35 Unfortunately, the Prologix web site only describe the product as "No
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
36 longer in production". There is still an available FAQ_ and the `user
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
37 manual`_, but the firmware update procedure is not described any more.
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
38
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
39 However, the `directory serving all the firmwares`_ for their products
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
40 still have the firmwares for this device. The latest published version
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
41 is the `4.2-6.95`_ (in fact, it's the version 6.95 of the firware for
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
42 the version 4.2 of the USB-GPIB controller).
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
43
109
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
44 The content of this archive is:
30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
45
109
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
46 .. code-block:: bash
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
47
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
48 unzip -l ~/Downloads/gpib-usb-4.2-6.95.zip
30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
49 Archive: /home/david/Downloads/gpib-usb-4.2-6.95.zip
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
50 Length Date Time Name
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
51 --------- ---------- ----- ----
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
52 244837 2007-07-08 23:57 avrdude.conf
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
53 186880 2007-07-08 23:57 avrdude.exe
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
54 31162 2010-09-21 10:57 m16.hex
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
55 31542 2010-09-21 10:57 m164.hex
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
56 61440 2010-06-16 18:21 PxUpdate.exe
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
57 409 2009-01-21 11:00 readme.txt
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
58 --------- -------
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
59 556270 6 files
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
60
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
61
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
62 Obviously, Windows stuff only, and no documentation on how to upgrade
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
63 the device on Linux.
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
64
56
3d0bed1a79c8 [prologix] typos
David Douard <david.douard@logilab.fr>
parents: 44
diff changeset
65 But the fact it uses avrdude_ is good sign it might be possible to find solutions
30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
66 on Linux. According the names of the hex files, it seems there have 2
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
67 versions of the hardware, one with a ATMega16 and one with a
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
68 ATMega164P (mine uses a 164P).
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
69
56
3d0bed1a79c8 [prologix] typos
David Douard <david.douard@logilab.fr>
parents: 44
diff changeset
70 Now, the question is: how is the AVR programmed? There are dozens of
30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
71 'backends' available on avrdude.
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
72
56
3d0bed1a79c8 [prologix] typos
David Douard <david.douard@logilab.fr>
parents: 44
diff changeset
73 Doing a ``string`` on the main exe in the archive, PxUpdate.exe,
109
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
74 shows a few interesting things, especially this:
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
75
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
76 .. code-block:: bash
30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
77
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
78 strings PxUpdate.exe | grep -i avr
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
79 avrdude.exe -p %s -P \\.\COM%d -c avr109 -u -e -U flash:w:%s
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
80 AVRBOOT
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
81
109
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
82
56
3d0bed1a79c8 [prologix] typos
David Douard <david.douard@logilab.fr>
parents: 44
diff changeset
83 So we know the command line used by this firmware update tool, and we
30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
84 known it uses the AVR's bootloader as decribed in the AVR109_
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
85 application note.
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
86
109
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
87 But any attempt to read the content of the flash using:
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
88
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
89 .. code-block:: bash
30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
90
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
91 avrdude -p m164p -c avr109 -U flash:r:flash.hex:i
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
92
109
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
93 fails stating the avr does not respond:
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
94
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
95 .. code-block:: bash
30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
96
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
97 avrdude -P /dev/ttyUSB0 -p m164p -c avr109 -v -v -U flash:r:flash2.hex:i
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
98
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
99 avrdude: Version 6.1, compiled on Sep 11 2014 at 20:00:34
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
100 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
101 Copyright (c) 2007-2014 Joerg Wunsch
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
102
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
103 System wide configuration file is "/etc/avrdude.conf"
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
104 User configuration file is "/home/david/.avrduderc"
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
105 User configuration file does not exist or is not a regular file, skipping
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
106
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
107 Using Port : /dev/ttyUSB0
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
108 Using Programmer : avr109
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
109 AVR Part : ATmega164P
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
110 Chip Erase delay : 55000 us
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
111 PAGEL : PD7
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
112 BS2 : PA0
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
113 RESET disposition : dedicated
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
114 RETRY pulse : SCK
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
115 serial program mode : yes
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
116 parallel program mode : yes
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
117 Timeout : 200
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
118 StabDelay : 100
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
119 CmdexeDelay : 25
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
120 SyncLoops : 32
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
121 ByteDelay : 0
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
122 PollIndex : 3
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
123 PollValue : 0x53
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
124 Memory Detail :
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
125
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
126 Block Poll Page Polled
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
127 Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
128 ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
129 eeprom 4 10 128 0 no 512 4 0 9000 9000 0xff 0xff
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
130 flash 33 6 128 0 yes 16384 128 128 4500 4500 0xff 0xff
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
131 lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
132 lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
133 hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
134 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
135 calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
136
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
137 Programmer Type : butterfly
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
138 Description : Atmel AppNote AVR109 Boot Loader
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
139
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
140 Connecting to programmer: .avrdude: ser_recv(): programmer is not responding
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
141 avrdude: butterfly_recv(): programmer is not responding
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
142
109
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
143
30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
144 So there is something else required to put the device under firmware
56
3d0bed1a79c8 [prologix] typos
David Douard <david.douard@logilab.fr>
parents: 44
diff changeset
145 upgrade state. I was wondering if there is an undocumented controller
3d0bed1a79c8 [prologix] typos
David Douard <david.douard@logilab.fr>
parents: 44
diff changeset
146 command (anything starting with ``++`` is interpreted as a controller
109
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
147 command), so I searched for the ``++`` string in ``PxUpdate.exe``:
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
148
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
149 .. code-block:: bash
30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
150
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
151 strings PxUpdate.exe | grep ++
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
152 Microsoft Visual C++ Runtime Library
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
153 ++rst
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
154
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
155 No magic undocumented command, but a reset of the controller is
109
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
156 performed by this tool. Let's try this:
30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
157
109
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
158 .. code-block:: bash
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
159
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
160 stty -F /dev/ttyUSB0 speed 115200 cs8 -cstopb -parenb
30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
161 echo -en '++rst\r' > /dev/ttyUSB0; avrdude -P /dev/ttyUSB0 -p m164p -c avr109 -v -v -U flash:r:flash2.hex:i
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
162 avrdude: Version 6.1, compiled on Sep 11 2014 at 20:00:34
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
163 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
164 Copyright (c) 2007-2014 Joerg Wunsch
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
165
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
166 System wide configuration file is "/etc/avrdude.conf"
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
167 User configuration file is "/home/david/.avrduderc"
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
168 User configuration file does not exist or is not a regular file, skipping
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
169
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
170 Using Port : /dev/ttyUSB0
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
171 Using Programmer : avr109
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
172 AVR Part : ATmega164P
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
173 Chip Erase delay : 55000 us
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
174 PAGEL : PD7
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
175 BS2 : PA0
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
176 RESET disposition : dedicated
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
177 RETRY pulse : SCK
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
178 serial program mode : yes
109
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
179
30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
180 parallel program mode : yes
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
181 Timeout : 200
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
182 StabDelay : 100
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
183 CmdexeDelay : 25
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
184 SyncLoops : 32
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
185 ByteDelay : 0
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
186 PollIndex : 3
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
187 PollValue : 0x53
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
188 Memory Detail :
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
189
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
190 Block Poll Page Polled
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
191 Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
192 ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
193 eeprom 4 10 128 0 no 512 4 0 9000 9000 0xff 0xff
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
194 flash 33 6 128 0 yes 16384 128 128 4500 4500 0xff 0xff
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
195 lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
196 lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
197 hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
198 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
199 calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
200
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
201 Programmer Type : butterfly
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
202 Description : Atmel AppNote AVR109 Boot Loader
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
203
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
204 Connecting to programmer: .
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
205 Found programmer: Id = "AVRBOOT"; type = S
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
206 Software Version = 1.0; Hardware Version = 1.0
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
207 Programmer supports auto addr increment.
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
208 Programmer supports buffered memory access with buffersize=128 bytes.
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
209
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
210 Programmer supports the following devices:
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
211 Device code: 0x76
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
212
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
213 avrdude: devcode selected: 0x76
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
214 avrdude: AVR device initialized and ready to accept instructions
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
215
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
216 Reading | ################################################## | 100% 0.00s
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
217
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
218 avrdude: Device signature = 0x1e940a
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
219 avrdude: safemode: Fuse reading not support by programmer.
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
220 Safemode disabled.
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
221 avrdude: reading flash memory:
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
222
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
223 Reading | ################################################## | 100% 0.26s
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
224
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
225 avrdude: writing output file "flash2.hex"
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
226
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
227 avrdude done. Thank you.
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
228
109
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
229 **Much better!**
30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
230
109
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
231 Now I can upgrade the firmware:
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
232
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
233 .. code-block:: bash
30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
234
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
235 echo -en '++rst\r' > /dev/ttyUSB0; avrdude -P /dev/ttyUSB0 -p m164p -c avr109 -v -v -U flash:w:m164.hex
109
96e9f64b86ed [prologix] minor improvments
David Douard <david.douard@logilab.fr>
parents: 56
diff changeset
236
30
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
237 Et voilĂ ! The Prologix GPIB-USB interface is upgraded to the latest
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
238 available software. From what I've seen so far, it seems more stable
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
239 (at least I can read data from my HP5442A and HP3456A in "fast" mode
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
240 without loosing my GPIB controller.)
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
241
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
242
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
243 .. _`4.2-6.95`: http://prologix.biz/downloads/gpib-usb-4.2-6.95.zip
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
244 .. _Prologix: http://prologix.biz/
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
245 .. _FAQ: http://prologix.biz/gpib-usb-4.2-faq.html
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
246 .. _`user manual`: http://prologix.biz/downloads/PrologixGpibUsbManual-4.2.pdf
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
247 .. _pygpibtoolkit: https://www.logilab.org/project/pygpibtoolkit
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
248 .. _`directory serving all the firmwares`: http://prologix.biz/downloads/
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
249 .. _avrdude: http://savannah.nongnu.org/projects/avrdude/
bc305adb1847 [prologix] new blog on upgrading prologix's firmware in Linux
David Douard <david.douard@logilab.fr>
parents:
diff changeset
250 .. _avr109: http://www.atmel.com/Images/doc1644.pdf

mercurial