Thanks for the hands-on, Malc!
Ugh. Insert a look of abject terror here that I can't really render through ASCII art alone. The CH376 documentation says
"The USB-DEVICE Mode of CH376 is totally compatible with CH372, the USB-HOST Mode of
CH375 is basically compatible with CH375."
Well, yes, the Tautology Police say that the CH375 is compatible with the CH375, but it seemed a reasonable read that they meant that the CH376's host mode was compatible with the 375.
I have the nasty suspicion "basically compatible" is not so much "1:1 binary compatible" as "potentially compatible at an abstract library level".
I recall a rumour that the whole family of WCH USB-to-whatever chips (i. e. the CH340 used for cheap USB->TTL-serial adaptors) are basically the same microcontrollers running different firmware, so it's possible they're just gating open different commands to make slightly different products.
The next thing that's supposed to happen after printing "IC Revision: nn" is that it fires off the "DISK_CONNECT" and "DISK_MOUNT" commands. (Command 0x30 and 0x31).
The CH375 datasheet does not include those. It has DISK_INIT (command 0x51) that seems broadly similar to the setup parts of DISK_CONNECT and DISK_MOUNT, and DISK_INQUIRY (Command 0x58) that might replace the "leaves behind a device identifier part" of DISK_MOUNT.
We also appear to be missing DISK_CAPACITY (Command 0x3E) and instead have DISK_SIZE (command 0x53). Command RD_USB_DATA0 (0x27) seems to be replaced by RD_USB_DATA (0x28). WR_USB_DATA (Command 0x2C) seems to become WR_USB_DATA7 (Command 0x2B)
You might try changing the defines as follows to see if it gets us further. I'm afraid I can't really test the differences without a CH375 card in hand.
Code:
CH376S_GET_IC_VER equ 0x01
CH376S_RESET_ALL equ 0x05
CH376S_CHECK_EXIST equ 0x06
CH376S_SET_USB_MODE equ 0x15
CH376S_GET_STATUS equ 0x22
CH376S_RD_USB_DATA0 equ 0x28
CH376S_WR_USB_DATA equ 0x2B
CH376S_WR_REQ_DATA equ 0x2D
CH376S_DISK_CONNECT equ 0x51
CH376S_DISK_MOUNT equ 0x58
CH376S_DISK_CAPACITY equ 0x53
CH376S_DISK_READ equ 0x54
CH376S_DISK_RD_GO equ 0x55
CH376S_DISK_WRITE equ 0x56
CH376S_DISK_WR_GO equ 0x57
Also a little curious what you meant by "goes no further." If it doesn't get something that looks like a response after DISK_CONNECT/DISK_MOUNT, it's supposed to give up and say there was no disc there. But maybe it's actually locked in an eternal loop because it fired off a command the 375 doesn't implement, and is waiting for the "task complete" flag.