I have a question about the VM820C.
6.2 Selecting Power Source
When powering the system via USB-C (FT4222H interface) or 5V_Host (MPSSE or Host_MCU),
the maximum power supply is limited to 500mA at 5V. In cases where large LCD panels are used
or the power demand exceeds the available supply, it is strongly recommended to provide a 12V
power supply through the DC jack connector for the development module.
Ok, the limit on the USB-C probably is there because it is hardwired to USB-2.
But why is the host supply limited to 5V and 500mA?
From the schematic it looks to me that HOST_5V is only connected to VSYS which can also be powered by DC_IN.
So shouldn't it be HOST_DC with the same limit of 5...12V as for the DC_IN?
The RVT101 for example uses a higher voltage for the backlight to bring down the current on these lines.
So I do have a MCU board for this interface that uses a dedicated buck converter to provide 9.6V at these pins.
Edit: and a few question about the BT820 itself
Going over the host commands and the initialization sequence I noticed that the host command RST_PULSE has been removed from the BT820.
And instead of PD_N there is a RST_N pin now which pretty much does the same thing.
Does this mean that using RST_N with the BT82x is pretty much mandatory when doing a warm-start?
Then I am wondering when to raise RST_N again, there is a minimum time provided of 214µs to trigger a reset and that would be sufficent for a warm-start.
But then there also is this:
The RST_N signal must be de-asserted at least 5ms after the power rails from Group 4 have powered up.
Well, there is no way to tell for the host controller that the voltage rails are indeed powered up.
Given that the host controller also needs some time to boot, power up the oscillator and so on, is it save to assume that setting RST_N as early
as possible to low and raising it in the init function after an extra 6ms would be ok?
And the last question for the moment, FT81x and BT81x needed 20ms after raising PD_N before issuing the first host command.
I can not find such timing for the BT820 - any suggestions?
My idea is to initially try 1ms before sending BOOTCFGEN and see what happens.
But seeing "Figure 28 - Power State Transition" in the datasheet, there is actually a state after RSN_N = 1 : POWER UP INITIALIZATION.
Perhaps I am overthinking this but the initialization sequence in the programming guide might need a few extra steps to be complete.
Edit2:
With nothing (yet) to test against (but soon), I started implementing.
My initialization is sending out five host commands and apart from the timing (see above), at least the SPI traffic looks correct in the logic analyzer.
Now I am at the point in the initialization that suggests to read REG_BOOT_STATUS untill 0x522E2E2EU is returned.
I am looking at my EVE_memRead32() which is of course the implementation of the rd32() function mentioned in the programming guide.
Switching to 31 bit adressing was the easy part.
Adding the loop to read bytes untill 0x01 is returned or a break occured, done.
But looking at the logic analyzer trace with the failed read attempts as I have no BT820 attached so far,
I do not like this new read protocoll.
What is the supposed reaction when reading fails?
Ok, fair enough, I have no error detection up to BT81x either, if there is catastrophic failure, like when there is no EVE chip at all,
then the initial reading of 0x7c fails and my initialization would return EVE_FAIL_REGID_TIMEOUT.
So I guess I could add a REG_FAIL_BOOT_STATUS_TIMEOUT.
And then I am using a flag in my application module to indicate that initialization worked.
I previously observed that invalid data is read when the SPI clock is too high to properly work with my host interface setup,
so I had to reduce the clock or reading touch data would not work.
But what about the possibility of non catastrophic failures?
What drives the delay that prevents the BT820 from responding with 0x01 immediately?
Why is a BT82x even potentially slower in answering the SPI than FT80x, FT81x and BT81x?
Is a response guaranteed and what is the maximum acceptable number of bytes read that are not 0x01?
I would prefer a more deterministic read protocoll, even the need to send two dummy bytes instead of one would have been better.
Oh yes, SPI clock, is it true that there is no longer a limitation of 11MHz on the clock speed during initialization?