Giter VIP home page Giter VIP logo

Comments (12)

xxxajk avatar xxxajk commented on August 15, 2024

from uhs30.

theMASTERMINDpK avatar theMASTERMINDpK commented on August 15, 2024

Hi thank you for help. I tried that example but failed. My device spec are as follows:
Description: USB Serial Converter(FTDI FT230X Basic UART)
Device Type: Vendor Specific

Protocal Version: USB 2.00
Current Speed: Full Speed
Max Current: 90mA

USB Device ID: VID = 0403 PID = 6015
Serial Number: DO2IZ7XE

Device Vendor: FTDI
Device Name: FT230X Basic UART
Device Revision: 1000

Controller Part-Number: Unknown

from uhs30.

xxxajk avatar xxxajk commented on August 15, 2024

Please turn on debugging and post the entire output.
This chip may have a quirk I need to do a fix for.
I will have to see if I have this chip in my FTDI collection...

from uhs30.

theMASTERMINDpK avatar theMASTERMINDpK commented on August 15, 2024

When i compile the code each example gives me the error:
Arduino: 1.8.5 (Windows 10), Board: "Arduino/Genuino Uno"

In file included from C:\Users\Yasir Shahzad\Documents\Arduino\libraries\UHS_host/UHS_host.h:48:0,

             from C:\Users\Yasir Shahzad\Documents\Arduino\libraries\UHS_host\UHS_CDC_ACM\examples\USB_HOST_SHIELD\acm_terminal\acm_terminal.ino:35:

C:\Users\Yasir Shahzad\Documents\Arduino\libraries\UHS_host/UHS_host_INLINE.h: In member function 'uint8_t UHS_USB_HOST_BASE::Configuring(uint8_t, uint8_t, uint8_t)':

C:\Users\Yasir Shahzad\Documents\Arduino\libraries\UHS_host/UHS_host_INLINE.h:267:30: error: request for member 'maxPktSize' in 'p->UHS_Device::epinfo[0]', which is of pointer type 'volatile UHS_EpInfo*' (maybe you meant to use '->' ?)

             p->epinfo[0].maxPktSize = 0x08; // USB Spec, start small, work your way up.

                          ^

exit status 1
Error compiling for board Arduino/Genuino Uno.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

from uhs30.

xxxajk avatar xxxajk commented on August 15, 2024

Bug fixed.
Please use an Arduino Mega.
The Arduino Uno does not have enough memory to run this library at this time, but MIGHT in the future.

from uhs30.

theMASTERMINDpK avatar theMASTERMINDpK commented on August 15, 2024

thanku i'm going to arrange arduino mega and will try. I'm trying This FTDI chip with UHS 2.0 and got some success in getting response after changing the PID value according to sensor in the libarary
image

Everything is working fine. Return codes showing success but the output is not correct. I'm sending 8 bytes of ch array with rcode=0vand should get 7 bytes of data but getting"0x01 0x60 0x60"
Here is example code given in UHS2.0:

"#include <cdcftdi.h>
#include <usbhub.h>

#include "pgmstrings.h"

// Satisfy the IDE, which needs to see the include statment in the ino too
#include <SPI.h>

class FTDIAsync : public FTDIAsyncOper
{
public:
uint8_t OnInit(FTDI *pftdi);
};

uint8_t FTDIAsync::OnInit(FTDI *pftdi)
{
uint8_t rcode = 0;

rcode = pftdi->SetBaudRate(9600);

if (rcode)
{
    ErrorMessage<uint8_t>(PSTR("SetBaudRate"), rcode);
    return rcode;
}
rcode = pftdi->SetFlowControl(FTDI_SIO_DISABLE_FLOW_CTRL);

if (rcode)
    ErrorMessage<uint8_t>(PSTR("SetFlowControl"), rcode);

return rcode;

}

USB Usb;
//USBHub Hub(&Usb);
FTDIAsync FtdiAsync;
FTDI Ftdi(&Usb, &FtdiAsync);

void setup()
{
Serial.begin( 9600 );
#if !defined(MIPSEL)
while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
#endif
Serial.println("Start");

if (Usb.Init() == -1)
Serial.println("OSC did not start.");

delay( 200 );
}

void loop()
{
Usb.Task();
//Serial.println("loop");
if( Usb.getUsbTaskState() == USB_STATE_RUNNING )
{
delay(2000);
uint8_t rcode;
char cmdbuf[8];

cmdbuf[0] = 0x01;
cmdbuf[1] = 0x03;
cmdbuf[2] = 0x00;
cmdbuf[3] = 0x0B;
cmdbuf[4] = 0x05;
cmdbuf[5] = 0x00;
cmdbuf[6] = 0xF5;
cmdbuf[7] = 0xC8;
//char strbuf[]; = {01,03,00,0B,00,01,F5,C8};
//char strbuf[] = "The quick brown fox jumps over the lazy dog";
//char strbuf[] = "This string contains 61 character to demonstrate FTDI buffers"; //add one symbol to it to see some garbage
//Serial.print(".");

    rcode = Ftdi.SndData(strlen(cmdbuf), (uint8_t*)cmdbuf);
   // Serial.print("rcode:");
   //   Serial.println(rcode);

if (rcode)
        ErrorMessage<uint8_t>(PSTR("SndData"), rcode);

    delay(50);

    uint8_t  buf[64];

    for (uint8_t i=0; i<64; i++)
        buf[i] = 0;

    uint16_t rcvd = 64;
    rcode = Ftdi.RcvData(&rcvd, buf);

    if (rcode && rcode != hrNAK)
        ErrorMessage<uint8_t>(PSTR("Ret"), rcode);

    // The device reserves the first two bytes of data
    //   to contain the current values of the modem and line status registers.
    if (rcvd > 1)
       // Serial.print("DataReceived:");
       // Serial.println();
        Serial.print((char*)(buf+0));
        Serial.print((char*)(buf+1));
        Serial.print((char*)(buf+2));
        Serial.print((char*)(buf+3));
        Serial.print((char*)(buf+4));
        Serial.print((char*)(buf+5));
        Serial.print((char*)(buf+6));
        Serial.print((char*)(buf+7));
   

    delay(10);
}

}

from uhs30.

xxxajk avatar xxxajk commented on August 15, 2024

I am aware of the cross post. :-)

from uhs30.

xxxajk avatar xxxajk commented on August 15, 2024

Have you read the instructions for AVR?
Specifically: Connect pin 9 to pin 3 with a jumper wire.
Let me know if it works after that...

from uhs30.

theMASTERMINDpK avatar theMASTERMINDpK commented on August 15, 2024

I tried the sensor with arudino mega 2560 by connecting pin 9 to pin 3 with a jumper wire. And received the debug messages. At last temperature sensor is connected 👍 . And I don't know how to send and receive bytes in this example.
Here is a video of my temp sesnsor working with serial terminal:
https://www.youtube.com/watch?v=B1S0dRWjoZA&feature=youtu.be

Here is the example which i uploaded on arduino Mega
https://github.com/felis/UHS30/blob/master/libraries/UHS_host/UHS_CDC_ACM/examples/USB_HOST_SHIELD/acm_terminal/acm_terminal.ino

And received the following debug messages
ctrlReqRePass SPI speed 25000000
Waiting for Connection...
UHS_USB_HOST_STATE_DEBOUNCE
BEFORE CDIRQ T BEIRQ T resetting F state 0x02
AFTER CDIRQ T BEIRQ T resetting F state 0x02
UHS_USB_HOST_STATE_DEBOUNCE
UHS_USB_HOST_STATE_DEBOUNCE_NOT_COMPLETE
UHS_USB_HOST_STATE_RESET_DEVICE
UHS_USB_HOST_STATE_RESET_NOT_COMPLETE
UHS_USB_H
BEFORE CDIRQ T BEIRQ T resetting F state 0x03
AFTER CDIRQ T ST_STATE_RESET_NOT_COMPLETE
UHS_USB_HOST_STATE_WAIT_BUS_READY

Configuring: parent = 0, port = 1, speed = 1

Configuring PktSize 0x40, rcode: 0x00, retries 0,
ep entry for interface 0 ep 0 max packet size = 64
ctrlReq2: left: 64, read:64, nbytes 64
ctrlReqRead left: 64
Requesting 64 bytes Got 8 bytes
ctrlReqRead left: 56, read 8
ctrlReq3: acceptBuffer sz 8 nbytes 64 left 56

BEFORE CDIRQ T BEIRQ T resetting T state 0x0e

AFTER CDIRQ T BEIRQ T resetting T state 0x0e
ep entry for interface 0 ep 0 max packet size = 64
0 retries.
DevDescr 2nd poll, bMaxPacketSize0:8
ep entry for interface 0 ep 0 max packet size = 8
ctrlReq2: left: 18, read:18, nbytes 18
ctrlReqRead left: 18
Requesting 18 bytes Got 8 bytes
Got 8 bytes
Got 2 bytes
ctrlReqRead left: 0, read 18

BEFORE CDIRQ T BEIRQ T resetting T state 0x0e

AFTER CDIRQ T BEIRQ T resetting T state 0x0e
ep entry for interface 0 ep 0 max packet size = 64
0 retries.
configs: 1
ep entry for interface 0 ep 0 max packet size = 64
ctrlReq2: left: 9, read:9, nbytes 9
ctrlReqRead left: 9
Requesting 9 bytes Got 8 bytes
ctrlReqRead left: 1, read 8
ctrlReq2: left: 1, read:9, nbytes 9
ctrlReqRead left: 1
Requesting 9 bytes Got 1 bytes
ctrlReqRead left: 0, read 1
CONFIGURATION: 0, bNumInterfaces 1, wTotalLength 32
ep entry for interface 0 ep 0 max packet size = 64
ctrlReqRead left: 32
Requesting 8 bytes Got 8 bytes
ctrlReqRead left: 24, read 8
bLength: 9 bDescriptorType: 02
eating 8
ctrlReqRead left: 24
Requesting 8 bytes Got 8 bytes
ctrlReqRead left: 16, read 8
bLength: 9 bDescriptorType: 04
INTERFACE DESCRIPTOR FOUND
ctrlReqRead left: 16
Requesting 8 bytes Got 8 bytes
ctrlReqRead left: 8, read 8
Getting 2 endpoints
bLength: 7 bDescriptorType: 05
ENDPOINT DESCRIPTOR: 0
ctrlReqRead left: 8
Requesting 8 bytes Got 8 bytes
ctrlReqRead left: 0, read 8
ENDPOINT DESCRIPTOR OK
eating 0
bLength: 7 bDescriptorType: 05
ENDPOINT DESCRIPTOR: 1
ENDPOINT DESCRIPTOR OK
eating 0
eating 1
ENDPOINT DESCRIPTORS FILLED
TestInterface VID:0403 PID:6015 Class:00 Subclass:00 Protocol 00
Interface data: Class:ff Subclass:ff Protocol ff, number of endpoints 2
Parent: 00, bAddress: 01
Driver 1 supports this interface
Driver 1 can be used for this interface
USB_INTERFACE END OF STREAM
ep entry for interface 0 ep 0 max packet size = 8
ctrlReq2: left: 9, read:9, nbytes 9
ctrlReqRead left: 9
Requesting 9 bytes Got 8 bytes
Got 1 bytes
ctrlReqRead left: 0, read 9
CONFIGURATION: 1, bNumInterfaces 1, wTotalLength 32
Best configuration is 1, enumerating interfaces.
ep entry for interface 0 ep 0 max packet size = 8
ctrlReqRead left: 32
Requesting 8 bytes Got 8 bytes
ctrlReqRead left: 24, read 8
bLength: 9 bDescriptorType: 02
eating 8
ctrlReqRead left: 24
Requesting 8 bytes Got 8 bytes
ctrlReqRead left: 16, read 8
bLength: 9 bDescriptorType: 04
INTERFACE DESCRIPTOR FOUND
ctrlReqRead left: 16
Requesting 8 bytes Got 8 bytes
ctrlReqRead left: 8, read 8
Getting 2 endpoints
bLength: 7 bDescriptorType: 05
ENDPOINT DESCRIPTOR: 0
ctrlReqRead left: 8
Requesting 8 bytes Got 8 bytes
ctrlReqRead left: 0, read 8
ENDPOINT DESCRIPTOR OK
eating 0
bLength: 7 bDescriptorType: 05
ENDPOINT DESCRIPTOR: 1
ENDPOINT DESCRIPTOR OK
eating 0
eating 1
ENDPOINT DESCRIPTORS FILLED
AttemptConfig: parent = 0, port = 1
Driver 1 supports this interface
Interface Configured
ep entry for interface 0 ep 0 max packet size = 8
Driver 0 @ 00 Skipped
Driver 1 @ 01 Initialize
ep entry for interface 0 ep 0 max packet size = 8
ep entry for interface 0 ep 0 max packet size = 8
ep entry for interface 0 ep 0 max packet size = 8
ep entry for interface 0 ep 0 max packet size = 8

Connected.
Total endpoints = (3)3

Driver 2 no driver at this index.
Driver 3 no driver at this index.
Driver 4 no driver at this index.
Driver 5 no driver at this index.
Driver 6 no driver at this index.
Driver 7 no driver at this index.
Driver 8 no driver at this index.
Driver 9 no driver at this index.
Driver 10 no driver at this index.
Driver 11 no driver at this index.
Driver 12 no driver at this index.
Driver 13 no driver at this index.
Driver 14 no driver at this index.
Driver 15 no driver at this index.
ep entry for interface 0 ep 1 max packet size = 64
Requesting 64 bytes Got 2 bytes
ep entry for interface 0 ep 1 max packet size = 64
Requesting 64 bytes Got 2 bytes
ep entry for interface 0 ep 1 max packet size = 64
Requesting 64 bytes Got 2 bytes
ep entry for interface 0 ep 1 max packet size = 64
Requesting 64 bytes Got 2 bytes

from uhs30.

xxxajk avatar xxxajk commented on August 15, 2024

So you want to do this manually like the program you show in the video? or automated?

from uhs30.

xxxajk avatar xxxajk commented on August 15, 2024

You would do it much the same way as you do in the other attempt that you wrote.

1: Send the array
2: Read 1 byte at a time until you fill a new array, the driver has the capability to do this in the background. See the buffered demo for how to do that. IMPORTANT! You need to enable and disable polling while accessing the buffers. See the comments in the demo. In your case, wait for 8 or more bytes.
3: do whatever processing you want to do with the returned data.

from uhs30.

xxxajk avatar xxxajk commented on August 15, 2024

all you need to do is... write your data, then wait... e.g.

while(Bcm->rd_available() < how_many_bytes_you_want) yield(); // wait
then read your data, and do whatever you need to do with that data.

from uhs30.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.