title: Programming an obsolete micro controller
body: <p>I am working with a PSD835G2V-12UI micro controller from ST Micro. This chip is obsolete, and the program, PSDsoft Express, that is used to flash firmware is not supported on Windows 7. It works well on Windows XP but I would like to port over the programming to a Windows 7 machine.</p>
  
  <p>I am using a Raisonance RLINK JTAG programmer to interface between computer and micro controller.</p>
  
  <p>ST micro recommends using PSDsoft, which is their program used for programming. However, PSDsoft does not run on Windows 7. </p>
  
  <p>I found a partial solution online where I can use RIDE7. Unfortunately, RIDE7 does not support the PSD chip, it only supports the uPSD. I can make a command window call and effectively communicate with the chipset via RLINK. Here are a list of options I have through the command window:
  (sorry cant post pictures)</p>
  
  <pre><code>Syntax: PSD_pgm [JCIFile] [Actions Device Regions [FileName1] [FileName2]]
  
  [JCIFile] is the name of the .JCI file containing the JTAG chain description.
  If [JCIFile] is the only argument, the actions will be read from it.
  If [Actions] exists, the commands in [JCIFile] will be ignored.
  
  [Actions] can be any of these:
  A: All: shortcut for "ISJECPVDKF"
  U: USB: Check connection to RLink and display firmware information.
  I: Id: Check connection to target and display silicon signature.
  S: Security: Display the Security status.
  J: JTAG: Enable JTAG/ISC.
  E: Erase: Full Chip Erase.
  C: Check: Blank-Check.
  P: Program &lt;FileName1&gt;.
  V: Verify against &lt;FileName1&gt;.
  D: Dump to &lt;FileName2&gt; as osf file.
  K: Disable JTAG/ISC.
  F: Fatal: Any error is considered as fatal.
  [Device] is the number of the device to be used (as referenced in the JCI file)
  
  [Regions] is the regions to be affected: (as referenced in the JCI file)
     0 :  All  - all region
     1 :  Main - Main memory region
     2 :  Boot - Boot memory region
     3 :  PLD  - PLD/ACR region
     4 :  UserCode - Usercode region
  
  [FileName1] exists if option P or V is used
  
  [FileName2] exists if option D is used
  </code></pre>
  
  <p>I can successfully make the following command call:</p>
  
  <blockquote>
    <p>C:\Raisonance\ride\bin\psd_pgm.exe C:\users\me\firmware\test\testFirmware.jci U 1 0 </p>
  </blockquote>
  
  <p>With these results:</p>
  
  <pre><code>C:\Users\me&gt; C:\Raisonance\ride\bin\psd_pgm.exe C:\users\me\firmware\test\testFirmware.jci U 1 0 
  
  PSD_pgm: programming tool for uPSD
  Copyright (c) 2010 Raisonance SAS
  OK.
  *** Analysing JCI file: C:\users\me\firmware\test\testFirmware.jci
  Chain_Device1:
    Name: PSD835G2V
    UserCode:        0
    IRL: 5
  Initializing and opening COM...OK.
  Opening USB com...OK.
  Getting Serial Number...OK.
    Serial Number is: dngStd004000693
  Getting Firmware Version...OK.
    Firmware Version is: 0.0.3
  
  Selecting and checking ID on device 1...OK.
  Selecting regions 0: All...OK.
  
  Bye.
  Closing COM...OK.
  </code></pre>
  
  <p>All of the other command works except: "P" Program and "J" JTAG: Enable JTAG/ISC.</p>
  
  <p>I am able to successfully erase the memory of the chipset, but not program the chip.</p>
  
  <p>Here is the error I am seeing when I type in the JTAG enable command, which is a precursor to the program command:</p>
  
  <p><strong>ERROR 103: Enable failed. 0x41 != 0x40</strong></p>
  
  <blockquote>
    <p>C:\Raisonance\ride\bin\psd_pgm.exe C:\users\me\firmware\test\testFirmware.jci J 1 0 </p>
  </blockquote>
  
  <pre><code>C:\Users\me&gt; C:\Raisonance\ride\bin\psd_pgm.exe C:\users\me\firmware\test\testFirmware.jci J 1 0 
  PSD_pgm: programming tool for uPSD
  Copyright (c) 2010 Raisonance SAS
  OK.
  *** Analysing JCI file: C:\users\me\firmware\test\testFirmware.jci
  Chain_Device1:
    Name: PSD835G2V
    UserCode:        0
    IRL: 5
  Initializing and opening COM...OK.
  Selecting and checking ID on device 1...OK.
  Selecting regions 0: All...OK.
  Enabling JTAG/ISC...
  
  **ERROR 103: Enable failed. 0x41 != 0x40**
  Bye.
  Closing COM...OK.
  </code></pre>
  
  <p>Here is my .jci file:</p>
  
  <pre><code>[JTAG-Chain]
  
  Chain_Device1=PSD835G2V," C:\users\me\firmware\test\testFirmware.osf",2,0,FFFFFFFF,5,1
  [DeviceID]
  
  DeviceID_1=08030001,08030047,18030047,08031047,18031047,08050047
  [SectorsSizes]
  Device1_MAIN_SECTOR0=0x4000
  Device1_MAIN_SECTOR1=0x4000
  Device1_MAIN_SECTOR2=0x4000
  Device1_MAIN_SECTOR3=0x4000
  Device1_MAIN_SECTOR4=0x4000
  Device1_MAIN_SECTOR5=0x4000
  Device1_MAIN_SECTOR6=0x4000
  Device1_MAIN_SECTOR7=0x4000
  Device1_BOOT_SECTOR0=0x2000
  Device1_BOOT_SECTOR1=0x2000
  Device1_BOOT_SECTOR2=0x2000
  Device1_BOOT_SECTOR3=0x2000
  Device1_PLD=0x3760
  Device1_USERCODE=0x20
  </code></pre>
  
  <p>So the issue I am seeing is that I can communicate with the programmer, but there seems to be a memory mapping issue with the JTAG enable. I have no idea what this means or how to fix the issue. Please have a look and let me know if there is anything info/steps I am missing.</p>
  
  <p>Thank you,</p>
  
  <p>Vlad</p>