09-12-2011 04:56 PM
I will be working with a 6225 card and want to know if it can do MSI interrupts. Is it compliant with the PCI 2.2 spec?
Also, is the PCI 6509 capable of doing MSI interrupts?
Thanks,
Tim
09-13-2011 07:22 PM
Hello Tim4software,
Most of our PCI cards, including the PCI 6225, should be compatible with PCI 2.1 or higher. As for the MSI interrupts, the current devices that support those are:
Refer to this article for more details: http://digital.ni.com/public.nsf/allkb/81D497CC840522438625770C0065D891?OpenDocument
I hope this helps!
-Nathan H
10-24-2011 03:59 PM
Thanks Nathan. Are there any examples of how to configure the 6509 for rising edge interrupts using filtering ?
My plan is to do the following to configure the interrupt:
1) set up rising edge sensitivity configuration register for particular port/bit
2) set up the filter interval register to desired pulse width
3) set up filter enable register for particular port/bit
4) set up the following bits in the master interrupt control register: rising edge int enable, overflow enable, edge int enable, master int enable
Then inside my ISR, I plan on doing the following to see if it was my interrupt that was triggered:
1) read change status register and look for the following bits to be set: riding edge, master interrupt, edge status.
2) check overflow bit to see if I missed one.
Question: Is there any interrupt masking that I must do while reading the interrupt status and processing the bits in the change status reg?
Does the above plan look OK?
10-25-2011 12:59 PM
Hey Tim4software,
In order to implement this, you are going to have to do register level programming. The support team at NI does not officially support RLP questions; however, I will more than happy to point to you some useful resources that may get you started.
Here's a link to our Driver Development Kit that gives examples and manuals on how to program on the register level:
https://decibel.ni.com/content/docs/DOC-16444
Here's an FAQ on doing RLP using the above linked DDK:
http://digital.ni.com/public.nsf/allkb/2D93070A3DDEFD7186256C59007289E6
Here's the manual for programming on the register level on cards with the STC3 timing chip (page 1-37 is the start of the interrupt section):
http://download.ni.com/evaluation/labview/ekit/other/downloader/nixseries-refmanual.pdf
Finally, any questions you have with programming on the register level should be posted in this discussion forum:
http://forums.ni.com/t5/Driver-Development-Kit-DDK/bd-p/90
I hope this helps!
-Nathan H
10-27-2011 05:01 PM
I'm not really planning on doing low level reads/writes. I am using the functions provided in the chip objects.
functions like:
board->IOSelect0.writeDirection(..)
Is there anywhere where I can see a sequence of setup steps for say interrupting on based on change detection?
Thanks
10-28-2011 04:00 PM
Hey Tim,
Chip Objects is part of the MHDDK and is used to make register level programming easier. You can go here for more info on chip objects and some examples on how to get started: http://digital.ni.com/public.nsf/allkb/E67BC1ACAB272C4A86256C7200839A27
If you need further support on this, I would post it here: http://forums.ni.com/t5/Driver-Development-Kit-DDK/bd-p/90. And for more info on how to get the best support on this issue, refer to this article: http://digital.ni.com/public.nsf/allkb/F4FEA84797FF1F2186256F6B005D8761
Sorry I can't be more helpful on this issue, but I hope you get it figured out.
-Nathan H