8/18/2023 0 Comments Nucleo board i2c peripheral![]() ![]() So, I guess I am stuck with Roger's core and will have to use only the i2c LCD hardware that works. ![]() As I said (many times) the only USB MIDI library that I know that works on the STM32F103CB chip also uses the maple libraries, hence not working with the other core. I am a beginner, remember? The only way I can do it (or that I found on the net) use the Libmaple libraries, meaniong that I cannot use the other core. So it doesn't look like that particular capability should be a deal breaker that keeps you from using the other STM32 core.īill, Not complicated for you. It looks like it is a quite popular thing being done on that chip and there seems to be lots of references out there on how to do it. It may require writing a very small piece of code (like just a few lines) to do it I don't think that there is anything particuarly complicated about jumping to the bootloader. I assume it is the master letting SDA float up to periodically check for other masters. I know SDA can wiggle while SCL is low, It just looks odd in some of the cases. You can always wiggle the SDA line safely when SCL is low. It has to cope with ACK, NAK from a Slave that is stretching the bus / holding SCL low. The peripheral must correctly form START, STOP from an unknown state. If so, can you see what Wire.read() returned back to IdentifyIOexp() ? where it fails? the STM32 matches the Saleae decoding.īut as you can see in the traces, instead of continuing the interrogation a STOP is issued. ![]() Tracing with SWD shows that I2C is being read correctly i.e. That makes sense as the issue seems to be happening on the i2c reads in the auto chip detection code and or auto configuration (pin mapping) detection code. HelloWorld always works if you tell it the board e.g. If I2CexpDiag was having a RAM test issue, then I could see how a delay in ioread() could affect that,īut I don't understand how modifying code that isn't being called can make the initialization code work. I'm still not understanding what is happening and how you got it to work with the delay code you show in #55 as it doesn't make sense to me that a delay added there made it work since the output in #49 is showing that initialization is failing which could be auto location or auto configuration, but none of that code calls the ioread() code shown in #55 With delay(1) as in #55 it would work consistently. I2CexpDiag failed as in my earlier message #49 ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |