FlashMagic on Linux using wine

After long time, I found some time to work on my new P89V51RD2 (8051 MicroController from NXP) kit. NXP provides FlashMagic tool to flash the assembled HEX file. Unfortunately this tool is available only for MS-Windows versions. Since I am using only Linux for all my home works,  for last few months I had been trying to make it work with Linux using wine (Windows Emulator). Today I found it is succesfully flashing. I am using FlashMagic version 4.33. Fine, let us see how to get it done?

Setup

  • P89V51RD2 based Microcontroller kit from Emblitz
  • FlashMagic 4.33 – Previous versions are not working (atleast for me)
  • OpenSUSE 11.0 (linux kernel 2.6.25)
  • Wine 1.0-rc3

Procedure

1. Ensure that wine is installed on your linux machine.

2. Download FlashMagic (only Windows version) from this site.

3. Install the FlashMagic ($wine FlashMagic.exe). Follow the installation wizard and get it installed.

4. Ensure that your login has permission to use serial port (which you use to communicate with kit for flashing). Mostly you may have to be a member of uucp group.

5. Run FlashMagic ($wine ~/.wine/drive_c/Program Files/Flash Magic/FlashMagic.exe)

Running FlashMagic on OpenSUSE linux
Running FlashMagic on OpenSUSE linux

6. Set the Step-1 Communications section parameters as per your Kit’s requirement.

7. For me, this setting was not enough to get it done. I had to do the following settings also.

Options -> Advanced options -> Hardware config -> Use DTR to control RTS should be unchecked.

Options -> Advanced options -> Hardware config -> Assert DTR and RTS while COM Port open should also be unchecked.

Advanced configuration settings

8. Then to ensure that FlashMagic successfully communicates with Kit, read the signature of Microcontroller using ISP -> Read Device Signature option. It may ask you to reset the kit in ISP mode; do it as per your kit. If you are able to read the signature, you will be able to flash the chip.

Reading the device signature may need a ISP reset
Successfully read Device Signature

Enjoy the world of chips and l-o-w l-e-v-e-l languages happily!

Update: Detailed instruction for My NXP P89V51RD2 based Emblitz 8051 Kit

1. Power off the device keeping serial port connected to Host computer.
2. J7 – 1 & 2 connected (External Program Memory disabled)
3. J22 – 1 & 2 connected (Execution mode)
4. USB Power on (or) S5 – 1 & 2 connected
5. Start Flash Magic tool and test by menu ISP -> Read Device Signature… -> Wait for diaglog box to show “Reset the device into ISP mode now”
6. J22 – 2 & 3 connected (ISP mode)
7. Press Reset switch S4
8. Device Signature should be read and displayed on screen.
9. Now select your hex file to program and click start button in Flash Magic too. Wait till the programming completed.
10. J22 = 1 & 2 connected again (Execution mode)
11. Press Reset switch S4 to put the device in execution mode

 

Share this post

14 comments

  1. hi,
    i am getting the error..
    Unable to Communicate.(configuration)Ensure no other applications are using the COM port……
    i m not using any other application with COM port also….
    for above problem i got solution that is we need to change the permision of the serial port,
    try below commands
    bhagavan@Auranetworks3:~$ ls -l /dev/ttyS0
    crw-rw—- 1 root dialout 4, 64 Sep 3 13:02 /dev/ttyS0

    bhagavan@Auranetworks3:~$ sudo chmod 777 /dev/ttyS0
    [sudo] password for bhagavan:

    bhagavan@Auranetworks3:~$ ls -l /dev/ttyS0
    crwxrwxrwx 1 root dialout 4, 64 Sep 3 13:02 /dev/ttyS0

    after this the flash magic works fine…

  2. Hi People,

    i’ve tried using Flash Magic 8.10.3597 under Manjaro Linux with Wine but I always get the error “Unable to communicate. (configuration) Ensure no other applications are using the COM Port. Try raising or lowering the baudrate.” My programmer has an FTDI FT232RL Chip and is seen by linux aus /dev/ttyUSB1 which i’ve linked to
    ~/.wine/dosdevices/com1. I can see that the red (programming) LED on the programmer turns on when e.g. i try to read the device signature in Flash Magic so i am convinced that wine actually has access to the device. I want to flash an 89LPC922 chip which works with the software settings on a Windows 7 machine, just not under wine 🙁

  3. Hi !
    I still tick this: “Options -> Advanced options -> Hardware config -> Use DTR to control RTS”. But it works ! :D. And not work if i uncheck :D.

  4. Hi swamytk,

    I did the linking of tty/usb0 to com1. When i am loading the hex file into the kit, then i got the message as “reset the device into ISP mode. When I pressed the reset button in kit then It is showing as “Failed to read the device singature . Accessing the device using wrong protocol could render the device unusable.Do you want to continue”
    Please help me.

  5. As, you told me i have done all the setting, but still i am not able to communicate with my target.
    I am getting the error..
    operation failed:failed to auto baud step1..

  6. i am very delighted to use know about this,i use open suse for all my needs but only for 8051 related things,i have to switch back to windows,if this works for me,i’l forget windows.

    i tried the steps,i downloaded flashmagic,but when i give,wine FlashMagic.exe on bash,i get the following error,how to solve this,please help,
    wine: could not load L”C:\\windows\\system32\\FlashMagic.exe”: Module not found

  7. Thanks….
    As, you told me i have done all the setting, but still i am not able to communicate with my target.
    I am getting the error..
    Unable to Communicate.(configuration)Ensure no other applications are using the COM port……
    i m not using any other application with COM port also….

  8. Thanks for giving this info for downloading a .hex file.
    But,i am using Laptop and it have no serial port. SO, i am using USB to Serial cable.Can you tell me how to select USB cable in the COM port as well how can i know which port i had to select..

    1. Hi Rohan,
      1. Once you plug-in USB-Serial converter, run “dmesg” in command line. At the end, you will see which device your converter mapped. It is something like (e.g. ttyUSB0). This device node file should be available under /dev or its sub-directory. Find it out and note down.
      2. Ensure that you have rw permission for that device. Otherwise add your user in that group (don’t change the permission, once you restart you may lose this permission settings. Device detection and node creation are taken care by the udev during startup!)
      3. Now create a symbolic soft link to this ttyUSB0 in your ~/wine/dosdevices/ as com1 as given below. Execute this command as normal user (not root). It is something like given below.

      ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1

      4. In Flash Magic select COM1 (if you have mapped com1) as your device. that is all man!

Leave a Reply

Your email address will not be published. Required fields are marked *