Is this such a narrow niche...?
Is this such a narrow niche...?Yes, because most people wanting to do this don't have a "no programmable devices" limitation.
Some of the FTDI devices have a serial engine that can be configured to do SPI.
why do you insist on using virtual COM port drivers?
Some of the FTDI devices have a serial engine that can be configured to do SPI.
but that's using the ftdi direct driver, not virtual com port
Quotewhy do you insist on using virtual COM port drivers?This requirement/limitation comes from the intended users of the end device: they already have vast code base with Virtual Com Port and are unwilling to change to other methods. Unfortunately, I cannot influence that.QuoteSome of the FTDI devices have a serial engine that can be configured to do SPI.I am familiar with those, but unfortunatelly they cannot operate in that mode using the VCP drivers; we would need to use the D2XX dll based method of controlling them and that is not accepted by the stakeholders.Quotebut that's using the ftdi direct driver, not virtual com portPrecisely. And that is not acceptable.
Regards,
Cristian
make a program that pretends to be a comport on one side and does the DXX magic on the other side
Quotemake a program that pretends to be a comport on one side and does the DXX magic on the other side
This was actually discussed as a potential option, but ruled out eventually. The existence of this additional layer is veto-ed by the end users, due to maintenance, reliability etc. No, they want to use a proven and established COM port driver, from a reputable provider. And I can understand and accept that. As a fall-back solution, the SC18IM704 from NXP does what we want, but it is so...single source like. And I mean not even a "principle" function equivalent device exists out there (even with different footprint or somewhat different operation). None.
One other idea is to place the SN74LV8153, which has a weird but UART compatible interface. And go through all the trouble to bit-bang SPI data through it. But even this one looks like a "single of its kind" type of thing.
Regards,
Cristian
sounds like they don't want a solution
Quotesounds like they don't want a solution
It is legitimate to consider that we are on a look-out for a non-optimal system level solution, I agree that. But it is a constraint I cannot change and I have to work with that: no software, no programmable devices. Solutions do exist (as I have previously mentioned the NXP SC18IM704 or the TI SN74LV8153). It's just that I am somewhat uncomfortable with the narrowness of the purely non-programmable hardware options and I started this thread to maybe get more options pointed to me.
Regards,
Cristian
the narrowness of the purely non-programmable hardware it out, single source is out,
MCP2221
https://www.microchip.com/en-us/product/mcp2221
I2C = https://www.digikey.com/en/products/detail/microchip-technology/MCP2221A-I-ML/6009295
SPI = https://www.microchip.com/en-us/product/MCP2210
The UART doesn't go directly to the I2C, but it's a simple driver for USB->I2C. No circuit board side programming required. I use these for test fixtures all the time.
Yes, I am acquainted with the Microchip parts, but they are using the HID class when operated as converters to I2C. This would violate the fundamental requirement I have here, that of using Virtual Com Port from a computer perspective.
For SPI, search pypi.org for SpiAdapter and SpiDriver.
For I2C, search pypi.org for I2cAdapter and i2cDriver.
They have python packages available and they use serial COM protocol that doesn't require special OS drivers.
So, I am looking for a way to access SPI or I2C slave devices from the PC using "serial port" explicitly with virtual COM port drivers. But I have to do so without using any programmable devices (neither micros nor FPGA/CPLD are allowed).
This basically forces me to use some sort of USB to UART bridge, for which Virtual Com Port drivers are readily available (like from FTDI, SiLabs or Microchip) which I would then need to translate to SPI or to I2C.
I have only found a single device capable to do this, namely the SC18IM704 from NXP. But apart from that.... nothing.
Are there any other devices like that that you know of?
...
Is this such a narrow niche...?
Addit: No, wait... found it.
Similar commands to NXP, but a superset, with more features. Four separate I2C busses, SPI, Dallas 1 Wire Needs 14.7456MHz crystal, so has precise BAUD rates.
https://www.i2cchip.com/shop.html
But the link you provided seems intriguing... How do you know it is a pre-programmed PIC behind their BL233 ic name? They do not seem to explicitly mention it.
Suppliers like Digikey can program parts, for a fee, so that may be almost 'no programming', you can treat the hex file you send Digikey as a large order number
Question: What quantities are you guys talking about... I mean seriously, if it's decent volume I'll buy a chip programmer/re-reeler right now and sell you pre-programmed micros with whatever functionality you want.
Question: What quantities are you guys talking about... I mean seriously, if it's decent volume I'll buy a chip programmer/re-reeler right now and sell you pre-programmed micros with whatever functionality you want.No need - use a Microchip device and they'll program and re-reel it for a few cents