Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private async void Init_FTDI()
- {
- byte[] dataToWrite = new byte[1];
- dataToWrite[0] = 0x00;
- UInt32 numBytesWritten = 0;
- ftStatus = myFtdiDevice.OpenBySerialNumber("B"); //port B
- ftStatus = myFtdiDevice.SetBitMode(0xff, 0x1); //set async bitbang, all outputs
- ftStatus = myFtdiDevice.SetBaudRate(9600);
- dataToWrite[0] = 0x01; //set D0 to H (MCU reset)
- ftStatus = myFtdiDevice.Write(dataToWrite, 1, ref numBytesWritten); //set all pins on port B to 0
- myFtdiDevice.Close(); //Close port B
- ftStatus = myFtdiDevice.OpenBySerialNumber("D"); //port D
- ftStatus = myFtdiDevice.SetBitMode(0x37, 0x1); //set async bitbang
- ftStatus = myFtdiDevice.SetBaudRate(9600);
- dataToWrite[0] = 0x15;
- ftStatus = myFtdiDevice.Write(dataToWrite, 1, ref numBytesWritten); //set all pins on port D to 0
- myFtdiDevice.Close(); //close port D
- ftStatus = myFtdiDevice.OpenBySerialNumber("C"); //port C - actual UART
- ftStatus = myFtdiDevice.SetBaudRate(115200);
- ftStatus = myFtdiDevice.SetDataCharacteristics(
- FTDI.FT_DATA_BITS.FT_BITS_8,
- FTDI.FT_STOP_BITS.FT_STOP_BITS_1,
- FTDI.FT_PARITY.FT_PARITY_NONE);
- ftStatus = myFtdiDevice.SetTimeouts(0, 0);
- // Start the received data thread
- if (!DataHandler.IsBusy)
- DataHandler.RunWorkerAsync();
- // Subscribe to FT_EVENT_RXCHAR events
- ftStatus = myFtdiDevice.SetEventNotification(FTDI.FT_EVENTS.FT_EVENT_RXCHAR, DataReceived);
- //ftStatus = myFtdiDevice.Write(dataToWrite, 1, ref numBytesWritten);
- if (ftStatus != FTDI.FT_STATUS.FT_OK)
- {
- label2.Text = "Initializing board Error!";
- label2.ForeColor = System.Drawing.Color.Red;
- }
- else
- {
- label2.Text = "LakeWest Emulator Initialized";
- label2.ForeColor = System.Drawing.Color.Green;
- }
- ftdi_inited = true;
- }
- //separate backround timer thread
- private void callback(object state)
- {
- //this.Invoke((Action)(() => { label1.Text = counter.ToString(); }));
- }
- private async void Get_FTDI_connected() //ping FTDI driver
- {
- ftStatus = myFtdiDevice.GetNumberOfDevices(ref ftdiDeviceCount);
- await Task.Run(() =>
- {
- ftStatus = myFtdiDevice.GetNumberOfDevices(ref ftdiDeviceCount);
- });
- if (ftStatus == FTDI.FT_STATUS.FT_OK && ftdiDeviceCount == 4)
- {
- if(!ftdi_inited)
- {
- label2.Text = "Initializing...";
- label2.ForeColor = System.Drawing.Color.Green;
- Update();
- Thread.Sleep(2000);
- Init_FTDI();
- }
- }
- else
- {
- label2.Text = "No LakeWest board found!";
- label2.ForeColor = System.Drawing.Color.Red;
- ftdi_inited = false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement