Hi Ben,
I discovered that the I2C is not working when compiled to the target hardware. The compiler is MPLAB XC8 Pro. As soon as any of the cal macro control are issued to the bus the main loop will hang.
I'm using the I2c code using CAL which works successfully with some other FC8 project and processor.
I also tried to use the component (LIS3LV) and the effect is the same (it hangs without doing anything on the bus). I believe something is wrong with the PIC configuration.
The logic analyser shows no activity on the physical I2C bus so it looks that actual PIC hardware is not properly initialised.
I hope it is not a big issue for you to fix this as it is stopping me to continue to work.
I'm running on 18LF67K40 internal 64MHz clock and so far ADC and UART are working with this PIC and FC8.2 ok.
Regards,
Igor
FC8.2 PIC18LF67K40 I2C brocken
Moderator: Benj
-
- Posts: 78
- Joined: Mon Jul 31, 2017 11:14 am
- Has thanked: 7 times
- Been thanked: 13 times
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: FC8.2 PIC18LF67K40 I2C brocken
Hi Igor,
Can you post a demo program that shows the lock up so we can investigate. Can you also confirm if the lock up is resolved if you switch to a software I2C channel.
Can you post a demo program that shows the lock up so we can investigate. Can you also confirm if the lock up is resolved if you switch to a software I2C channel.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
-
- Posts: 78
- Joined: Mon Jul 31, 2017 11:14 am
- Has thanked: 7 times
- Been thanked: 13 times
Re: FC8.2 PIC18LF67K40 I2C brocken
Hi Ben,
Thank you for your reply. Yes, if I use the software I2C then it is working correctly. However, if I use Channel1 the i2C bus SDA and SCL stays high and no activity. The loop hangs at trying to execute first Cal command in "i2c_Read_sensors" macro (initialise is actually passing).
I attached my test program as you requested. Currently, the i2c is set to software emulation which is only working on the target.
The Accelerometer is the slave device which I'm talking to. It is LIS3DH Accelerometer. I'm accessing the "Who I Am" register (0x0F) and device address is 0x18. I'm reading a single byte and I'm getting the expected value "51" (0x33). The demo FC project is attached.
Regards,
Igor
Thank you for your reply. Yes, if I use the software I2C then it is working correctly. However, if I use Channel1 the i2C bus SDA and SCL stays high and no activity. The loop hangs at trying to execute first Cal command in "i2c_Read_sensors" macro (initialise is actually passing).
I attached my test program as you requested. Currently, the i2c is set to software emulation which is only working on the target.
The Accelerometer is the slave device which I'm talking to. It is LIS3DH Accelerometer. I'm accessing the "Who I Am" register (0x0F) and device address is 0x18. I'm reading a single byte and I'm getting the expected value "51" (0x33). The demo FC project is attached.
Regards,
Igor
- Attachments
-
- PIC18LF67K40 basic config I2c only test.fcfx
- (27.48 KiB) Downloaded 228 times
-
- Posts: 78
- Joined: Mon Jul 31, 2017 11:14 am
- Has thanked: 7 times
- Been thanked: 13 times
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: FC8.2 PIC18LF67K40 I2C brocken
Hi Igor,
Many thanks for chasing this one up. I have looked in the definition file and the chip was missing the remappable I2C support required by the hardware pins. This has now been added and pushed to the v8 update system so hopefully will now work correctly.
Let me know how you get on.
Many thanks for chasing this one up. I have looked in the definition file and the chip was missing the remappable I2C support required by the hardware pins. This has now been added and pushed to the v8 update system so hopefully will now work correctly.
Let me know how you get on.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel