STM32L4xx DMA connectivity M24C32
Budget: $30 – $250 AUD
What is required is a C code to run on an STM32L452 and communicate with i2c ST EEprom M24C32.
The I2C channel is I2C1 connected to PA9/PA10.
The module has to use DMA (DMA1 CH6 & CH7), fast mode (400KB), no interrupts are allowed.
The top-level functions are: WritePage, ReadPage (page is 32 bytes) and additional two functions to verify end of operation: EndOfWritePage, EndofReadPage. The latter two should have access also to error conditions. They will be called by the main loop to verify the end of operations.
The entire module contains other functions which are called by (mainly the first two) top functions.
Inline documentation and nice coding are a must.
As the I2C channel and the DMA are used by other components (synchronization between devices would be my responsibility) the two top-level functions need to initiate the I2C and DMA at each time they are called, assuming DMA1 and I2C1 were left untidy by their previous user.
Happy to answer more questions if you have.
Due to the limited size of the project, there would not be milestones, just the final one.
Please commit to delivery time from its acceptance.
Also please detail how you are going to validate the code before its delivery.
Any questions, let me know.
The I2C channel is I2C1 connected to PA9/PA10.
The module has to use DMA (DMA1 CH6 & CH7), fast mode (400KB), no interrupts are allowed.
The top-level functions are: WritePage, ReadPage (page is 32 bytes) and additional two functions to verify end of operation: EndOfWritePage, EndofReadPage. The latter two should have access also to error conditions. They will be called by the main loop to verify the end of operations.
The entire module contains other functions which are called by (mainly the first two) top functions.
Inline documentation and nice coding are a must.
As the I2C channel and the DMA are used by other components (synchronization between devices would be my responsibility) the two top-level functions need to initiate the I2C and DMA at each time they are called, assuming DMA1 and I2C1 were left untidy by their previous user.
Happy to answer more questions if you have.
Due to the limited size of the project, there would not be milestones, just the final one.
Please commit to delivery time from its acceptance.
Also please detail how you are going to validate the code before its delivery.
Any questions, let me know.