hi all... i am working on a project where i have to use SMD 44 pin TQFP SST89E516RD2 microcontroller. i am using TTL converter to program this controller using RX and TX pins. but i am not able to program the controller. i am using flash magic to program. when i press start button from the software it says RESET TO ENTER ISP MODE. but when i reset the controller, nothing happens. i have checked all the connection and also the connectivity. connected RX pin to controller TX pin and TX to controller RX pin. also only TX led glows in TTL converter. i tried changing around 4 boards but non of them are working. but the same if i try programming the DIP package, it programmes without any error.
Flash Magic has nothing to do with Keil.
For Flash Magic support, go to: http://www.flashmagictool.com/
i am already using flash magic to program the controller. but when i press start button from flash magic software to burn the controller. a small popup window apprears which stats that reset the device into ISP mode. but when i press the reset button from the controller nothing happens.
Make sure the part is powered and clocking properly.
yes, i have checked, the controller is receiving 5V, and also i have added a 11.059 crystal with 33pF capacitor. the circuit i made is same as my DIP package. but it programmes the DIP package without any error, but not programming SMD controller.
Ok, yeah got all that, but is it clocking properly? Any signs of life indicating the circuit you built is functional?
Do the PLCC/SMD parts program on an EPROM/UNIVERSAL PROGRAMMER? Have you used these parts elsewhere? Do you have a colleague who can review the design, or contractors with experience with them.
Can you make a small breakout board, or 40-pin to 44-pin adapter to plug into a 40-pin design?
You're going to have to use your head a bit here. None of these problems seem Keil related.
I agree that the problem is not keil related. but i am trapped into the problem and finding the solution all the way round. how can i check if the crystal is clocking properly or not. i have also tried making a small board where only the controller, reset circuit and the crystal are been placed. and then again tried to program it.. but still the problem continues. dont know where the problem is... even i tried using hyper terminal and tried sending 'U', but getting no response.
You could start with a scope. Look at how an unprogrammed DIP part behaves. How much the supply draws, etc.
Could these be fake/counterfeit parts?
Check pin ordering and orientation.
I have checked the pin ordering, connectivity, everything many times. but it seems everything is perfect. and this IC, i have purchased it from microchip distributor, so there is no chance for fake and any counterfeit parts. SORRY... but did not got your point... "how an unprogrammed DIP part behaves"
The fact that you have a problem suggests otherwise.
There has to be a difference between working and not. You have to determine what.
I have made a small testing using hyper terminal. using 40 pin DIP package, when i send 'U' from hyper terminal to the controller the controller response to it but the same when i use 44 pin SMD TQFP package and send 'U' to the controller using different baud rate from 9600 to 1200 the controller does not responds any thing. i have tried the same to all of my 4 boards. but none of them gave me any positive results.
i have checked that the controller is not responding because, when i press start button from flashmagic software the TX pin of TTL converter glow but after pressing the reset button from the contoller the RX led of TTL converter does not glows which means that the controller is not responding after controller reset button is pressed. i have checked, reset is also working perfect, the reset pin goes high when the reset button is pressed.
Discuss your issue with the applications engineer at the distributor.
I'm suggesting probing pins on the DIP to understand the signal behaviour, and what constitutes a live/functional part so you can compare/contrast that in your implementation.
So you've tested it on four boards, all fail, so failure deemed consistent.
If the clock doesn't tick that's usually pretty fatal for synchronous parts, assuming these don't have an on-chip RC oscillator. Clocking at the wrong speed will skew bud rate expectations.
Double check that the specific parts you have in-hand use the ROM loader you expect to be present. Find a forum where people use the part in question, see if the distributor knows of other customers or consultants familiar with the part.
I have gone through the datasheet, where it stats that external ossilator is put to off and internal ossicalator is put to use while programming. A Part of the datasheet has been attached.
In-Application Programming Mode The device offers either 72 KByte of in-application programmable flash memory. During in-application programming, the CPU of the microcontroller enters IAP mode. The two blocks of flash memory allow the CPU to execute user code from one block, while the other is being erased or reprogrammed concurrently. The CPU may also fetch code from an external memory while all internal flash is being reprogrammed. The mailbox registers (SFST, SFCM, SFAL, SFAH, SFDT and SFCF) located in the special function register (SFR), control and monitor the device’s erase and program process. Table 14 outline the commands and their associated mailbox register settings.
In-Application Programming Mode Clock Source During IAP mode, both the CPU core and the flash controller unit are driven off the external clock. However, an internal oscillator will provide timing references for Program and Erase operations. The internal oscillator is only turned on when required, and is turned off as soon as the flash operation is completed.
Memory Bank Selection for In-Application Programming Mode With the addressing range limited to 16 bit, only 64 KByte of program address space is “visible” at any one time. As shown in Table 13, the bank selection (the configuration of EA# and SFCF[1:0]), allows Block 1 memory to be overlaid on the lowest 8 KByte of Block 0 memory, making Block 1 reachable. The same concept is employed to allow both Block 0 and Block 1 flash to be accessible to IAP operations. Code from a block that is not visible may not be used as a source to program another address. However, a block that is not “visible” may be programmed by code from the other block through mailbox registers. The device allows IAP code in one block of memory to program the other block of memory, but may not program any location in the same block. If an IAP operation originates physically from Block 0, the target of this operation is implicitly defined to be in Block 1. If the IAP operation originates physically from Block 1, then the target address is implicitly defined to be in Block 0. If the IAP operation originates from external program space, then, the target will depend on the address and the state of bank selection.
IAP Enable Bit The IAP enable bit, SFCF[6], enables in-application programming mode. Until this bit is set, all flash programming IAP commands will be ignored.
how can i compare the signal behaviour between both of the contoller (DIP and SMD). because SMD controller does not send any signal back to the TTL converter. what i have noticed that using DIP controller. when i press start button from flash magic software, the TTL converter send 'U' to the controller and controller acknoledge its back and then i have to press the reset switch from the controller to enter the ISP mode. but in SMD controller when i press start from the software, the TL converter sends 'U' to the controller, but controller does not responds to it and stays ideal and does nothing.
as also tested.. when i remove the crystal and capacitors from DIP package, i behaves as same as the SMD controller is behaving. but also do SMD controller works on different crystal value..?? as i was using 11.059 MHz for both the package.
Pull pin 17 P4.0 HIGH