This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TAS5825M: Purepath socket bridge / talk to target without ev-kit

Part Number: TAS5825M

Hi TI,

any news on this?
(related post https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1136708/purepath-bridge-protocol-i2c-out-without-xmos)


we really would like to see a way to use purepath with custom board designs.
just offer a way to enable a local tcp socket in the purepath console where all i2c writes are sent

this way, it allows your users to write a simple python bridge that connects to a target/dut by passing on i2c writes to the class-d registers


we normally do this with other desktop gui tools like:

  • desktop app (i.e. purepath) listening on localhost:8123
  • python command-line util
    • connecting to above
    • connecting to target pcb via either
      • usb-cdc (any customer specific protocol)
      • bluetooth le (custom profile)
  • mcu in target now
    • receives command send by desktop app via any transport
    • outputs it to one or several class-d's via i2c
  • done!

please make this happen as its way more useful than hooking up a devkit.
this also opens up for working with systems running multiple class-d's (in stereo configs)

  • Hi Dav

    this function do very useful.

    is that possible share us what platform you used in your board design.

    i will let our sw development team considering developing this function.

    thanks.

    jesse

  • we can help provide an example bridge in python if you add a way to connect to purepath and remote control it.

    up to you, either you add a way to "connect to target" in purepath, i.e. enter 127.0.0.1 port 50051
    or pure path default has socket listener open on a fixed port, whatever is easiest for you

    I would propose a raw socket with a basic framing, but maybe https://grpc.io/ would be an easy way to get libraries ready that can run cross platform in most program languages. that way pure path would just include that library and implement a few rpc methods that can be used to subscribe to changes in the desktop GUI.

    scribble below, but something like this would be enough to setup a bridge to any target


    import grpc

    # basic gRPC class
    import purepath

    # function to handle i2c writes sent from purepath
    def handle_i2c(message):
        print("received message:", message.i2cbuf)
        # pass through to target board
        # i.e. pyserial -> usb-cdc -> mcu -> i2c -> class-d amp(s)

    def run():
        # create a gRPC channel to communicate with the server
        with grpc.insecure_channel('localhost:50051') as channel:

            pp = purepath.Console(channel)

            # subscribe to start receiving messages when changing
            # things in purepath console
            i2c_stream = pp.Subscribe(pp.SubscribeRequest())

            # loop through incoming messages from the server
            for message in i2c_stream:
                handle_message(message)

    if __name__ == '__main__':
        run()

  • Hi Dav

    thank you very much for you information, i will take it to discuss with our SW team.

    before that, we have another way might help you control your amplifier.

    our evm board is controlled by the mother board, you can jump i2c and i2s signal to your board.

    EVM board link

    https://www.ti.com/tool/PUREPATH-CMBEVM?keyMatch=MOTHER%20BOARD

    with this method, you can also use our ppc3 to control you amplifiers on the board.

    thanks.

    jesse

  • jesse, thanks, yes we already use that method, but too much wiring and not what we want to achieve here.

    we need to allow to run "closed case debug/developent", so no jumpers or wiring or ev-kits involved.

    please provide a solution to what I described above. its going to be great for many customer.

  • Dav01

    we already start let SW team evaluate how much resource we need for this function.

    if we need other information, we will contact you by email.

    thanks.

    jesse

  • fantastic! looking forward. 

  • anything we can try?

  • sorry for latency.

    once i got sw team reply, i will share you the information.

    thks.

  • Hi Dav

    just confirm one thing with you. am our sw team understanding your request correct?

    if you have any python bridge code, can you share us, it might help us fasten the develop speed.

    thanks.

    jesse