Jump to content

Search the Community

Showing results for tags 'pattern generator'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • News
    • New Users Introduction
    • Announcements
  • Digilent Technical Forums
    • FPGA
    • Test and Measurement
    • Measurement Computing (MCC)
    • Add-on Boards
    • Digilent Microcontroller Boards
    • Non-Digilent Microcontrollers
    • LabVIEW
    • FRC
    • Other
  • General Discussion
    • Project Vault
    • Learn
    • Suggestions & Feedback
    • Buy, Sell, Trade
    • Sales Questions
    • Off Topic
    • Educators
    • Technical Based Off-Topic Discussions
    • Archived

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Found 8 results

  1. Hi, I'm using the Waveform SDK with Python and I'm not able to get the DD to start the pattern output with a digital input as trigger. I have tried to look into the different examples in the SDK, but none of them seem to fit this exact use case. Use case: Preparation: Generate a pattern Run time: Get a rising edge on a specified I/O pin (e.g. DIO-25) Wait an amount of time using FDwfDigitalOutWaitSet Play pattern on a specified I/O pin (e.g. DIO-24) Do you have a code snippet which fits this use case? Best, Hakon.
  2. Hello ! Currently, I'm trying to use the script editor to automate patterns generation from csv files. I was wondering if it was possible to add (and also remove) a channel from the script (and specify it Name/Pin) ? In fact, in the csv I use the number of signals (channels) can vary from one to six. Here is my script for the moment, the while loop allows me to manage the changing number of signal in the csv file. Any help would be appreciated. Thanks, Aurélian.
  3. I'm trying to output a custom digital waveform that is a frequency modulated bit stream. The basic scheme is as follows: 1. Preamble: frequency starts out at 10KHz for 400 cycles After 2. for a 1 bit, send 20 13KHz cycles, followed by 20 10KHz cycles 3. for a 0 bit, send 10 6KHz cycles, followed by 20 10KHz cycles 4. Postable: frequency runs at 10KHz for 400 Cycles. I can generate the signal with python but I seem to be running into bitstream length issue. The moment the data gets over 1024 "bits" (actual bits, not the frequency modulated ones), the signal is not generated. My code is below but it's modified to only send 1024 bits. My second issue is that when this pattern works, it repeats. I would like it to run only once. I tried a few things found in forums but there's no documentation for the python interface. from ctypes import * from dwfconstants import * import sys import time if sys.platform.startswith("win"): dwf = cdll.dwf elif sys.platform.startswith("darwin"): dwf = cdll.LoadLibrary("/Library/Frameworks/dwf.framework/dwf") else: dwf = cdll.LoadLibrary("libdwf.so") hdwf = c_int() version = create_string_buffer(16) dwf.FDwfGetVersion(version) print("DWF Version: "+str(version.value)) print("Opening first device") dwf.FDwfDeviceOpen(c_int(-1), byref(hdwf)) if hdwf.value == 0: print("failed to open device") szerr = create_string_buffer(512) dwf.FDwfGetLastErrorMsg(szerr) print(str(szerr.value)) quit() print("Configuring Digital Out") hzSys = c_double() dwf.FDwfDigitalOutInternalClockInfo(hdwf, byref(hzSys)) data_one_wave = [1,1,1,0,0,0] data_zero_wave = [1,1,1,1,1,1,0,0,0,0,0,0] data_amble_wave = [1,1,1,1,0,0,0,0] data_preamble = data_amble_wave * 4 data_zero_bit = (data_zero_wave * 2) + (data_amble_wave * 3) data_one_bit = (data_one_wave * 4) + (data_amble_wave * 3) data_postamble = data_preamble # Message with short preamble, 07, 1000, 07, short postamble data_to_send = data_preamble \ + data_zero_bit + data_zero_bit + data_zero_bit + data_one_bit \ \ + data_zero_bit + data_zero_bit + data_one_bit + data_one_bit \ + data_one_bit + data_one_bit + data_one_bit + data_zero_bit \ + data_one_bit + data_zero_bit + data_zero_bit + data_zero_bit \ \ + data_zero_bit + data_zero_bit + data_zero_bit + data_one_bit \ + data_postamble time_to_sleep = 5 # Message with just preamble - 10KHz # data_to_send = data_preamble # time_to_sleep = 3 print("Sending " + str(len(data_to_send)) + " bit of data") data_py = data_to_send # how many bytes we need to fit this many bits, (+7)/8 rgbdata=(c_ubyte*((len(data_py)+7)>>3))(0) # array to bits in byte array for i in range(len(data_py)): if data_py[i] != 0: rgbdata[i>>3] |= 1<<(i&7) pin=0 # generate pattern dwf.FDwfDigitalOutEnableSet(hdwf, c_int(pin), c_int(1)) dwf.FDwfDigitalOutIdleSet(hdwf, c_int(0), DwfDigitalOutIdleHigh) dwf.FDwfDigitalOutTypeSet(hdwf, c_int(pin), DwfDigitalOutTypeCustom) # 80kHz sample rate dwf.FDwfDigitalOutDividerSet(hdwf, c_int(pin), c_int(int(hzSys.value/80e3))) # set sample rate dwf.FDwfDigitalOutDataSet(hdwf, c_int(pin), byref(rgbdata), c_int(len(data_py))) # This doesn't seem to work. dwf.FDwfDigitalOutRepeatSet(hdwf, c_int(1)) # repeat once print("Generating pattern...") dwf.FDwfDigitalOutConfigure(hdwf, c_int(1)) time.sleep(time_to_sleep) dwf.FDwfDigitalOutReset(hdwf) dwf.FDwfDeviceCloseAll() If I bump any of the "multipliers on the data_preamble or similar variables to make a longer stream, the output doesn't get generated. I'm basically using a "common denominator" clock that can handle all 3 frequencies and mapping the 1s and 0s as needed. If there's a better way to do this, I'm all ears. The only requirement is that the control of the number of cycles must be exact. Can you help?
  4. Hi. I have troubles using the trigger functions in the SDK to align the recording of a signal with the pattern generator (DigitalOut Instrument on AD2). What I want to do is essentially, using the SDK in a python script is: - I record a signal from the AWG on the AD2 I am sending through an analog circuit using two multiplexers. - I control the multiplexers with the digitalOut instrument on the AD2. - I want to align the starting point of the digitalOut-pattern and the starting point of the AnalogIn acquisition (record-mode, int16 data) As far as I understand from the SDK reference for this purpose I can trigger the analogIn with the digitalOut (use trigsrcDigitalOut from the dwf constants). However, when I implemented this, I get an undefined timelag between the acquistion of data and the start of the digitalOut signal. To illustrate this, I recorded the signal of one of the digital pins I use to generate the pattern for the multiplexers (I record the bare 16int ADC conversions, to read faster from the AD2). I sample at 1Mhz and the the pattern I output on this particular pin starts with (1,0,...) at 100Hz. As you can see, the timelag seems to be around ca. 1.5 ms. I also did another experiment, trying out the same thing in the WaveForms Software. Instead of outputting a custom pattern, I just output a clock at 100Hz on the same digital pin and record this signal through channel 1 of the oscilloscope. From what I understand, the two experiments should be pretty much equal, so I am puzzled I get this delay of approximately 1.5ms when I implement it with SDK functions. Does anyone have an explanation why the trigger is not correctly aligned in my python script, and why this timelag is not deterministic? Any help would be greatly appreciated! (PS: I can provide a code snippet, but right now my code is shared from different fies & classes, so it is not straightforward to copy it to here...) updated: I have a code snippet for illustration below: import math import sys import time from ctypes import * import matplotlib.pyplot as plt import numpy from dwfconstants import * if sys.platform.startswith("win"): dwf = cdll.dwf elif sys.platform.startswith("darwin"): dwf = cdll.LoadLibrary("/Library/Frameworks/dwf.framework/dwf") else: dwf = cdll.LoadLibrary("libdwf.so") # declare ctype variables hdwf = c_int() sts = c_byte() hzAcq = c_double(1e6) nSamples = 2 ** 17 rgSamples = (c_int16 * nSamples)() cAvailable = c_int() cLost = c_int() cCorrupted = c_int() fLost = 0 fCorrupted = 0 # print(DWF version version = create_string_buffer(16) dwf.FDwfGetVersion(version) print("DWF Version: " + str(version.value)) # open device print("Opening first device") dwf.FDwfDeviceOpen(c_int(-1), byref(hdwf)) if hdwf.value == hdwfNone.value: szerr = create_string_buffer(512) dwf.FDwfGetLastErrorMsg(szerr) print(str(szerr.value)) print("failed to open device") quit() ######################################################################################## # set up pattern generator data = [1, 0, 1, 0, 0, 1, 0, 0, 1] pin = 11 hzSys = c_double() dwf.FDwfDigitalOutInternalClockInfo(hdwf, byref(hzSys)) rgbdata = (c_ubyte * ((len(data) + 7) >> 3))(0) # array to bits in byte array for j in range(len(data)): if data[j] != 0: rgbdata[j >> 3] |= 1 << (j & 7) # var |= value is var = var | value print("bytestream of data " + str(pin) + ": " + str(list(rgbdata))) dwf.FDwfDigitalOutEnableSet(hdwf, c_int(pin), c_int(1)) dwf.FDwfDigitalOutTypeSet(hdwf, c_int(pin), DwfDigitalOutTypeCustom) dwf.FDwfDigitalOutIdleSet(hdwf, c_int(pin), DwfDigitalOutIdleLow) # set Divider to generate output at frequency f_scan. dwf.FDwfDigitalOutDividerSet(hdwf, c_int(pin), c_int(int(hzSys.value / 100))) dwf.FDwfDigitalOutDataSet(hdwf, c_int(pin), byref(rgbdata), c_int(len(data))) dwf.FDwfDigitalOutTriggerSourceSet(hdwf, trigsrcNone) # set up acquisition dwf.FDwfAnalogInChannelEnableSet(hdwf, c_int(0), c_bool(True)) dwf.FDwfAnalogInChannelRangeSet(hdwf, c_int(0), c_double(5)) dwf.FDwfAnalogInAcquisitionModeSet(hdwf, acqmodeRecord) dwf.FDwfAnalogInFrequencySet(hdwf, hzAcq) dwf.FDwfAnalogInRecordLengthSet( hdwf, c_double(nSamples / hzAcq.value) ) # -1 infinite record length dwf.FDwfAnalogInTriggerSourceSet(hdwf, trigsrcDigitalOut) # wait at least 2 seconds for the offset to stabilize time.sleep(2) print(f"Starting oscilloscope. Measure digitalout pin {pin}") dwf.FDwfAnalogInConfigure(hdwf, c_int(0), c_int(1)) # configure digitalOut instrument, don't run yet (enough time to fill buffer with data) dwf.FDwfDigitalOutConfigure(hdwf, c_int(0)) time.sleep(2) cSamples = 0 # start the digitalOut instrument dwf.FDwfDigitalOutConfigure(hdwf, c_int(1)) while cSamples < nSamples: dwf.FDwfAnalogInStatus(hdwf, c_int(1), byref(sts)) if cSamples == 0 and ( sts == DwfStateConfig or sts == DwfStatePrefill or sts == DwfStateArmed ): # Acquisition not yet started. continue dwf.FDwfAnalogInStatusRecord( hdwf, byref(cAvailable), byref(cLost), byref(cCorrupted) ) cSamples += cLost.value if cLost.value: fLost = 1 if cCorrupted.value: fCorrupted = 1 if cAvailable.value == 0: continue if cSamples + cAvailable.value > nSamples: cAvailable = c_int(nSamples - cSamples) dwf.FDwfAnalogInStatusData16( hdwf, c_int(0), byref(rgSamples, sizeof(c_int16) * cSamples), c_int(0), cAvailable, ) # get channel 1 data # dwf.FDwfAnalogInStatusData16(hdwf, c_int(1), byref(rgSamples, sizeof(c_int16)*cSamples), c_int(c), Available) # get channel 2 data cSamples += cAvailable.value dwf.FDwfAnalogOutReset(hdwf, c_int(0)) dwf.FDwfDeviceCloseAll() print("Recording done") if fLost: print("Samples were lost! Reduce frequency") if fCorrupted: print("Samples could be corrupted! Reduce frequency") f = open("record.csv", "w") for v in rgSamples: f.write("%s\n" % v) f.close() plt.plot(numpy.fromiter(rgSamples, dtype=numpy.int16)) plt.show()
  5. Hello, I'm trying to use the AD2 pattern generator to create a (digital) sine wave using a value table table. I connected the external trigger to a clock of 10MHz, to create a sine with the frequency of 10/1024 MHz (with 1024 being the size of the table). When I compare the resulting sine wave to a sine wave generated by an FPGA, using a look-up table with the same size and clock, I see that both signals drift apart from each other, even though both of them seem to have the same period. Am I using this tool the wrong way? Is my setting for a trigger wrong somehow?
  6. Greetings, I am working on a project using the Pattern Generator and Logic Analyzer functions of Analog Discovery 2. I'm trying to figure out the proper arrangements of bits to be assigned to the Pattern Generator so that the Logic Analyzer can receive it in UART format properly. Let's say I want to transmit the word "UART" using the Pattern Generator. Here's how I'm doing it using the Custom Signal setting in the Pattern Generator: The bits highlighted in green are the start and stop bits while those in yellow are the inverted data bits of the word "UART". I also adjusted the Run and Repeat time to only transmit it once. (40/9600 = 0.004166666) I transmitted it to the Logic Analyzer and it was able to receive it using the UART setting. The problem that I see with this is if you want to transmit a single character, you'll need 10 bits for it. For big data, it will take too long to be received by the Logic Analyzer. I was wondering if the Pattern Generator can be set up like this: 1 start bit + (32 Data bits of "UART") + 1 stop bit This reduces the no. of bits by only using the start and stop bits at the beginning and at the end of the data to be transmitted. I tried doing this by rearranging the bits, the run time and repeat settings in the Pattern Generator: The results that I got using the Logic Analyzer became incorrect for the next characters: I'm also trying to do it in VB. Here's the code for it: Imports System.Text Module Module1 Function AD2_UARTCommRead(ByVal hdwf As Integer, ByRef rgData() As Byte, ByVal countOfDataBytes As Integer, ByVal hzRate As Integer, ByVal hzUart As Integer, ByVal pin As Integer, ByRef rgParsed As String, ByRef rgLength As Integer) As Integer 'Customized Uart Decoder Dim pData As Boolean Dim fData As Boolean : fData = True Dim cSamples As Integer : cSamples = rgData.Length Dim rgHex(cSamples) As Byte Dim cSamplePerBit As Integer : cSamplePerBit = hzRate / hzUart 'Decoding Raw Samples into Decimal For i = 0 To cSamples - 1 Dim s As Byte : s = rgData(i) pData = fData fData = 1 And (s >> pin) If pData <> 0 And fData = 0 Then Dim bValue As Integer : bValue = 0 For b = 0 To 7 Dim ii As Double : ii = Math.Round(i + (1.499 + b) * cSamplePerBit) ''''' If ii >= cSamples Then Exit For End If s = rgData(ii) fData = 1 And (s >> pin) If fData Then bValue = bValue + (1 << b) End If Next rgHex(i) = bValue i = i + cSamplePerBit * 9.499 - 1 '1 start + 8 bits + 0.5 stop -1 because For will increment End If Next 'Converting Decimal to ASCII Dim rgString As String For e = 0 To cSamples - 1 If rgHex(e) = 0 Then rgString = rgString Else rgString = rgString + Chr(rgHex(e)) End If Next e rgParsed = rgString rgLength = Len(rgParsed) End Function Function AD2_FDwfDigitalOutDataLong(ByVal Hdwf As Integer, ByVal IdxChannel As Integer, ByRef RgLong As String, ByVal LongBits As Integer) As Integer 'Post Processing Method 'Conversion of ASCII String to Binary Dim Text As String : Text = RgLong Dim n As Integer : n = Len(Text) Dim oReturn As New StringBuilder Dim StartBit As String : StartBit = "0" Dim StopBit As String : StopBit = "1" oReturn.Append(StartBit) For Each Character As Byte In System.Text.ASCIIEncoding.ASCII.GetBytes(Text) oReturn.Append(StrReverse(Convert.ToString(Character, 2).PadLeft(8, "0"))) 'oReturn.Append((Convert.ToString(Character, 2).PadLeft(8, "0"))) Next oReturn.Append(StopBit) Dim Text2 As String : Text2 = (oReturn.ToString) 'Padding of Additional 1s Dim Counter As Integer : Counter = Len(Text2) Dim PadMod As Integer : PadMod = (Counter + (Counter + (Counter Mod 8))) Mod 8 Dim PadBin As String : PadBin = New String("1", PadMod) Text2 = Text2 + PadBin Dim PadResult As Integer : PadResult = Counter + PadMod 'Chunking of Bits into 8 Dim RevBytes(PadResult) As String For e As Integer = 0 To RevBytes.Length - 8 Step 8 RevBytes(e) = Text2.Substring(e, 8) Next e Dim backup As String Dim Extracted(PadResult) As String Dim TxBits(PadResult) As Byte Dim f As Integer, x As Integer Dim lTemp As Integer : lTemp = 0 Dim lngValue As Integer 'Inverting and Conversion of Bits For f = 0 To RevBytes.Length backup = StrReverse(RevBytes(8 * f)) If backup = "" Then Extracted(f) = "0" Extracted(f) = Extracted(f) & backup 'Conversion of Binary to Decimal lngValue = Convert.ToInt32(Extracted(f), 2) TxBits(f) = lngValue lngValue = 0 If TxBits(f) = 0 Then Exit For Next f Call FDwfDigitalOutDataSet(Hdwf, IdxChannel, TxBits, PadResult) End Function Sub Main() Dim hdwf As Long ' 3 = 4th device configuration of AD2 with 16k digital-in/out buffer If FDwfDeviceConfigOpen(-1, 3, hdwf) = False Then Dim szError As String FDwfGetLastErrorMsg(szError) System.Console.WriteLine("Device open failed" & vbCrLf & szError, vbExclamation + vbOKOnly) End End If FDwfDeviceAutoConfigureSet(hdwf, 0) ' only the #Configure functions will apply settings ' UART channels: DIO-0 and DIO-1, h3 = (1 << 0)|(1 << 1) Const nLoop = 744 Const fsDio = &HFFFF Const hzUart = 230400 Const hzRate = hzUart * 1 ''''' Const cSamples = 8 * 4 'RgLong is 4 characters Dim cBuffer As Integer Dim RgLong As String : RgLong = "UART" Dim secRun As Double : secRun = (Len(RgLong) * 8) * (1 / hzUart) Dim phzFreq As Double 'PatGen Parameters - Initialized One Time FDwfDigitalOutInternalClockInfo(hdwf, phzFreq) FDwfDigitalOutRepeatSet(hdwf, 1) FDwfDigitalOutRunSet(hdwf, secRun) 'Enabling DIO-0 FDwfDigitalOutEnableSet(hdwf, 0, 1) FDwfDigitalOutTypeSet(hdwf, 0, 1) FDwfDigitalOutIdleSet(hdwf, 0, 2) FDwfDigitalOutDividerSet(hdwf, 0, (phzFreq / hzUart)) Dim hzDI As Double FDwfDigitalInInternalClockInfo(hdwf, hzDI) FDwfDigitalInTriggerSourceSet(hdwf, trigsrcDetectorDigitalIn) ' 'Falling Edge of any specified channel FDwfDigitalInTriggerSet(hdwf, 0, 0, 0, fsDio) FDwfDigitalInDividerSet(hdwf, hzDI / hzRate) FDwfDigitalInSampleFormatSet(hdwf, 8) FDwfDigitalInBufferSizeInfo(hdwf, cBuffer) If cSamples > cBuffer Then ' FDwfDigitalInAcquisitionModeSet(hdwf, acqmodeRecord) FDwfDigitalInTriggerPrefillSet(hdwf, 0) 'Number of samples after trigger FDwfDigitalInTriggerPositionSet(hdwf, cSamples) 'We are interested only on toggles of the specified channels FDwfDigitalInSampleSensibleSet(hdwf, fsDio) Else FDwfDigitalInBufferSizeSet(hdwf, cSamples) FDwfDigitalInTriggerPositionSet(hdwf, cSamples - 10) End If 'Processing Data for Transmission AD2_FDwfDigitalOutDataLong(hdwf, 0, RgLong, 510) 'Data needs to be tested for 744 times Dim StartTime As Double Dim SecondsElapsed As Double 'Measuring Test Time StartTime = Timer If cSamples <= cBuffer Then ' prime for repeated captures FDwfDigitalInConfigure(hdwf, 1, 1) ' it will rearm for consecutive iterations FDwfDigitalOutConfigure(hdwf, 1) End If For i = 0 To nLoop - 1 Dim rgData(cSamples) As Byte Dim sts As Byte Dim fOverflow As Boolean = False Dim iSample As Integer = 0 If cSamples > cBuffer Then ' record FDwfDigitalInConfigure(hdwf, 1, 1) ' restart is only required for record FDwfDigitalOutConfigure(hdwf, 1) Dim cAvailable As Integer Dim cLost As Integer Dim cCorrupted As Integer While iSample < cSamples If FDwfDigitalInStatus(hdwf, 1, sts) = 0 Then Return End If If sts = DwfStateDone Or sts = DwfStateTriggered Then FDwfDigitalInStatusRecord(hdwf, cAvailable, cLost, cCorrupted) If cLost <> 0 Or cCorrupted <> 0 Then fOverflow = True End If cAvailable = Math.Min(cAvailable, cSamples - iSample) Dim rgTemp(cAvailable) As Byte ' in other programming languages use pass pointer to rgData[iSample] FDwfDigitalInStatusData(hdwf, rgTemp, 1 * cAvailable) For l = 0 To cAvailable - 1 rgData(iSample) = rgTemp(i) iSample += 1 Next End If If sts = DwfStateDone Then Exit While End If End While Else While True If FDwfDigitalInStatus(hdwf, 1, sts) = 0 Then Return End If If sts = DwfStateDone Then Exit While End If End While iSample = rgData.Length FDwfDigitalInStatusData(hdwf, rgData, 1 * rgData.Length) If i < nLoop - 1 Then FDwfDigitalOutConfigure(hdwf, 1) ' start next while processing data below End If End If Dim DIO0Used As Long : DIO0Used = 2 'DIO #2 Dim DIO0Mesg As String : DIO0Mesg = "" Dim DIO0Length As Long AD2_UARTCommRead(hdwf, rgData, (1 * cSamples), hzRate, hzUart, DIO0Used, DIO0Mesg, DIO0Length) Next i '***************************** 'Determine how many seconds code took to run 'Notify user in seconds SecondsElapsed = Math.Round(Timer - StartTime, 6) Console.WriteLine("This code ran successfully in " & SecondsElapsed & " seconds.\n") Console.WriteLine((nLoop) & " x" & (1000 * SecondsElapsed / nLoop) & "ms loop latency:" & (1000 * (SecondsElapsed / nLoop - cSamples / hzRate)) & "ms") FDwfDeviceCloseAll() End Sub End Module Can anyone please explain why this is the case? Any advice will do. Best regards, Lesiastas
  7. Greetings! I'm working on a project using the Analog Discovery 2. I observed that the Pattern Generator can be used as a Transmitter and the Logic Analyzer can be used as a Receiver, if used properly. Here's the VB Script that I've been working on: AD2_Time_Testing.rar The VB Script does the following: 1). ASCII data is entered. 2). The algorithm in the code will convert it into binary to be transmitted by the Pattern Generator. 3). The Logic Analyzer will receive the bits in Record Mode. 4). The UART decoder algorithm will convert the bits received back into ASCII character. The result that I'm expecting is this: "U" ---> (Converted into Binary) ---> (Transmitted by the Pattern Generator) --> (Bits received in Record Mode) --->(BIts will be converted back in ASCII) ---> "U" The actual result that I'm getting is this: (DIO#0 (Tx) and DIO#2 (Rx) was used) Data that is to be transmitted: I connected DIO #0 to DIO #2 and a UART controller. Data was sucessfully transmitted and it was received by the UART controller: I also observed the bits returned by the FDwfDigitalInStatusData became like this: I think because of this change the UART Decoder algorithm cannot process it properly. That's why I'm getting this result: The output of DIO0Mesg should be "U" as well. Any advice regarding this? Best regards, Lesiastas AD2_Time_Testing.rar
  8. Greetings, I'm working on a project utilizing the Pattern Generator function of Analog Discovery 2. I chose the Pattern Generator function based from the WaveForms GUI. In that interface, it can be used to transmit data in parallel. I created a VB Script consisting of Pattern Generator APIs, it was working fine. The problem that I encountered is its possible limitation: it can only transmit up to 102 characters. Each character consists of 10 bits (1 Start bit, 8 Data bits, and 1 Stop bit). Here are example of that scenarios: 1). Transmitted messages using DIOs #0 and #1 were received by 2 UART Controllers successfully. 1st message was exactly 102 characters. I added another character to the longer message and it became 103 characters. 2). The received results of the 2 UART Controllers is this: It was just blank for the other trials that I've done. My question is can the Pattern Generator be used to transmit data with a length more than 102 characters? If I want to transmit a minimum of 256 characters, can the Pattern Generator handle it? Any advice will surely help. Best regards, Lesiastas
×
×
  • Create New...