Creating a 100ns pulse with FPGA
Hi,
I was wondering if I can output 100ns pulses with my PXI- 7833R. I need to output a pulse upoon the rising edge of another signal and the pulse width need to be about 100 ~150ns. Do anyone know how can it be done?
Thanks.
Regards,
Fw
Fw
Here is one way to generate a pulse. This will generate an edge, delay 100nS, generate the opposite edge.
Visualize the Solution
CLA
LabVIEW, LabVIEW FPGA
Attachments:
Pulse.JPG 23 KB
Similar Messages
-
Good morning everybody!
Can anybody help me with the above mentioned problem? I am using the
pci 6601 timer counter card and would like to create a double pulse with
defined times t_on1 t_off1, t_on2, t_off2, which all are in the us dimension.
Thanks a lot,
AndreasThe value of the second counter could be compared to...
The concept is ok, but in real life your comparisons and decisions must happen up in the software level. Unless you were running a real-time OS, you couldn't get regular deterministic timing of your software execution. And even in RT, it'd be difficult if not impossible to achieve the micro-second timing you're after.
Note: a double-pulse would be pretty simple to setup using correlated DIO on an M-series board if you've got any budget for data acq hardware...
-Kevin P. -
I'm using the NI PCI-6025E card connected to an SCB-100 wiring peripheral. I'm programming the DAQ card using LabVIEW 6.0.2 on a win95 box.
My first attempt has yielded some surprising results.
I created a vi with a single while loop set to true. Within that while loop is a two frame sequence. Both frames use the "Write to Digital Line.vi".
The first frame sets the line in wire to false.
The second frame sets the line in wire to true.
The device channel on both frames has been set to my user defined channel nam
e -> clock.
clock --> sets the DIO0 channel to be digital write out.
Using an oscilloscope and some wires I hook ground to the SCB-100's digital ground and I hook the probe to the DIO0 channel. What I see are two different pulses alternating between one another. One has a pulse width of 5ms and the other has a pulse width of about 50ms. You seem to get a grouping of one type of pulse followed by a grouping of the other type of pulse.
Obviously this is very strange and not what I want. It is also far too slow. So I'd like to know if anyone knows how to do this properly. Remember I only need a low pulse width of 0.5 microseconds.
Thanks,
Any help or guidance would be much appreciated.
ScottScott,
You don't need to use a digital line to create a TTL pulse. The PCI-6025E has two onboard general purpose counters. You can use one of these counters to create a single pulse of the desired pulse width. For an example of how to program the counters on your board, refer to LabVIEW's Search Examples>>I/O Interfaces>>Counters>>Pulse Generation>>DAQ-STC based.
The advantage of using a counter over the digital line is that it allows you to control the timing of the pulse through hardware and not software. Thus, it is inherently faster, and the timing resolution is more accurate. The counter will count down an internal 20 MHz timebase to create the pulse delay and the pulse width.
For more information on the hardware capabilities of your board, you can refe
r to the User Manual online at www.ni.com/manuals.
Hope this helps.
Regards,
Erin -
Hello
i use a board 6023E and pc pentium4 3Ghz
My problem is how create a delay with few microseconds between two tasks?
I need creat three tasks.
Fisrt create a finte pulse train for this i use a counter.
Second create a delay for this i use again a conter to creat a pulse train in witch the delay is equal to frequency x number of pulses.
Third measure pulses for this i use again a counter but in this case is a counter input.
In attachment i send a picture with my program.
I dont understand why my program dont work? my program take a lote of time during the excution. I think the problem is between stop une task and start another i would like know how i can resolve the problem if is possible.
picture with my program
ftp.ua.pt/incoming/labview/sheme
MarcoHi,
I hope to understand exactly what you want to do. If you need a long delay with your E series board check the following link
http://digital.ni.com/public.nsf/allkb/f66ccab02d3b901886256a03005ee14a
Let me know if it's ok.
Regards
Omar S. NI -
How do you create a finite pulse train using a FP-CTR-502?
I have recently replaced my FP-PG-522 module with a FP-CTR-502 module, to achieve higher output frequencies (FP-PG-522 max output freq is 5kHz, wheras the FP-CTR-502 max output freq is 16 kHz).
I need to be able to generate a finite pulse train. Has anybody created a finite pulse train using a FP-CTR-502 module before? I have started to look into it, but my ideas so far have been complicated (compared to doing it in a PG module).
Any tips on this would be much appreciated.
Christopher Farmer
Certified LabVIEW Architect
Certified TestStand Developer
http://wiredinsoftware.com.au
Solved!
Go to Solution.I can answer this question myself!
The answer is in the *OLD* version (July 2000) of the operator's manual for the FP-CTR-502. For some reason, this has been removed from the latest version (June 2003).
See page 11 of this link for more information:
http://www.ni.com/pdf/manuals/322660a.pdf
Christopher Farmer
Certified LabVIEW Architect
Certified TestStand Developer
http://wiredinsoftware.com.au -
Hello,
Just a couple of days ago I was given a task to complete. To transfer a Labview program from a desktop computer to laptop.
The program itself uses a marlin camera to count the number of seeds.
The transfer was fine I installed Labview 8.2, installed the DAQmx drivers and labview vision.
I then transffered the program files over and ran the program on the laptop in labview and found an ERROR: Error -200220 occurred at DAQmx Create Channel (CO-Pulse Generation-Time).vi:1
I remember that the desktop had a kind of board attached to it: some NI board dont know the model etc.
can this be a problem? I have ensured that the problem is not the camera by checking it in MAX and it works fine.
When i do step by step debugging the problem comes to a VI that uses a palette called DAQmx trigger - data acquisition palette.
please see the attached picture!!
Is this VI the problem then and is this palette the main problem that is not enabling this program to work??
thankyou
p.s. Will it be necessary to use the NI board then? if so i dont think it will work on the laptop then as you will need to install the daq card
which can only be done on a desktop i think!!Hello Rob W,
Yes I only use a Firewire to connect the camera.
And also i am sure that the device shows up in MAX under NI-DAQmx devices and not under Traditional DAQ. and it works under max.
I am sure the problem is as shown in the image. because i have not connected to the NI board on the laptop and the program is designed to work with the board.
but i have also tried removing the parts in the program that use the board but because of the complexity of the program i.e. wires i had some other problems i think
must be the wiring etc
thankyou -
Creating Labview Host DLL for FPGA
I have created a DLL for the FPGA host VI.
The host VI neads a loop to keep the FPGA running in labview but a call to the DLL function will not return while the loop is running.
If I change host VI to one shot I asume that the FPGA start and stop with each call.
I could load FPGA vi into flash set to run but I think that it will stop after first call from DLL.
Seem like a catch 22.
ThanksI found that I could run without the loop OK by closing the FPGA reference but not stopping the FPGA card running.
My problem now is, that the DLL does not seem to work.
I included a control updating an indicater and exported just those peramiters in the DLL but I can not get it to work with Borland C++Bulder 5.
Other DLL's that I create with Labview work OK.
Is there a broblem creating DLL's from host vi? -
Source distribution with FPGA support
I am trying to deploy a series of VIs which interact with FPGAs (PXIe-7966 based). When I run my RT vi's in development mode, the automatic deployment includes many vis such as:
Deploying niLvFpgaWhatHappensToTopLevelVI.ctl(already deployed)
Deploying niFpgaNodeNameForErrorReporting.ctl(already deployed)
Deploying niLvFpgaFormatErrorSource.vi(already deployed)
Deploying nirviWhatTheDeviceIsDoing.ctl(already deployed)
Deploying niFpgaHostInterfaceSession.ctl(already deployed)
Deploying nirio_resource_hc.ctl(already deployed)
Deploying nirio_resource_hc.ctl(already deployed)
Deploying niLvFpgaFormatErrorSource.vi(already deployed)
Deploying niLvFpgaErrorClusterFromErrorCode.vi(already deployed)
Deploying nirviErrorClusterFromErrorCode.vi(already deployed)
Deploying niFpgaNodeNameForErrorReporting.ctl(already deployed)
Deploying niLvFpgaWhatHappensToTopLevelVI.ctl(already deployed)
Deploying niLvFpgaFormatErrorSource.vi(already deployed)
Deploying niLvFpgaErrorClusterFromErrorCode.vi(already deployed)
Deploying nirviErrorClusterFromErrorCode.vi(already deployed)
Deploying niFpgaNodeNameForErrorReporting.ctl(already deployed)
Deploying niLvFpgaAdjustHostInterfaceError.vi(already deployed)
Deploying niLvFpgaWhatHappensToTopLevelVI.ctl(already deployed)
Deploying niLvFpgaAdjustHostInterfaceError.vi(already deployed)
Deploying niLvFpgaFormatErrorSource.vi(already deployed)
Deploying niLvFpgaAdjustHostInterfaceError.vi(already deployed)
Deploying niFpgaDynamicAddResources.vi(already deployed)
Deploying niLvFpga_Close_Dynamic.vi(already deployed)
Deploying niLvFpga_Open_PXIe-7966R.vi(already deployed)
None of these show as dependencies though on the RT target project. When I try to create a source distribution, I can't seem to get these deployed. My VIs (When called by reference or invoke) thus fail to start (Error 1003). I'm assuming it's because the source distribution didn't include the above items.
How then can I include the FPGA and RIO vi's in the source distribution? Including vi.lib, instr, and user (From the source distribution properties) doesn't appear to pull in any of these. Including NiFpgaLv.dll doesn't seem to help either. There's no other source distribution options that seem to address FPGA or RIO inclusion.
Thanks,
RobertHi Robert,
After doing a bit of research, it looks like this exact issue - down to the 1003 error code and behavior with vi.lib - was reported earlier this year. Apparently it only occurs on Pharlap OS (which corresponds to your PXI RT target). R&D has been notified, and the current target version for fix is LV 2015. The listed workaround is simply to FTP the files to the RT target as you are doing. Let us know if you have any further questions!
Regards,
David R
Applications Engineer
National Instruments -
Does the RT Image create and apply function include FPGA bitfile
Hi,
Does the RT Image create and apply function include FPGA bitfile? Does it deploy FPGA bifile to the FPGA target automatically?
Thanks!
TomHowever, can't you do the following:Use open FPGA VI reference within your RT app and point it to a bitfile then build and deploy the RT exe. After this, take an image and shouldn't the RT exe hold all information with regards to the FPGA that you need?
I may be wrong, but I hope not since I have to allow customers to update the cRIO without the project to deploy any changes
CLA, LabVIEW Versions 2010-2013 -
Is there a way to create a flipping book with the flipping 5k adobe software?
Am I the only one pissed with the f adobe products?
Is there a way to create a flipping book with the flipping 5k adobe software? Is it Flash, etc?
ThanksMaybe a forum search on "Windows registry" would turn up some useful things. You're not the first to ask this. You might save yourself and everyone else some time if you'd simply do that.
-
Is there a way to create a custom screensaver with pics/slides that display for different amounts of time? Or even add a "video slide" into the screensaver?
My business has 3 TVs displayed in our lobby, each with its own apple TV and they are all linked to the same photo stream. Currently the Atv screensaver displays the photostream pictures of our products for the default 3 seconds. We just added pics/slides that now display messages and useful info for our customers but I want that info to be displayed for a longer period of time than the pictures to give people a chance to read it.
I tried using flickr and powerpoint as a work around but no luck. I created a slide in powerpoint with play length of 15 secs and saved it as a wmv file. I added that file to a "screensaver" set in flickr and pointed the Atv screensaver to that flickr set. It still displays everything, pics and the wmv file at the default 3 sec.
I know I can increase the duration of all pics in the screensaver to display for longer but the goal is to have the pics display at 3 secs and the info slides to display at 15 secs.Welcome to the Apple Community.
No that's not possible.
If you have any suggestions that you think might enhance the Apple TV you can send Apple your feedback here -
Pointbase : How can I create a stored procedure with Pointbase database?
Hello,
Excuse me for my english, I'm not anglophone. I try to create a stored procedure.
This is my file SampleExternalMethods.java :
import java.sql.*; //import com.pointbase.jdbc.jdbcInOutDoubleWrapper; public class SampleExternalMethods { // A connection object to allow database callback static Connection conn = null; static Statement l_stmt; static Statement m_stmt; static CallableStatement m_callStmt = null; static ResultSet l_rs = null; public static void main(String[] args) { try { String url = "jdbc:pointbase:server://localhost/pointbaseDB"; String username = "PBPUBLIC"; String password = "PBPUBLIC"; conn = DriverManager.getConnection(url, username, password); doCreateProcedure(); doInvokeProcedure(); } catch (SQLException e) { e.printStackTrace(); } finally { if (m_stmt != null) { try { m_stmt.close(); } catch (Exception e) { e.printStackTrace(); } } if (m_callStmt != null) { try { m_callStmt.close(); } catch (Exception e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (Exception e) { e.printStackTrace(); } } } } public static void getCountry(String Iso_Code) { try { // Query the database for the country iso code l_stmt = conn.createStatement(); l_rs = l_stmt.executeQuery( "SELECT * FROM countries" + " WHERE country_iso_code ='" + Iso_Code + "'"); //Affichage du résultat de la requête l_rs.next(); System.out.print(l_rs.getString(1) + " - "); System.out.print(l_rs.getString(2) + " - "); System.out.println(l_rs.getString(3)); // Close the result set l_rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally { if (l_rs != null) { try { l_rs.close(); } catch (Exception e) { e.printStackTrace(); } } if (l_stmt != null) { try { l_stmt.close(); } catch (Exception e) { e.printStackTrace(); } } } } public static void doCreateProcedure() throws SQLException { // SQL statement to create a stored procedure String SQL_CREATE_PROC = "CREATE PROCEDURE getCountry(IN P1 VARCHAR(30))" + " LANGUAGE JAVA" + " SPECIFIC getCountry" + " NO SQL" + " EXTERNAL NAME \"SampleExternalMethods::getCountry\"" + " PARAMETER STYLE SQL"; // Create a SQL statement m_stmt = conn.createStatement(); // Execute the SQL m_stmt.executeUpdate(SQL_CREATE_PROC); // Close the statement //m_stmt.close(); } public static void doInvokeProcedure() throws SQLException { // Create SQL to invoke stored procedures String SQL_USE_PROC = "{ call getCountry(?) }"; // Create a callable statement with three binding parameters m_callStmt = conn.prepareCall(SQL_USE_PROC); m_callStmt.setString(1, "CA"); m_callStmt.executeQuery(); // Close the callable statement //m_callStmt.close(); } }
Afterwards, I have read this note in a Pointbase document:
To invoke the dateConvert external Java method from a stored function, you must use the
CREATE FUNCTION statement. The dateConvert external Java method is called from the
class, SampleExternalMethods.
In order for the database to access this external Java method, the class SampleExternalMethods
must be included in the database CLASSPATH. For PointBase Embedded - Server Option, it
must be in the Server CLASSPATH, but not in the Client CLASSPATH.
If PointBase Server is run with the Java Security Manager, in the java policy file grant
’com.pointbase.sp.spPermission’ to the class that implements the external Java method.
An "spPermission" consists of a class name with no action. The class name is a name of a class
that could be used in creating a Stored Procedure in PointBase. The naming convention follows
the hierarchical property naming convention and that is supported by
"java.security.BasicPermission". An asterisk may appear by itself, or if immediately preceded
by ".", may appear at the end of the name, to signify a wildcard match. The name cannot
contain any white spaces.
I'm not sure, but I suppose that I must include the class SampleExternalMethods in a .jar file.
The database CLASSPATH could be : C:\Sun\AppServer\pointbase\lib\
These my files in this database CLASSPATH:
pbclient.jar
pbembedded.jar
pbtools.jar
pbupgrade.jar
I have tryed to include the class SampleExternalMethods in pbclient.jar and pbembedded.jar with this command:
jar -uf pbembedded.jar SampleExternalMethods
Afterwards I do that,
1) Start Pointbase
2) Configuration of classpath
set classpath=C:\Sun\AppServer\pointbase\lib\pbclient.jar
set classpath=%classpath%;D:\J2EE\Ch07Code\Ch07_06
I precise that my file SampleExternalMethods is into D:\J2EE\Ch07Code\Ch07_06\Ch07.
Then, I run the program:
D:\J2EE\Ch07Code\Ch07_06>java -Djdbc.drivers=com.pointbase.jdbc.jdbcUniversalDriver Ch07.SampleExternalMethods
But I have an error message:
Exception in thread "main" java.lang.NoClassDefFoundError: Ch07.SampleExternalMethods (wrong name: SampleExternalMethods)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.DefineClass(ClassLoader.java:539)
The problem, I suppose, comes from that the class SampleExternalMethods
must be included in the database CLASSPATH, but there is a pbserver.jar with pointbase normally, but I didn't find it. That's why I use pbembedded.jar or pbclient.jar in order to include the class SampleExternalMethods. May be I must start from C:\Sun\AppServer\pointbase\lib\ instead of D:\J2EE\Ch07Code\Ch07_06\Ch07?
Please, can somebody helps me?
Thank you in advance.
cagou!jschell wrote:
And I doubt you can recurse like that for embedded java. You must have a class that does the functionality and another class that creates the proc.
>And I doubt you can recurse like that for embedded java. You must have a class that does the functionality and another class that creates the proc.
>
And I doubt you can recurse like that for embedded java. You must have a class that does the functionality and another class that creates the proc.
Thank you for your response, I have done two classes:
SampleExternalMethods.java:
package Ch07;
import java.sql.*;*
*public class SampleExternalMethods*
*public static void getCountry(String Iso_Code)*
*// A connection object to allow database callback*
*Connection l_conn = null;*
*Statement l_stmt = null;*
*ResultSet l_rs = null;*
*try*
*String url = "jdbc:pointbase:server://localhost/pointbaseDB";*
*String username = "PBPUBLIC";*
*String password = "PBPUBLIC";*
*l_conn = DriverManager.getConnection(url, username, password);*
*// Query the database for the country iso code*
*l_stmt = l_conn.createStatement();*
*l_rs = l_stmt.executeQuery( "SELECT* FROM PBPUBLIC.COUNTRIES"
+" WHERE country_iso_code ='"+ Iso_Code +"'");+
+//Affichage du résultat de la requête+
+l_rs.next();+
+System.out.print(l_rs.getString(1)+ " - ");
System.out.print(l_rs.getString(2) +" - ");+
+System.out.println(l_rs.getString(3));+
+// Close the result set+
+l_rs.close();+
+} catch (SQLException e) {+
+e.printStackTrace();+
+} finally {+
+if (l_rs != null) {+
+try {+
+l_rs.close();+
+} catch (Exception e) {+
+e.printStackTrace();+
+}+
+}+
+if (l_stmt != null) {+
+try {+
+l_stmt.close();+
+} catch (Exception e) {+
+e.printStackTrace();+
+}+
+}+
+if (l_conn != null) {+
+try {+
+l_conn.close();+
+} catch (Exception e) {+
+e.printStackTrace();+
+}+
+}+
+}+
+}+
+}+
CreateMethods.java:
+package Ch07;+
+import java.sql.*;+
+public class CreateMethods+
+{+
+// A connection object to allow database callback+
+static Connection m_conn = null;+
+static Statement m_stmt;+
+static CallableStatement m_callStmt = null;+
+public static void main(String[] args)+
+{+
+try+
+{+
+String url = "jdbc:pointbase:server://localhost/pointbaseDB";+
+String username = "PBPUBLIC";+
+String password = "PBPUBLIC";+
+m_conn = DriverManager.getConnection(url, username, password);+
+doCreateProcedure();+
+doInvokeProcedure();+
+} catch (SQLException e) {+
+e.printStackTrace();+
+} finally {+
+if (m_stmt != null) {+
+try {+
+m_stmt.close();+
+} catch (Exception e) {+
+e.printStackTrace();+
+}+
+}+
+if (m_callStmt != null) {+
+try {+
+m_callStmt.close();+
+} catch (Exception e) {+
+e.printStackTrace();+
+}+
+}+
+if (m_conn != null) {+
+try {+
+m_conn.close();+
+} catch (Exception e) {+
+e.printStackTrace();+
+}+
+}+
+}+
+}+
+public static void doCreateProcedure() throws SQLException {+
+// SQL statement to create a stored procedure+
+String SQL_CREATE_PROC = "CREATE PROCEDURE PBPUBLIC.getCountry(IN P1 VARCHAR(30))"+
" LANGUAGE JAVA"
+" SPECIFIC getCountry"+
" NO SQL"
+" EXTERNAL NAME \"SampleExternalMethods::getCountry\""+
" PARAMETER STYLE SQL";
// Create a SQL statement
m_stmt = m_conn.createStatement();
// Execute the SQL
m_stmt.executeUpdate(SQL_CREATE_PROC);
// Close the statement
//m_stmt.close();
public static void doInvokeProcedure() throws SQLException {
// Create SQL to invoke stored procedures
String SQL_USE_PROC = "{ call getCountry(?) }";
// Create a callable statement with three binding parameters
m_callStmt = m_conn.prepareCall(SQL_USE_PROC);
m_callStmt.setString(2, "CA");
m_callStmt.executeQuery();
// Close the callable statement
//m_callStmt.close();
}But I have the same error message that previously.
I have read this note and I suppose that the problem is linked:
If PointBase Server is run with the Java Security Manager, in the java policy file grant
*com.pointbase.sp.spPermission to the class that implements the external Java method.*
An "spPermission" consists of a class name with no action. The class name is a name of a class
that could be used in creating a Stored Procedure in PointBase. The naming convention follows
the hierarchical property naming convention and that is supported by
*"java.security.BasicPermission". An asterisk may appear by itself, or if immediately preceded*
by ".", may appear at the end of the name, to signify a wildcard match. The name cannot
contain any white spaces.
Can you explain me what I must to do in order to solve this problem of spPermission.
Thanks. -
I have created a PDF form with field but for some reason I cant type in them
I have created a PDF form with field but for some reason I cant type in them
May be that the text fields are read-only.
-
I have created a PDF form with multiple drop downs, all with the same drop down values. When I select a value from 1 of the drop down fields, it replicates in all of the others - which I do not want. Can I fix this?
I'm fairly new to this, but I think it has to do with the way you have the drop downs named. Did you copy one then keep pasting it in each field? If so, that is the problem. You should rename each one with a different number: Dropdown1, Dropdown2, etc. I think that might solve the issue.
-
How to create an ABAP Query with OR logical expression in the select-where
Hi,
In trying to create an ABAP query with parameters. So it will select data where fields are equal to the parameters entered. The default logical expression is SELECT.. WHERE... AND.. However I want to have an OR logical expression instead of AND.. how can I attain this??
Please help me on this.. Points will be rewarded.
Thanks a lot.
Regards,
Question ManHi Bhupal, Shanthi, and Saipriya,
Thanks for your replies. But that didn't answer my question.
Bhupal,
You cannot just replace AND with OR in an ABAP QUERY. ABAP QUERY is a self generated SAP code. You'll just declare the tables, input parameters and output fields to be displayed and it will create a SAP standard code. If you'll try to change the code and replace the AND with OR in the SAP standard code, the system will require you to enter access key/object key for that particular query.
Shanthi,
Yes, that is exactly what need to have. I need to retireve DATA whenever one of the conditions was satisfied.
Saipriya,
Like what I have said, this is a standard SAP code so we can't do your suggestion.
I have already tried to insert a code in the ABAP query (there's a part there wherein you can have extra code) but that didn't work. Can anybody help me on this.
Thanks a lot.
Points will be rewarded.
Regards,
Question Man
Maybe you are looking for
-
Hi, I run logic pro 9 with a mac mini server under lion 10.7.2 and it crashes all the time I get this crash report: Anyone knows how to solve this? Thanks Process: Logic Pro [1877] Path: /Applications/Logic Pro.app/Contents/MacOS/L
-
I need Help
-
I don't have the option to run firefox 8 in 32 bit mode on my computer
The majority of the websites I try to open give me a pop up saying I need to open them in "32 Bit Mode". When I go to the applications, then Firefox, I don't have the option of 32 bit mode there. Do I have to download it? My dad has it on his compute
-
Pathway to follow for learning SAP XI
Hi all, I think that I am the only one here without any prior knowledge of SAP,ABAP,J2EE,EAI or any other xi related technology. But I have spend around 6 months in learning XI by myself, but today also i don't find any confidence in myself to take a
-
Hi Team, I am trying to setup event sync between OEM and SCOM. From OEM documentation: <<<<<< The SCOM Agent must be installed on a Windows system that has connectivity to the SCOM Root Management Server (RMS). You can install the SCOM web service on