EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: VMIC VMIVME 4105 register cannot be modified?
From: Andrew Johnson <[email protected]>
To: 马晓媛 <[email protected]>
Cc: [email protected]
Date: Tue, 26 Apr 2011 17:41:00 -0500
Hi,

On Monday 25 April 2011 22:09:12 马晓媛 wrote:
> 
> Besides, 4105 has an address modifier response jumper JA.The DAC board is
>  memory mapped in the short I/O address space .To select non-privileged
>  short I/O Access, install jumper at JA.
> 
> My board is installed jumper JA.---non-privileged short I/O Access.
> 
> The code in driver: status = sysBusToLocalAdrs(VME_AM_SUP_SHORT_IO ,(char
>  *)addr,(char **)&pcard); ( addr is the address I input. pcard returns the
>  local address.)
> In sysBusToLocalAdrs, I select VME_AM_SUP_SHORT_IO Address Modifier code.
> 
> So, it seems that the hardware configuration and software configuration is
>  inconsistent.But it works well.
> 
> I tried remove the jumper of JA, so board response to supervisory short I/O
>  access. But it cannot be configured. 4105 board cannot be found.

It looks to me that you are correctly addressing the board, the mv5100 BSP 
does map the VME A16 space to 0xfbff0000 and the fact that changing that 
jumper stops the board being found confirms that.

> I don't know where the errors happened and I don't have idea about the next
>  steps I can try.

I'm guessing that this might just be a problem of understanding how the board 
works.  I've moved your demonstration below here and I will now discuss them.

> ---------------------------------------------------------------------------
> -> d 0xfbff0000
> fbff0000:  00ff 00ff 00ff 00ff 00ff 00ff 00ff 00ff   *................*
> fbff0010:  ffff ffff ffff ffff ffff ffff ffff ffff   *................*
> fbff0020:  ffff ffff ffff ffff ffff ffff ffff ffff   *................*
> ------OK
> 
> -> m 0xfbff0000
> fbff0000:  00ff-c300  (I only modified first byes.)
> fbff0002:  c3ff-.
> 
> value = 1 = 0x1  (1 means read-only?)
> -> d 0xfbff0000
> fbff0000:  c3ff c3ff c3ff c3ff c3ff c3ff c3ff c3ff   *................* 
>  (All of them was modified.)

Your previous message said that there is only one control/status register, it 
just appears in bits 8-14 of a word read from any address in the given range.  
Thus I would expect to see the result that you demonstrated above.

> -------(c3 was the basic configuration. The lower 8bits was reserved, and
>  they cannot be wrote to 0)
> 
> -> m 0xfbff0000
> fbff0000:  c3ff-74bb  ( D15 is 0, 4bbb is the channel signal)
> fbff0002:  c3ff-6bbb  ( D15 is 0, bbb is the channel signal)
> fbff0004:  c3ff-.

Those writes should set DAC0 to 0x4bb and DAC1 to 0xbbb - I think we're in 
agreement there.

> value = 1 = 0x1
> -> d 0xfbff0000
> fbff0000:  c3ff c3ff c3ff c3ff c3ff c3ff c3ff c3ff   *................*
> fbff0010:  ffff ffff ffff ffff ffff ffff ffff ffff   *................*
> fbff0020:  ffff ffff ffff ffff ffff ffff ffff ffff   *................*
> 
> ---------As you see, They are not modified, even if I input all the 8
>  channels signals.)
> ---------Why??

In your previous message you said that the DAC Channel registers are write 
only - that means you cannot read the values you set back from the card:

> DAC CHANNELS (0 TO 8) ADDRESS (WRITE/ONLY)

If you read from those locations you will always get the control/status 
register data.

> ---------But,it could be wrote to other configure information.
> 
> -> m 0xfbff0000
> fbff0000:  c3ff-8bbb
> fbff0002:  8bff-.

There you're changing the control/status register because the data value you 
wrote has D15 set.  That explains why 

> value = 1 = 0x1
> -> d 0xfbff0000
> fbff0000:  8bff 8bff 8bff 8bff 8bff 8bff 8bff 8bff   *................*
> fbff0010:  ffff ffff ffff ffff ffff ffff ffff ffff   *................*
> fbff0020:  ffff ffff ffff ffff ffff ffff ffff ffff   *................*
> 
> ---------------------------------------------------------------------------
> Above shows the errors I come across.

I see no errors.

I think that designing a card with write-only registers is not very nice and 
doesn't happen very often now.  That used to be a way to save money on the 
board hardware, but nowadays most designs are implemented in silicon where the 
cost to provide the additional registers should be tiny.

Hope this helps,

- Andrew
-- 
An error is only a mistake if you don't learn from it.
When you learn something from it, it becomes a lesson.


References:
Re: VMIC VMIVME 4105 register cannot be modified? Andrew Johnson
VMIC VMIVME 4105 register cannot be modified? 马晓媛
Re: Re: VMIC VMIVME 4105 register cannot be modified? 马晓媛

Navigate by Date:
Prev: RE: Area Detector Szalata, Zenon M.
Next: Re: Re: VMIC VMIVME 4105 register cannot be modified? 马晓媛
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Re: VMIC VMIVME 4105 register cannot be modified? 马晓媛
Next: Re: Re: VMIC VMIVME 4105 register cannot be modified? 马晓媛
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·