Oh, Johnson, thank you so much!
As you said, it is a problem of understanding how the board works. Now I have understand and continued my study.
The result turns well.
I want to give you a hug,and thank you very much! ^_^
Ma Xiao yuan
> -----Origin email-----
> From: "Andrew Johnson" <[email protected]>
> Sent Time: Wednesday, April 27, 2011
> To: "马晓媛" <[email protected]>
> Cc: [email protected], "Hu, Yong" <[email protected]>
> Subject: Re: VMIC VMIVME 4105 register cannot be modified?
>
> 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
- 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: VMIC VMIVME 4105 register cannot be modified? Andrew Johnson
- Next:
Handle leak in Channel Access Server V4.13 (current EPICS base) - WinXP Carsten Winkler
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: VMIC VMIVME 4105 register cannot be modified? Andrew Johnson
- Next:
PV not found Horald
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|