We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Good morning, I'm working with a LPC2478 and I designed my system that use different periphericals at the same time but a noticed some conflict on SD memory and LCD controller.
My system works correctly, I mean it read/write on SD and shows my messages on display, but during few second of writing or reading on a SD memory, I can see a very unpleasant flickering on display. It seems that the access on RAM memory to read the status of each singular pixel is in conflict with the bus access to manage the SD operation.
In the past I had the exactly the same problem on FLASH memory access, and I solved it introducing delaies on SPI routines, but the SD is controlled by keil FS_ARM_L.lib, so I can't modify it.
Does exist some priority rules to control the BUS used for both periphericals?Or some PIN status to check if is possible to access to bus or not?
Thanks in advance for any suggestions.
Stefano
Thanks to everybody for your interest. I solved the problem so I share with you my modifies that could help other people.
I'll need to investigate better on the parameters related to the display LCD settings, but my problem was a very high frequence of display refresh setted by register:
LCD_POL = (1)&0x0F;
So I reduce this time with
LCD_POL = (5)&0x0F;
and all flickers magically disappeared.
My explanation on this condition is simply that if the display access many times on RAM to read the mapping of pixels, it keeps often the bus busy and it increases the probability of a conflict of access.
If you don't need high image quality, as most applications, this redution of refresh is not visible so is perfect for a good system performance.
Regards, Stefano Toselli
Hi Stefano, thanks for your reply, can you share with me your working code for SD using, I have a problem to set SD card interface on SSP0, exactly SCK0 on P1.20, SSEL0 on P1.21, MISO0 on P1.23 and MOSI0 on P1.24, MCU is LPC2368, thanks in advance and best regards
can you share with me your working code
Are you serious? Do you also want mine just in case? Most likely, the OP is working on a commercial product, or maybe a dissertation. Do you understand what the means in terms of ownership?
Of course I can't share the source code of my product (my R&D manager could kill me..), but I can say you that the SD library used is the one provided by KEIL in the installation folder as:
..\Keil\ARM\Boards\Keil\MCB2470\RL\FlashFS\SD_File
You should find the same for your micro with all the instruction to add it in your project.
Good luck..
Thanks Tamir for your concern, you realy help me to understand term of ownership, thanks again and best regards...
Stefano, thanks for your info, and sorry for my direct request of working code, sorry again, I realy dont know your professional engagement, about SD library provided by Keil, I need SSP0 initialisation, I try with this library but not work for me (as you know this library consist SD native mode and SPI mode), best regards
Dear Roberto, my project include MCI_LPC24xx.c file that init the port pins to control the SD memory. I suggest you to search the same file for your hardware inside your Keil folder. Often the issue in this situations is related to a conflit for some pin that is not set to control the peripherical that the user wants but is as standard GPIO or an other wrong function. Keil provides good applications integrated on MDK, to check in debug this setting ("Peripherical" menù). That's all, Regards