Reputable source for a TL866II Plus programmer?

Topics relating to PALs, CPLDs, FPGAs, and other PLDs used for the support or creation of 65-family processors, both hardware and HDL.
User avatar
GARTHWILSON
Forum Moderator
Posts: 8773
Joined: 30 Aug 2002
Location: Southern California
Contact:

Re: Reputable source for a TL866II Plus programmer?

Post by GARTHWILSON »

Thanks Chad and Gordon.  The software is nowhere near as user-friendly as my old DOS-based drive software for my ISA-bus-based Needham's programmer which was all point-and-click; but I am getting more familiar with it, and I've been finding things that didn't jump out at first.  One is the verify ability, to check an EPROM against a file, with the -m option, without programming it; another is to see if it's erased, with the -b option, again without programming it.  There's an option to update the firmware too, although so far I've never seen a source for an updated update.dat file, and I'll probably be pretty shy about applying it anyway, wondering if I'll brick it if I don't do everything right, and I probably won't be using any devices that haven't already been out for years anyway, at least in a version compatible with something on the device list.  I'm building up kind of a cheat sheet, a template to make it easier figure out future command lines without having to look everything up again.  For things like sets, splits, offsets, and concatenating files, I can use SRecord165.  Anyway, I am no longer stuck.  Thanks.
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
GlennSmith
Posts: 162
Joined: 26 Dec 2002
Location: Occitanie, France

Re: Reputable source for a TL866II Plus programmer?

Post by GlennSmith »

GARTHWILSON wrote:
I'm building up kind of a cheat sheet, a template to make it easier figure out future command lines without having to look everything up again. 
As a lot of us out here are lazy sods, we'd awfully like a scan of your cheat sheet (from your 5x3 ringbinder IIRC) :)
Good luck with the burning.
Glenn-in-France
User avatar
GARTHWILSON
Forum Moderator
Posts: 8773
Joined: 30 Aug 2002
Location: Southern California
Contact:

Re: Reputable source for a TL866II Plus programmer?

Post by GARTHWILSON »

GlennSmith wrote:
GARTHWILSON wrote:
I'm building up kind of a cheat sheet, a template to make it easier figure out future command lines without having to look everything up again. 
As a lot of us out here are lazy sods, we'd awfully like a scan of your cheat sheet (from your 5x3 ringbinder IIRC) :)
It wouldn't be a bad idea to have such a paper backup (like I do full printouts of every project's source code when I'm done with it and it seems stable); but the main idea is to have it in a text file so I can copy and paste lines, only changing a few details as needed.  So far there's only a little bit for 16KB and 8KB EPROMs; but I'll be adding more as I get into programming microcontrollers and maybe programmable logic too.  Here's a little bit for starters:

  • To check that a 27C64 is erased:    minipro -p NMC27C64Q@DIP28 -b
    I suppose the "b" stands for "blank."
  • or to read one into a file:   minipro -p MBM2764@DIP28 -r <full_file_name_and_path> -f ihex -x
    The "-p" means that what's coming next, MBM2764@DIP28 in this case, specifies the part.
    The "-f" means that what's coming, the ihex in this case, specifies the file type, Intel Hex.
    The "-x" means don't attempt to read the ID (only valid in read mode).
  • To check that what's in the EPROM matches the file, ie, do a verification without programming, use instead:    minipro -p MBM2764@DIP28 -m <full_file_name_and_path>
    I suppose the "m" stands for "match."
  • To write:    minipro -p NMC27C64Q@DIP28 -w <full_file_name_and_path>


These are from my copying EPROMs for work last week.  Some of the machines in daily service are decades old, and I can hardly believe the boss let the inventory of EPROMs get so thin and old.  Repairing these huge spindle-drive boards with a bazillion components on them, the evidence suggests some of the EPROMs were starting to lose data, and that my programmer was correctly reading 0 bits as 0's when the signal voltage output may have been too high for some of the boards to recognize them as 0's.  Some boards started working when given EPROMs that were newly programmed, copied from old EPROMs.  If that's true, and if we had gone much longer, we might not have anything left readable.
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
User avatar
drogon
Posts: 1671
Joined: 14 Feb 2018
Location: Scotland
Contact:

Re: Reputable source for a TL866II Plus programmer?

Post by drogon »

GARTHWILSON wrote:
I suppose the "b" stands for "blank."
I wonder if you're missing the manual page...

-b is short for --blank-check

Code: Select all

MINIPRO(1)                               General Commands Manual                               MINIPRO(1)

NAME
       minipro - A gree and open TL866XX programmer.

DESCRIPTION
       minipro  is  an  Open Source tool intended to become a complete cross-platform replacement for the
       proprietary utility from Autoelectric. Currently it supports more than 13000 of target  devices  -
       including AVRs, PICs as well as a huge number of other microcontrollers and various memory chips.

GENERAL OPTIONS
       -l, --list
              List all supported devices.

       -L, --search <search>
              List devices like this.

       -q, --programmer <version>
              Force a programmer version when listing devices.
              Possible values: TL866A TL866II.

       -Q, --query_supported
              Query supported programmers.

       -k, --presence_check
              Query the programmer version currently connected.

       -d, --get_info <device>
              Show device information.

       -D, --get_id
              FIXME  Just  read  the  chip ID and do nothing else (like reading the whole chip contents).
              This is for use in scripts where you have for example several similar chips with  different
              IDs  and  want to check if the currently inserted chip is one in your list of allowed ones.
              Also useful to detect if a chip is inserted at all when using the -y option.

       -r, --read <filename>
              Read from the device and write the contents to this file.

       -w, --write <filename>
              Write to the device using this file.

       -m, --verify <filename>
              Verify memory in the device against this file.

       -c, --page <type>
              Specify memory type (optional).
              Possible values: code, data, config, user, calibration.
              The calibration byte(s) are Atmel AVR family specific and are read-only.  User memory  type
              is  implemented  as user row or encryption table on some devices like Atmel AT89S8253.  Use
              -c user to read or write this page.

       -f, --format <format>
              Specify file format.  Possible values: ihex, srec.

       -b, --blank_check
              Blank check.
              Optionally, you can use -c to specify a memory type.

       -a <type>, --auto_detect
              Auto-detect SPI 25xx devices.
              Possible values: 8, 16.

       -z, --pin_check
              Check for bad pin contact.

       -e, --skip_erase
              Do NOT erase device.

       -E, --erase
              Just erase device.

       -o <option>
              Specify various options.  For multiple options, use -o multiple  times.   For  example:  -o
              vpp=12 -o vcc=5.5 or long options: -vpp=12 --vcc=5.5
              Valid options are:

              -o vpp=<value>, --vpp <value>
                     Set the programming voltage.
                     For TL866A/CS: 10, 12.5, 13.5, 14, 15.5, 16, 17, 18, 21.
                     For  TL866II+:  9,  9.5, 10, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15.5, 16, 16.5,
                     17, 19.

              -o vdd=<value>, --vdd <value>
                     Set the VDD write voltage (3.3, 4, 4.5, 5, 5.5, 6.5).

              -o vcc=<value>, --vcc <value>
                     For setting the VCC verify voltage (3.3, 4, 4.5, 5, 5.5, 6.5).
                     For setting the VCC logic test voltage (1.8, 2.5, 3.3, 5).

              -o pulse=<value>, --pulse <value>
                     Programming pulse delay (0-65535 usec).

       -u, --unprotect
              Disable protection before programming.

       -P, --protect
              Enable protection after programming.

       -v, --skip_verify
              Do NOT verify after write.

       -p, --device
              Specify device (use quotes).

       -T, --logic_test
              Logic IC test.  Erroneous states are reported with a "-" (minus) sign next to the  expected
              pin state.

       -i, --icsp_vcc
              Use ICSP.  Not useful for TL866CS.

       -I, --icsp_no_vcc
              Use ICSP (without enabling Vcc).  Not usefule for TL866CS.

       -s, --no_size_error
              Do NOT error on file size mismatch (only a warning).

       -S, --no_size_warning
              No warning message for file size mismatch (can't combine with -s).

       -x, --skip_id
              Do NOT attempt to read ID (only valid in read mode).

       -y, --no_id_error
              Do NOT error on ID mismatch

       -V, --version
              Show version information

       -t, --hardware_check
              Start hardware check

       -F, --update <filename>
              Update firmware.  See UPDATING FIRMWARE below.

       --infoic <filename>
              Set custom infoic.xml file.

       --logicic <filename>
              Set custom logicic.xml file.

       -h, --help
              Show brief help and quit.

NOTES FOR READING AND WRITING
       If  -c  is omitted and -r is specified then the code, data (if applicable) and config (if applica‐
       ble) will be written to filename.$ext,  filename.eeprom.bin  and  filename.fuses.conf  correspond‐
       ingly. If -c is omitted and -w is specified, then -c code is assumed.
       By   default, when in write mode and -c config is specified, no erase is performed to preserve the
       already programmed data.
       However, you can force an erase in this case with the -E option.

       --fuses, --uid, --lock flags will read/write/verify/blank check fuses, user id or lock config sec‐
       tion.  User  ID  is Microchip PIC MPU family specific. For example: minipro -p atmega32 -b --fuses
       will check if fuse bits are in their default state (that is, blank state)

       Use --pulse, --vpp, --vdd, --vcc or -o <option> to specify various programming options. These  op‐
       tions  are  available  only in write mode ( -w ) and only for some devices like UV erasable EPROMs
       and GAL/ATF PLDs.
       Also you can specify --vcc or -o vcc with -T to specify the logic test voltage.
       Use -d <device> to view if those options are supported.

UPDATING FIRMWARE
       Firmware update files can be obtained from the manufacturer's website: http://www.autoelectric.cn.
       They can also be downloaded and extracted from the following repository:  https://github.com/Kree‐
       blah/XGecu_Software.
       For the TL866A/CS, use the "update.dat" file.
       For the TL866IOI+, use the "updateII.dat" file.

       ==== EDIT LINE ====

       When  writing  chips,  this  is  not  necessary because the file format is automatically detected.
       There is no need to specify the exact Intex hex format (ihex8, ihex16, or ihex32) as the format is
       automatically  detected.   If this option is not used, then the file will be saved as a raw binary
       file.

       When reading chips and the ihex format is chosen, if the data size is up to 64Kb the file will  be
       saved  in  ihex8  format. Just plain hex records are used -- no segment/linear address records are
       inserted.  If the data size exceeds 64Kb then the ihex32 format is used. The ihex16 format is  not
       used when reading chips.  The same strategy is used for the Motorola srecord format.

       -F <filename>
              Update firmware (should be update.dat).

       -h     Show help and quit.

NOTES
       If  -c  is omitted and -r is specified then the code, data (if applicable) and config (if applica‐
       ble) will be written to filename.$ext,  filename.eeprom.bin  and  filename.fuses.conf  correspond‐
       ingly. If -c is omitted and -w is specified, then -c code is assumed.

PIPES
       Minipro  supports reading and writing to standard input and output.  To do this, use a dash (-) as
       a filename for the -w or -r options.

       For example:

       head -c 256k < /dev/urandom | srec_cat - -bin -o - -intel -Address_Length=4 -obs=16 |  minipro  -p
       w49f002u -w-

       This  is how the hex/srec parsers were tested for reading from stdin.  256kb of random binary data
       is generated then converted from binary to intel hex by the srec_cat  utility.  Finally  the  con‐
       verted  data  is passed to our minipro which will read this data, convert it to binary by decoding
       the intel hex format from stdin and write it to the specified chip.  Note the -r- which  tells  to
       read  from  stdin  instead from a regular file.  This is just a test command to test the ihex/srec
       parsers.  Don't use this in real life (convert from binary to ihex then from ihex to binary).

       You can also read a chip and write the data to the stdout like this:

       minipro -p w49f002u -r- -f ihex.

       You can then pass the output to another command line tool with | for other processing, etc.

FUSES
       Fuses can be read and written with the -c config option. Fuse data is exchanged in a text  format.
       When  writing  fuses all fuses on your device must be assigned a value. To see what fuses are sup‐
       ported by your device use -r with -c config to get your current fuse values. This also  shows  you
       what the text format looks like.
EXAMPLES
       minipro -p 7404 -T
           Check whether a 74(LS/HC/...)04 hex NOT gate chip.

AUTHOR
       minipro  was written by Valentin Dudouyt and is copyright 2014.  Many others have contributed code
       and bug reports.  Development is currently coordinated by David Griffith.

HARDWARE
       The Minipro TL866xx series of chip programmers is distributed by Autoelectric.  Their  website  is
       http://www.autoelectric.cn.

DISTRIBUTION
       The canonical repository for minipro is at Gitlab:
       https://gitlab.com/DavidGriffith/minipro/
       It  is  distributed  under  the GNU General Public License version 3 or (at your option) any later
       version.
       https://www.gnu.org/licenses/gpl-3.0.en.html
       This software is offered as-is with no warranty or liability.  If you find a  bug  or  would  like
       minipro  to do something it doesn't currently do, please visit the above Gitlab website and report
       your concerns.

                                         17 September 2022 (v0.6)                              MINIPRO(1)
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
barnacle
Posts: 1831
Joined: 19 Jan 2004
Location: Potsdam, DE
Contact:

Re: Reputable source for a TL866II Plus programmer?

Post by barnacle »

Garth, are your EPROMS of a type which can be directly replaced with EEPROMS? Some car owners are starting to see this issue with tired EPROMS from 30 years ago, but modern EEPROMS either go straight in or are simply bodge-wired to handle the r/~w pin.

Neil
User avatar
GARTHWILSON
Forum Moderator
Posts: 8773
Joined: 30 Aug 2002
Location: Southern California
Contact:

Re: Reputable source for a TL866II Plus programmer?

Post by GARTHWILSON »

Quote:
I wonder if you're missing the manual page...
Hmmm... Yours seems to be more complete than mine.  [Edit: Yours is newer by four years!]  I'll use yours instead.
Quote:
Garth, are your EPROMS of a type which can be directly replaced with EEPROMS? Some car owners are starting to see this issue with tired EPROMS from 30 years ago, but modern EEPROMS either go straight in or are simply bodge-wired to handle the r/~w pin.
I could study the book and see.  The schematics for these huge spindle-drive boards span dozens of 11"x17" pages, and I've had other things to concern myself with.  I was told the repaired, used boards go for something like $1600, while the new ones are $6,000 to $10,000 each.
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
User avatar
BigDumbDinosaur
Posts: 9425
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: Reputable source for a TL866II Plus programmer?

Post by BigDumbDinosaur »

GARTHWILSON wrote:
It wouldn't be a bad idea to have such a paper backup (like I do full printouts of every project's source code when I'm done with it and it seems stable)...
I used to do that...back when a program might have no more than about 2000 lines of code.  Beyond that, it wasn’t practical anymore to print—way too much paper being used.  If I were to print the full listing of the partition editor program I am working on—which is only partially completed, it would run to 333 pages.
x86?  We ain't got no x86.  We don't NEED no stinking x86!
Post Reply