Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

How to Create Large number of pattern file(65536) automatically in Digital Pattern Editor

Solved!
Go to solution

Dear community,I need creat  65536 pattern files(.digipat) to bust, but the files is so many, I can't creat one by one in manual, so I'm looking for some methords to  create Automatically. I find a way about Digital Pattern Compiler, but it's crash when I tried to open. 

 

At present, I don't know how to solution, can you give me some advices? thanks.

 

(Remark: my English is not well, hope my words will not affect reading. I'm sorry!!)

0 Kudos
Message 1 of 11
(1,962 Views)

But why 65536????

 

Are you trying to hardcode a specific value? like creating separate patterns for each possible value of a register?? you might want to look into using source patterns

 

Simple, no no no

Santhosh
Soliton Technologies

New to the forum? Please read community guidelines and how to ask smart questions

Only two ways to appreciate someone who spent their free time to reply/answer your question - give them Kudos or mark their reply as the answer/solution.

Finding it hard to source NI hardware? Try NI Trading Post
0 Kudos
Message 2 of 11
(1,954 Views)

Dear santo_13:

thanks for your reply.

 

Why 65536??   Because I need make PXIe-6571 output so many times to verify my chips.

 

Yes, I'm now also trying to  encode by LabVIEW, but I don't know how to express the "INLDNL.digipat"(figure 1) in LabVIEW, what should I do to replace the VI "niDigital Load Pattern.vi"(figure 2)

 

Figure 1Figure 1Figure 2Figure 2

0 Kudos
Message 3 of 11
(1,951 Views)

No no no no, you don't need to create separate patterns. The main feature of 6571 compared to HSDIO is the ability to have source and capture patterns.

 

Could you please explain what you're trying to achieve?

 

Looks like you're a beginner using 6571 and somebody tasked you with writing an ADC/DAC INL_DNL test and you don't know how to utilize the 6571 features effectively.

 

 

Santhosh
Soliton Technologies

New to the forum? Please read community guidelines and how to ask smart questions

Only two ways to appreciate someone who spent their free time to reply/answer your question - give them Kudos or mark their reply as the answer/solution.

Finding it hard to source NI hardware? Try NI Trading Post
0 Kudos
Message 4 of 11
(1,931 Views)

Yes, I'm a beginner using 6571. 

 

My final purpose is try to control 6571 output 65536 times Continuously by write code in LabVIEW instead create 65536 .digipat files in Digital Pattern Editor.

0 Kudos
Message 5 of 11
(1,925 Views)

Or how to program  could make data into 6571 so that can achieve like .digpat file

微信图片_20210821155430.png

0 Kudos
Message 6 of 11
(1,905 Views)

Please explain what you're trying to achieve, test method in specific and I will guide you appropriately.

 

As per your limited knowledge you want to replace the pattern load part, but that is not required. I believe you're writing some data to the DUT using SPI protocol and you want to write different or same data multiple times, for this use case you just need ONLY ONE pattern along with Source waveform.

 

This of the source waveform as a variable inside the pattern whose value can be written from software during runtime and allows you to reuse a pattern structure with a different set of values.

 

I would recommend you looking at the SPI register I/O example of digital pattern editor.

santo_13_0-1629554838542.png

 

Take up this training - https://www.ni.com/en-us/shop/services/products/device-testing-with-digital-pattern-instruments-cour...

 

Santhosh
Soliton Technologies

New to the forum? Please read community guidelines and how to ask smart questions

Only two ways to appreciate someone who spent their free time to reply/answer your question - give them Kudos or mark their reply as the answer/solution.

Finding it hard to source NI hardware? Try NI Trading Post
0 Kudos
Message 7 of 11
(1,894 Views)

Dear Santo_13:

All you said is right, I want to writing some diffirent data to the DUT 65536 times by using SPI protocol to test DAC/ADC INL_DNL.

You said I just need ONLY ONE pattern along with Source waveform, I'm tring to acheive "the pattern whose value can be written from software during runtime", I'm really sorry I can't express my thoughts accurately in English.

 

The training of the link I will study carefully and also look forward  your guidance sincerely

 

 

0 Kudos
Message 8 of 11
(1,882 Views)

Figure 1Figure 1Figure 2Figure 2Figure 3Figure 3Figure 4Figure 4Figure 5Figure 5Figure 6Figure 6Figure 7Figure 7

 

For example,the data bit width is 8. Figure 1 data is "0000 0000", Figure 2 data is "0000 0001", Figure 3 data is "0000 0010", Figure 4 data is "0000 0011", Figure 5 data is "1111 1101", Figure 6 data is "1111 1110", Figure 7 data is "1111 1111".

 

At present, I have to create 32678 patterns that will spend so much time. Now, dear Santo_13, I need your guidence to save time.

Looking forward to your reply and thank you very much

0 Kudos
Message 9 of 11
(1,879 Views)
Solution
Accepted by topic author JCHe

First, I appreciate your willingness to learn.

 

It is simple (has quite a bunch of steps you need to understand), for this you will be using the source waveform feature of 657x, do the following,

  • Change the Data bits for D0-D7 to 'D' state and use source opcode
    santo_13_0-1629761360466.png
    • This tells the pattern that the digital state for these vectors will be dynamically defined by a source waveform
  • Create a source waveform by right-clicking on the project tree
    santo_13_1-1629761437292.png

     

  • Configure it with below values
    santo_13_2-1629761487927.png

     

    • This creates a source waveform configuration to be used along with the pattern. Here you define that each sample is 8bits long and it is MSB first when used in the pattern.
  • In the original pattern, in the first vector, add this opcode
    santo_13_3-1629761536301.png

     


    • This tells the pattern to use the data from 'register_write_data' source waveform for every call of 'source' opcode
  • Now on the programming part, you need to load this source waveform configuration into memory like you load a pattern
    • Implement this along with initialization part
      santo_13_5-1629761960328.png

       

    • To update the data in the pattern before burst
      santo_13_7-1629762019170.png

       

 

In short, imagine this source waveform as a form of variable used to store a set of digital states that you need to dynamically determine during the execution of your automation, so you need to define this variable (source waveform configuration as tdms file), write to this variable (write source waveform call), run the function that uses this variable (burst pattern(

Santhosh
Soliton Technologies

New to the forum? Please read community guidelines and how to ask smart questions

Only two ways to appreciate someone who spent their free time to reply/answer your question - give them Kudos or mark their reply as the answer/solution.

Finding it hard to source NI hardware? Try NI Trading Post
0 Kudos
Message 10 of 11
(1,862 Views)