tag:blogger.com,1999:blog-79552067413265686272024-02-21T07:49:32.461-08:00Vijayenthiran's BlogAnonymoushttp://www.blogger.com/profile/06611978744229025098noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-7955206741326568627.post-86435362698969238392018-01-13T03:16:00.001-08:002018-03-28T23:53:20.795-07:00Measuring Low Power Mode 3.5 in MSP430FRx Microcontroller<div dir="ltr" style="text-align: left;" trbidi="on">
I took some notes while profiling the Low Power Mode 3.5 (LPM3.5) in MSP430FR2311IPW20 Microcontroller from Texas Instruments.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAhnbiSh_nETeGjPuX4gCtFfjQI2zvnOZIZOoFYzXkMVPh21_esGA-cG7MrPI8xgM09IDkf-IL6UduFseh76abZLOyAZ8IL1m_XVFRMWwn6tyok_fuCM5vJAiukvyWinuAS4vOdYesR2tD/s1600/20180113_130415_Richtone%2528HDR%2529.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAhnbiSh_nETeGjPuX4gCtFfjQI2zvnOZIZOoFYzXkMVPh21_esGA-cG7MrPI8xgM09IDkf-IL6UduFseh76abZLOyAZ8IL1m_XVFRMWwn6tyok_fuCM5vJAiukvyWinuAS4vOdYesR2tD/s640/20180113_130415_Richtone%2528HDR%2529.jpg" width="480" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Fig 1. </b>The Setup is very minimal. I used a TSSOP-20 breakout and powered it with CR2032 battery. The current line is monitored by µCurrent GOLD (custom made).</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCP_IxgDOayFeunpRmY73dF_JU9d6NddBwDoYj8zMoZljihOUOaQRPY44i5mLdCSr4wQHaw76vH_ihczH6fkl53YR-OvVNC052lALBHY06fylbc1Q9HgrPL1Nv191xWMHkQpMqvDqvdFMr/s1600/20180113_130404_Richtone%2528HDR%2529.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCP_IxgDOayFeunpRmY73dF_JU9d6NddBwDoYj8zMoZljihOUOaQRPY44i5mLdCSr4wQHaw76vH_ihczH6fkl53YR-OvVNC052lALBHY06fylbc1Q9HgrPL1Nv191xWMHkQpMqvDqvdFMr/s640/20180113_130404_Richtone%2528HDR%2529.jpg" width="480" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b style="font-size: 12.8px;">Fig 2. </b>Scope Setup: CH1 is connected to the µCurrent output. CH2-CH3 (differential) is used to probe the GPIO (P1.6).</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEKW-umwz4nUtsK7bBIvFtf5Luc1nW__VmRP-pBHxe5GbqkYoYzkt9IB0jz6ywvq525nuuc9g4Lwa0sv_WgnOU18Aa5x3MrlDZDQolQuzQIVPSWGxLdiHOutaho7mMKNjrPWu0aqsSbeH6/s1600/20180113_130340_Richtone%2528HDR%2529.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEKW-umwz4nUtsK7bBIvFtf5Luc1nW__VmRP-pBHxe5GbqkYoYzkt9IB0jz6ywvq525nuuc9g4Lwa0sv_WgnOU18Aa5x3MrlDZDQolQuzQIVPSWGxLdiHOutaho7mMKNjrPWu0aqsSbeH6/s640/20180113_130340_Richtone%2528HDR%2529.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b style="font-size: 12.8px;">Fig 3. </b>Complete Setup. MSP430FR4133 Launchpad is used for programming.</td></tr>
</tbody></table>
The LPM3.5 example code provided by Texas Instruments is used for this experiment (<a href="https://gist.github.com/Vijayenthiran/b0f2f78abd2ef9d404fb968e168d68f5" target="_blank">Available here</a>).<br />
<br />
The code is straightforward. To summarize, it initializes XT1 (32Khz) as the main clock, check if it is a cold start or waking up from Low Power mode. When it is a cold start, it initializes the RTC with clock source as XT1, and RTC issues wake up interrupt every One second. When waking up from the Low Power mode, it restores the state of the Port 1 from Backup memory and enables the interrupt. In the RTC ISR, P1.6 is toggled and the state of Port 1 is saved in the Backup memory.<br />
<br />
The state of the required port (in this case Port 1) need to be saved before going into the LPM3.5, otherwise, the MCU will lose it state.<br />
<br />
The idea is to measure the time taken for the microcontroller from sleep mode and time taken to serve the RTC interrupt service routine.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgabBTqzbBzZlyMZ8FKFADGhmf5_5Whb3ssEnp0mUck7u8wv03iahCNhGqWDO7l5VB90lOnfDBcEy87tV9F0F1oBR-0uQpoWtWOKvZQ5HtdhB7cbrf7qzr4xHAQpFwUSJQb-Vj9D37VmZAP/s1600/01_LPM3.5_WakeUp.bmp" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="800" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgabBTqzbBzZlyMZ8FKFADGhmf5_5Whb3ssEnp0mUck7u8wv03iahCNhGqWDO7l5VB90lOnfDBcEy87tV9F0F1oBR-0uQpoWtWOKvZQ5HtdhB7cbrf7qzr4xHAQpFwUSJQb-Vj9D37VmZAP/s640/01_LPM3.5_WakeUp.bmp" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b style="font-size: 12.8px;">Fig 4. </b>CH1 Shows the µCurrent output. µCurrent is in 1mV/µA mode. So 1mV indicates 1µA. Violet is CH2-CH3 to profile the GPIO Pin.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgowpGUo0no4mOiAwMpVW1kYXEXBfNXKqKnximSYjoUn5bHcd2swbtCMLnzFgfOBjWnpugE0nU61kNEdLG7QGv7qvu2QQsMoGZKrgU_rkzC3OCM2a5O6RrcSduL_Y0ISDKUriJh4Azovd1e/s1600/02_LPM3.5_WakeUp.bmp" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="800" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgowpGUo0no4mOiAwMpVW1kYXEXBfNXKqKnximSYjoUn5bHcd2swbtCMLnzFgfOBjWnpugE0nU61kNEdLG7QGv7qvu2QQsMoGZKrgU_rkzC3OCM2a5O6RrcSduL_Y0ISDKUriJh4Azovd1e/s640/02_LPM3.5_WakeUp.bmp" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b style="font-size: 12.8px;">Fig 5. </b>Time taken for the Wakeup.</td></tr>
</tbody></table>
From the above image, it is clear that the time taken from the wake is 292 us. The <a href="http://www.ti.com/lit/ds/symlink/msp430fr2311.pdf" target="_blank">datasheet</a> Table 6-1. Operating Modes mentions the time taken is 350 us. While waking up, there is a peak current consumption of 1.352 mA.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixNBvUPGd1PobeNFwmJig1r7lIQtx6e9GwHV0o-JCxaRSaDlzJBIeSHxHQqM5SQj-wcMap2FJimgPTKJTxf_Mj-GjGOystK0TtWoMAu9VoLUgF90lIV6BVWxa3yGtVj2e35clVIZ7mWcgx/s1600/03_LPM3.5_Time_Taken_to_Service_Interrupt.bmp" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="800" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixNBvUPGd1PobeNFwmJig1r7lIQtx6e9GwHV0o-JCxaRSaDlzJBIeSHxHQqM5SQj-wcMap2FJimgPTKJTxf_Mj-GjGOystK0TtWoMAu9VoLUgF90lIV6BVWxa3yGtVj2e35clVIZ7mWcgx/s640/03_LPM3.5_Time_Taken_to_Service_Interrupt.bmp" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b style="font-size: 12.8px;">Fig 6. </b>After waking up from the Sleep mode, it takes around 600 uS to select the 32Khz crystal. The current consumption during this period is roughly 240 µA.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLXGQ7qHSx3bgVF56RvWAZfCnDcjMH25yQaRVgfqdYxi83qK-F_Ik3zhPVH4tWZ6Ig-qmuf-Ffu_G4twqKM64A3zlEw0CIVRdPkyvmzd0-vWD_gXEbFBMC9DvZGnmLUb45FQ6zR0IXH_Jp/s1600/04_LPM3.5_Time_Taken_to_Toggle_in_ISR.bmp" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="800" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLXGQ7qHSx3bgVF56RvWAZfCnDcjMH25yQaRVgfqdYxi83qK-F_Ik3zhPVH4tWZ6Ig-qmuf-Ffu_G4twqKM64A3zlEw0CIVRdPkyvmzd0-vWD_gXEbFBMC9DvZGnmLUb45FQ6zR0IXH_Jp/s640/04_LPM3.5_Time_Taken_to_Toggle_in_ISR.bmp" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b style="font-size: 12.8px;">Fig 7. </b>It takes around 48 uS after entering the RTC ISR to toggle the GPIO.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdHwzVQxuVf5XYeyziMyvEM6wtDOf5DssBO51tlwT3cwfLn5darMdKr3pxkQVugnWpVW0TXCt6YAsqQ1d26IjaCX3UX7fEWkVWKlXQLLR_snQwf-JDM5bHBeemlCdV9C4s380atHyonG98/s1600/05_LPM3.5_Time_Taken_to_save_in_BKMEM_and_Sleep.bmp" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="800" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdHwzVQxuVf5XYeyziMyvEM6wtDOf5DssBO51tlwT3cwfLn5darMdKr3pxkQVugnWpVW0TXCt6YAsqQ1d26IjaCX3UX7fEWkVWKlXQLLR_snQwf-JDM5bHBeemlCdV9C4s380atHyonG98/s640/05_LPM3.5_Time_Taken_to_save_in_BKMEM_and_Sleep.bmp" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b style="font-size: 12.8px;">Fig 8. </b>After toggling the GPIO, 38 uS is required to save the state of PORT1 to Backup memory and enter the LMP3.5 Sleep mode.</td></tr>
</tbody></table>
You get more insights from the scenario when GPIO transition from High to Low.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQvt8CmHmURP81RUtgF70ZnPzYyFMpqlwcVTNub0EQeHckeNsF1AZBfa6muqkODEp1EqLgqGvoGupwP6VkiZCK44hN8zaw-kog-lFk1GuLaF6xdRQZBe715UB2ClMcji6riBbeg2frkqcF/s1600/07_LPM3.5_Hi_Low_01.bmp" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="800" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQvt8CmHmURP81RUtgF70ZnPzYyFMpqlwcVTNub0EQeHckeNsF1AZBfa6muqkODEp1EqLgqGvoGupwP6VkiZCK44hN8zaw-kog-lFk1GuLaF6xdRQZBe715UB2ClMcji6riBbeg2frkqcF/s640/07_LPM3.5_Hi_Low_01.bmp" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b style="font-size: 12.8px;">Fig 9. </b>Hi to Low transition of P1.6</td></tr>
</tbody></table>
<br />
Let me explain what's happening here. The default state of the GPIO is Low. So, when the MCU wakes up, P1.6 is pulled to low (resetting to its default state). So from the above image, it is clear that the time taken for the MCU to wake up is 262 uS, which is well within the limit (350 uS).<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE2K8XPJRkKXlP7dAQ6iXgJYDvPb-9yTLrWUjCfzHjWTileHuJuymV7Owxt5rvQEP2IgKUzB4H9Zc6YDpwwipSIzYFNEzIcD7JBQr10IPvf3eRo1WCr0SUAurpRk1GAi-8Z5A_QQof_1Ky/s1600/11_LPM3.5_Hi_Low_05.bmp" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="800" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE2K8XPJRkKXlP7dAQ6iXgJYDvPb-9yTLrWUjCfzHjWTileHuJuymV7Owxt5rvQEP2IgKUzB4H9Zc6YDpwwipSIzYFNEzIcD7JBQr10IPvf3eRo1WCr0SUAurpRk1GAi-8Z5A_QQof_1Ky/s640/11_LPM3.5_Hi_Low_05.bmp" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b style="font-size: 12.8px;">Fig 10. </b>Time taken to restore the Port 1 state.</td></tr>
</tbody></table>
The time taken to <a href="https://gist.github.com/Vijayenthiran/b0f2f78abd2ef9d404fb968e168d68f5#file-msp430fr231x_lpm_3_5_01-c-L22" target="_blank">restore the Port 1 GPIO state</a> is 648 us. The in-between time is spent on selecting the crystal pin and <a href="https://gist.github.com/Vijayenthiran/b0f2f78abd2ef9d404fb968e168d68f5#file-msp430fr231x_lpm_3_5_01-c-L15" target="_blank">setting up the crystal</a>. I assume that most of the time is spent on <a href="https://gist.github.com/Vijayenthiran/b0f2f78abd2ef9d404fb968e168d68f5#file-msp430fr231x_lpm_3_5_01-c-L15" target="_blank">checking for the oscillator flag</a>.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjynzB9pa1cq-KWkeY388eUZ26fQy3j3Oi6AAjBvsqVpR7P1E8Av9WdR9oeo81bb9Qnl5YvVIZETo6MtgVuNdCYKhCM6PHbUqcVyLxCso1hEQkDEyQDkza9cyEV6TVkIPshz9ELz7QXZ80z/s1600/13_LPM3.5_Hi_Low_07.bmp" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="800" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjynzB9pa1cq-KWkeY388eUZ26fQy3j3Oi6AAjBvsqVpR7P1E8Av9WdR9oeo81bb9Qnl5YvVIZETo6MtgVuNdCYKhCM6PHbUqcVyLxCso1hEQkDEyQDkza9cyEV6TVkIPshz9ELz7QXZ80z/s640/13_LPM3.5_Hi_Low_07.bmp" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b style="font-size: 12.8px;">Fig 11. </b>Current spike before restoring the Port 1 state.</td></tr>
</tbody></table>
There are some current spikes before restoring the Port 1 state. Probably, the spikes are due to the data read from the Backup memory. If this assumption is correct, then the time taken for the read is 14 uS.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtHec2BAb62diRHjErS0d7IopBxlEd1D9Z0iUZ0V326O_KEgjACTeX8HgM2AyAhd3QF1eRcwFbRDtFiGKX5wQk7kFVNdmhiNqK2xvu2TbnpUV7ejTH-gRqvjaNz_fObZvgrq7gI5plmH4u/s1600/10_LPM3.5_Hi_Low_04.bmp" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="800" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtHec2BAb62diRHjErS0d7IopBxlEd1D9Z0iUZ0V326O_KEgjACTeX8HgM2AyAhd3QF1eRcwFbRDtFiGKX5wQk7kFVNdmhiNqK2xvu2TbnpUV7ejTH-gRqvjaNz_fObZvgrq7gI5plmH4u/s640/10_LPM3.5_Hi_Low_04.bmp" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b style="font-size: 12.8px;">Fig 12. </b>After toggling the GPIO, 36 uS is required to save the state of PORT1 to Backup memory and enter the LMP3.5 Sleep mode. (Matches with Fig. 8)</td></tr>
</tbody></table>
To summarize, let's highlight the events.<br />
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioSq8Ar0Yjp1-Uz_TbBCu7BMbdlnc6qFLGErmHWd7xFoYX3ps18d1EgzMFHhOni1c3LzhpBFlg8g17h8T3e4_5vaOsaqi412k6Tlhzg5BPe6IVoHMpbkXOCpMPEDHSLWKCnQw7oecyTf9L/s1600/07_LPM3.5_Hi_Low_01.bmp" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="800" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioSq8Ar0Yjp1-Uz_TbBCu7BMbdlnc6qFLGErmHWd7xFoYX3ps18d1EgzMFHhOni1c3LzhpBFlg8g17h8T3e4_5vaOsaqi412k6Tlhzg5BPe6IVoHMpbkXOCpMPEDHSLWKCnQw7oecyTf9L/s640/07_LPM3.5_Hi_Low_01.bmp" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b style="font-size: 12.8px;">Fig 13. </b></td></tr>
</tbody></table>
<div>
<br /></div>
<div>
0 - MCU in LPM 3.5 Sleep mode.<br />
1 - MCU wakes up from the Sleep mode, resets the Watchdog timer.<br />
2 - Initializes the GPIO and selects the crystal pins.<br />
3 - Sets the main oscillator clock to XT1.<br />
4 - Reads the state from Backup memory and restores it.<br />
5 - RTC ISR serviced.<br />
6. Saves the state in Backup memory and goes back to LPM3.5.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
So far, I focused on the time taken for the various event. Let's focus on the Y-Axis (Current). Which is the important feature of the MPS430 series.<br />
<br />
As mentioned earlier in the setup, custom-made µCurrent GOLD is used in 1mV/µA mode. So, 1mV division in the scope represents 1µA current consumption in the Device under test (DUT).<br />
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo3cZgfzkKgoBEtQxQVjRcCp1GKWt76ZhKlB76y2FwLTHU8cpze4Mw0Hoz5rxaQ4meTKtqRkVk_CXLvP-rmQeuoM0lDV3DETf7RfI67Kb70i6vToRbyig08_iRyhjG0UEiFTUpCml5v3cj/s1600/14_LPM3.5_Current.bmp" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="962" data-original-width="802" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo3cZgfzkKgoBEtQxQVjRcCp1GKWt76ZhKlB76y2FwLTHU8cpze4Mw0Hoz5rxaQ4meTKtqRkVk_CXLvP-rmQeuoM0lDV3DETf7RfI67Kb70i6vToRbyig08_iRyhjG0UEiFTUpCml5v3cj/s640/14_LPM3.5_Current.bmp" width="532" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b style="font-size: 12.8px;">Fig 14. </b>Current spikes occur every second, which indicates the device waking up every one second.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: left;">
The violet line shows the integration of current over the time (Area under the yellow curve). It is measured around 28 mVs which indicates a current consumption of 28 µA over a period of <strike>one second</strike> 2.4 seconds, which indicates that the current consumption is 11.83 µA/sec. But this measurement might be deceiving as the scope has an error due to the offset. (Explained in the <a href="https://www.youtube.com/watch?v=Dh0xYu8YvaE&lc=UghV1txYdKV33XgCoAEC" target="_blank">comments of this EEVBlog video</a>).</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
In the following figure, you can notice the time scale is set at 100ms and the microcontroller is set to wake up every 10 seconds.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpVFfYxmJgA5aFGAA5CXTfh_xFyrM5ftAFymdOlcaHP5I01GXij68QMbafqFkEBheCy7RRPJk7Y3LM6RHeRKE6Sviv1TAd_j5wFSEk2Nu1sC9wF_QQxemdDzXDaYKtjlQjhLutnH9sCGFD/s1600/DS1Z_QuickPrint15.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="800" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpVFfYxmJgA5aFGAA5CXTfh_xFyrM5ftAFymdOlcaHP5I01GXij68QMbafqFkEBheCy7RRPJk7Y3LM6RHeRKE6Sviv1TAd_j5wFSEk2Nu1sC9wF_QQxemdDzXDaYKtjlQjhLutnH9sCGFD/s640/DS1Z_QuickPrint15.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b style="font-size: 12.8px;">Fig 15. </b>Integration using Math and Measurement functions.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: left;">
The Math function shows the Area under the curve is 11.6 mVs (Vs because the BX-AX is 1s) and at the bottom, the Area over the full screen is measured as 12.9 mVs (over 1.2s) which is matches our previous measurement.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim-xNeuyPGR9gQQT6bh3yIuFqMUFAgHruAzOVU72GVTd3qtezhACW4X7Pebp-dp-EhyphenhyphenrbcP_SsyHSzL3d_DsODqRfp_hnVxbatHo82hx3ozWMA-C8TP6eQTD4-TmF59b59uAG8Q0WHEOct/s1600/16_LPM3.5_RTC_Wake_Up.bmp" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="962" data-original-width="802" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim-xNeuyPGR9gQQT6bh3yIuFqMUFAgHruAzOVU72GVTd3qtezhACW4X7Pebp-dp-EhyphenhyphenrbcP_SsyHSzL3d_DsODqRfp_hnVxbatHo82hx3ozWMA-C8TP6eQTD4-TmF59b59uAG8Q0WHEOct/s640/16_LPM3.5_RTC_Wake_Up.bmp" width="532" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b style="font-size: 12.8px;">Fig 16. </b>Zoomed in position of LPM current consumption.</td></tr>
</tbody></table>
<div>
Going on, in the above image, you can notice the current spikes at around 36 Hz frequency. This indicates the <a href="https://gist.github.com/Vijayenthiran/b0f2f78abd2ef9d404fb968e168d68f5#file-msp430fr231x_lpm_3_5_01-c-L33" target="_blank">RTC counter counting up</a> (It is supposed to be 32 Hz, but I am not sure why I am getting 36 Hz, maybe the crystal is not compensated which causes a drift? 🤔 ) During the RTC count up, the current consumption is around 15 µA.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQUOsR_CfBBx4_gAXj35S8C0sCRZVIF379s40B0BHcDzeSQvCzRL7MYUOV9TwJLfYAbR2wnC7liSdVJF9LAD_Ok3aLnyzTxG8-HfyhjwhrBrk50LRPJn3NjCdP7dxZnYJHv00uq_KLbU7f/s1600/18_LPM3.5_Current_01.bmp" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="800" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQUOsR_CfBBx4_gAXj35S8C0sCRZVIF379s40B0BHcDzeSQvCzRL7MYUOV9TwJLfYAbR2wnC7liSdVJF9LAD_Ok3aLnyzTxG8-HfyhjwhrBrk50LRPJn3NjCdP7dxZnYJHv00uq_KLbU7f/s640/18_LPM3.5_Current_01.bmp" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b style="font-size: 12.8px;">Fig 17. </b>During the sleep mode, the current peaks are around 7 µA.</td></tr>
</tbody></table>
<div>
<br /></div>
<div>
Finally, I made the RTC interrupt every 10 seconds to measure the average current consumption during the LPM 3.5 mode with the multimeter.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgflWwMMEmC3du0PGDoZQCAkV35yI10SARJ0MKjIax2rcJ57mGAoFuZWjlIR4DYmRHxLcFkKoT3PzovNnR2NPoAxii1FlW0jPSaBVVcIs1OpQ8Ifh2Q8BA95p0Vj3NNW3kNHTwoEYVSfX_R/s1600/20180113_145634_Richtone%2528HDR%2529.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgflWwMMEmC3du0PGDoZQCAkV35yI10SARJ0MKjIax2rcJ57mGAoFuZWjlIR4DYmRHxLcFkKoT3PzovNnR2NPoAxii1FlW0jPSaBVVcIs1OpQ8Ifh2Q8BA95p0Vj3NNW3kNHTwoEYVSfX_R/s640/20180113_145634_Richtone%2528HDR%2529.jpg" width="480" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b style="font-size: 12.8px;">Fig 18. </b>1mV/nA is selected. Hence the average consumption is 531 nA.</td></tr>
</tbody></table>
<div>
I could measure 531nA during the LPM 3.5 sleep mode which is well within the limit mentioned in the datasheet (0.71 µA) See Table 6-1. Operating Modes in the <a href="http://www.ti.com/lit/ds/symlink/msp430fr2311.pdf" target="_blank">datasheet</a>.</div>
<div>
<br /></div>
<div>
Overall, the measurements are well within the limits mentioned in the datasheet.<br />
<br />
<br />
<a name='more'></a><br />
Parts used:<br />
<br />
<ul style="text-align: left;">
<li><a href="https://store.ti.com/MSP430FR2311IPW20R.aspx" target="_blank">MSP430FR2311IPW20R</a></li>
<li>CR2032 measured at 3.03V</li>
<li><a href="http://www.ti.com/tool/MSP-EXP430FR4133" target="_blank">MSP430FR4133 Launchpad</a> for programming</li>
<li>Custom made EEVBlog µCurrent GOLD</li>
<li><a href="https://www.mouser.com/ProductDetail/IQD/LFXTAL002996Bulk/?qs=sGAEpiMZZMv3em63uDEI%2fGB%252b7L4o3N01fld1fbQZZ84=" target="_blank">32.768 kHz 15PPM crystal</a></li>
</ul>
</div>
<div>
<br class="Apple-interchange-newline" /><br />
<!--more-->Edits: Based on the <a href="https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/656678" target="_blank">feedback</a> from <a class="internal-link view-user-profile" href="https://e2e.ti.com/members/4910873" style="background: rgb(240, 240, 240); box-sizing: border-box; color: #cc0000; font-family: "Source Sans Pro", Helvetica, Arial, sans-serif; font-size: 14px; outline: 0px; transition: color 0.1s; white-space: nowrap;">Ryan E Meredith</a></div>
</div>
Anonymoushttp://www.blogger.com/profile/06611978744229025098noreply@blogger.com0tag:blogger.com,1999:blog-7955206741326568627.post-44736390341945176822015-07-11T08:11:00.000-07:002015-07-11T08:17:42.540-07:00My first experience in Hackanthon - iTech2015 <div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: justify;">
<span style="text-align: left;">I came across a group post in Facebook which says there;s a IoT hackanthon happening in Banglore. Ah, I am going to move to IoT team next month and this would be a good chance to get exposed myself to the technology. And the best part about the hackanthon - There's a takeaway kit. Sounds good. There's a catch. You have to submit you idea and they will shortlist the team. So Mervin and I assembled in Karthick Singaram's place to brainstorm the idea. I pitched my traffic signal controller idea which controls the traffic when a ambulance comes close by it. It doesn't impress them well. But the team leader Singaram had a brighter idea. A bar code scanner fixed into the trolley and the user have to scan the product's barcode every time they puts into the trolley and at the checkout they have to tell the trolley number after which the bill will be automatically generated. Despite the disadvantages in the idea, out team got selected!</span></div>
<div style="text-align: justify;">
Unfortunately, my sister and family was coming back to chennai that week and Saturday morning refreshment was a doubt. With the doubt we went to Banglore and got down in the Banglore East station. We walked for about a mile to the ITC infotech park and as expected we were unwelocmed at 5.00 clock in the morning. So the Singaram (team/gang leader hereafter) called the organizer and tada. He told there's a guest house nearby and we have got a room in it. The guest house was another half a mile away from the tech park and we walked in. The room keeper came down to pick us up and when we opened a house we were in for a surprise. It was a bloody DUPLEX house. They gave a single room for all both of us initially thinking that only two guys are coming in but eventually in the next fifth minute they gave another room in the top floor. It was really a state of art guest house.</div>
<div style="text-align: justify;">
Some Pictures of the guest house:</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAn0-WcLT9ePpPOwYWwO9YM3ffCdBw47WJbH6qvDFsiIpGT9i36EkpDQ_d2cPXftoSmAESnMthGJfszhYiYAbdGuPoXKgKZaeEaAKpcn39fAM_TRf179h7VoTham20Ln8Rl_IFPbjucI7T/s1600/IMG_20150704_053529.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAn0-WcLT9ePpPOwYWwO9YM3ffCdBw47WJbH6qvDFsiIpGT9i36EkpDQ_d2cPXftoSmAESnMthGJfszhYiYAbdGuPoXKgKZaeEaAKpcn39fAM_TRf179h7VoTham20Ln8Rl_IFPbjucI7T/s640/IMG_20150704_053529.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The Bed room</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglYJatub4INGhE7P9bTsXdi-MLSCpT9_JVKFJgpYQfN2x9KNsR2WG7vh46h4Hd4ElGZMGVNkYbVYrh3BuiHHyNbucQj5kRqRbhHvSwjjjt1zsPt0EcNAK4dEQcJaSyfl6t5M7xWJj9o9Mj/s1600/IMG_20150704_053551.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglYJatub4INGhE7P9bTsXdi-MLSCpT9_JVKFJgpYQfN2x9KNsR2WG7vh46h4Hd4ElGZMGVNkYbVYrh3BuiHHyNbucQj5kRqRbhHvSwjjjt1zsPt0EcNAK4dEQcJaSyfl6t5M7xWJj9o9Mj/s640/IMG_20150704_053551.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The Bed room View 2</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNmHh-6y759vGBnOu8SwrPghkPEkrD_gny8WmNLLMHxucNS-9UQy86ikeP7A7omsEklTgXkSI7nUvPFX7gJsETG18VLkTVgtr92XDCxjoWN3rI4X1yqAyr3RMHmJCqS9YRJmXJKa4Tr01Y/s1600/IMG_20150704_084219.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNmHh-6y759vGBnOu8SwrPghkPEkrD_gny8WmNLLMHxucNS-9UQy86ikeP7A7omsEklTgXkSI7nUvPFX7gJsETG18VLkTVgtr92XDCxjoWN3rI4X1yqAyr3RMHmJCqS9YRJmXJKa4Tr01Y/s640/IMG_20150704_084219.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Dining space on the top floor</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqyNC0AbccMbmroCoIOD8XYoCDf9i3NZ3irZGPLxWytfZJMGXYGd3d3NyzlxTovazilJkXjt_V_I2Wi9gyVLHi7t9HKaPT8WOP77KVLweK4kMWYN-Vw3tkwUEIr1R_AdjoAZG8XDO-sR5r/s1600/IMG_20150704_084235.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqyNC0AbccMbmroCoIOD8XYoCDf9i3NZ3irZGPLxWytfZJMGXYGd3d3NyzlxTovazilJkXjt_V_I2Wi9gyVLHi7t9HKaPT8WOP77KVLweK4kMWYN-Vw3tkwUEIr1R_AdjoAZG8XDO-sR5r/s640/IMG_20150704_084235.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">View of the hall from the top</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjixJWauJ-6WBQ-BeyRkmEX4JlqDeMB2ukGOisNat_Z7usDCUe1j-F2-Gksz4W5rI_QgQpjbvxhB6RRKK5Rm6DAEtHXDF7ke0EiMrrCHKqlLs6IgTzjFC-vtmvrfB0ZRevmQ1yexc-D2Gne/s1600/IMG_20150704_085731.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjixJWauJ-6WBQ-BeyRkmEX4JlqDeMB2ukGOisNat_Z7usDCUe1j-F2-Gksz4W5rI_QgQpjbvxhB6RRKK5Rm6DAEtHXDF7ke0EiMrrCHKqlLs6IgTzjFC-vtmvrfB0ZRevmQ1yexc-D2Gne/s640/IMG_20150704_085731.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Awesome Hall</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW3HP1HuhBI28zGa_p5rQ_tkFr4qXt_nzStOllmRRySFaGh8T3mWbzMhKL1RH8adCGhDqSIh_-jvW958NIO7hUYpErk-tQioFA_shavW0zVOq6FQuhQK8CHYCSlPsuiCYjFsJ-cCoPMg1U/s1600/IMG_20150704_085831.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW3HP1HuhBI28zGa_p5rQ_tkFr4qXt_nzStOllmRRySFaGh8T3mWbzMhKL1RH8adCGhDqSIh_-jvW958NIO7hUYpErk-tQioFA_shavW0zVOq6FQuhQK8CHYCSlPsuiCYjFsJ-cCoPMg1U/s640/IMG_20150704_085831.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Love this big table in the hall</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAsaHgacsjoWkrSc8wSvlpJY24gIRIYKA6OMGTCY83xpFk0oI2oZBysczFj8u92dEmRl_pcjr1GueJA1eOeQ8MZ7oe0nqFe5amcgqcVP5QbG6dOU7Niw3BxM-m-nVMBOtqt9O96NplWpqL/s1600/IMG_20150704_090027.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAsaHgacsjoWkrSc8wSvlpJY24gIRIYKA6OMGTCY83xpFk0oI2oZBysczFj8u92dEmRl_pcjr1GueJA1eOeQ8MZ7oe0nqFe5amcgqcVP5QbG6dOU7Niw3BxM-m-nVMBOtqt9O96NplWpqL/s640/IMG_20150704_090027.jpg" width="480" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">They had a rack full of ITC products. You can even use them ;)</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglaUaD1W0yL98PIVNmi93Mncr-zKOD779pxmQg3IPqnZVdLtoQ63LKuEpqKa6HigExgbIhLbREgdf8nIxoNr871SBosk5cSJcBpHwvuwPUERQFCEFrRVhtVsG5nY8BswfvhBfQuPPFLz5q/s1600/IMG_20150704_091245.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglaUaD1W0yL98PIVNmi93Mncr-zKOD779pxmQg3IPqnZVdLtoQ63LKuEpqKa6HigExgbIhLbREgdf8nIxoNr871SBosk5cSJcBpHwvuwPUERQFCEFrRVhtVsG5nY8BswfvhBfQuPPFLz5q/s640/IMG_20150704_091245.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">These designer pots were really cool.</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtKYSccL8yLpfMXIWlx6OY4vTZbbxWbpeMGykJUuyv9F7reFdMbQUv9taOZG9nHiOisKJc_kZ-3r1OFlt_V1ZPENrE4pbJxICVjBKr128MG9pJFLTlPcWnfjVlFs2cklU2VF5Go-X_p_37/s1600/IMG_20150704_091405.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtKYSccL8yLpfMXIWlx6OY4vTZbbxWbpeMGykJUuyv9F7reFdMbQUv9taOZG9nHiOisKJc_kZ-3r1OFlt_V1ZPENrE4pbJxICVjBKr128MG9pJFLTlPcWnfjVlFs2cklU2VF5Go-X_p_37/s640/IMG_20150704_091405.jpg" width="480" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The Balcony</td></tr>
</tbody></table>
<br />
After having breakfast at the guesthouse we went to the ITC infotech park for the event. The checkin was done and at the event area we had all these young minds (and old too. only in their age) ready for the hackathon. The MD and CEO of the company kickstarted the event in a very stylish way.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/tsUJRssS3pE/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/tsUJRssS3pE?feature=player_embedded" width="320"></iframe></div>
<br />
<br />
After the event kit start, we collected out kit which included a Raspberry Pi Model B, breadboard, jumper wires and a USB cable, Hey. I forgot to mention. Each one of us got a 90 days Microsoft Azure subscription and an 8GB pendrive.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIG1ZIZfo4DPBbwXhsZoa9xlrZKLdQC_TapBq7jdEUe3Y70IApS8rKhBfuo1mWjibqyM4IjyorUT8QnYiVvXfitrCbVi7cebbE1Q8I6jMW377WBb6SDEBHSWPPqAxKkDqneRy_b_HIlW0s/s1600/IMG_20150704_214436.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIG1ZIZfo4DPBbwXhsZoa9xlrZKLdQC_TapBq7jdEUe3Y70IApS8rKhBfuo1mWjibqyM4IjyorUT8QnYiVvXfitrCbVi7cebbE1Q8I6jMW377WBb6SDEBHSWPPqAxKkDqneRy_b_HIlW0s/s640/IMG_20150704_214436.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The event area</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDZ39k0sEEPmS1l8Xh8VMRgyCozAoeJwNH2pfSsqHPpVZVDVYsVvSpjHtwQEmWFD8qrpjMQEJRMmxnD4RyU_rHu1t48t7jEekaj9ld_P-R1v4IKME7eeJKTCOZyu-9VnbCxyUkV0L70TsB/s1600/IMG_20150704_214442.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDZ39k0sEEPmS1l8Xh8VMRgyCozAoeJwNH2pfSsqHPpVZVDVYsVvSpjHtwQEmWFD8qrpjMQEJRMmxnD4RyU_rHu1t48t7jEekaj9ld_P-R1v4IKME7eeJKTCOZyu-9VnbCxyUkV0L70TsB/s640/IMG_20150704_214442.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Mervin (L) and Sai working with the ThingWorx platform</td></tr>
</tbody></table>
<br />
<div style="text-align: justify;">
So after getting into the workspace we had everything to get started. The catch is that we have to use Raspberry pi (R-Pi hereafter) to send sensor data to the ThingWorx which should be used to process the data and display it to the user as a webpage. We had a barcode scanner and it was really easy to interface. You have to plug the barcode scanner to the usb port and if you can scan it it types the barcode numbers, just like a keyboard. It sounded easy initially but when we tried initially with the R-Pi it didn't read like a laptop read. I suppose it was reading ORD characters. Fortunately, <a href="https://www.raspberrypi.org/forums/viewtopic.php?f=45&t=55100" target="_blank">this thread</a> helped to resolve the problem. The mentor team from the ThingWorx gave us a cURL command to send the data from the R-Pi to the ThingWorx server. The cURL command looked like this:</div>
<blockquote class="tr_bq">
curl -k -H 'appKey:ea11ab44-04cb-4093-95cb-0c2df398cd0f' -H 'Content-Type:application/json' --data '{"Current_Temp":55,"Current_Hum":40}' https://i3liot2.cloudapp.net:8443/Thingworx/Things/Am2302Thing/Services/setPropValues</blockquote>
<div style="text-align: justify;">
Thanks to the OS library in python to send this command to the terminal. We were using the server 3 at that time. So one part was successfully done in the first day itself. Here comes the hardest part.</div>
<div style="text-align: justify;">
Sai started exploring the <a href="http://www.thingworx.com/academic_content/r-pi-weather-app/" target="_blank">weather application</a> example given as example. We were sending the barcode data in the variable Current_Temp. Initially, Sai created a page which displayed the data in a webpage. But we wanted to display the data in a list with a checkout button. There was a mentor whom we suppose had a very good experience with the platform and she was helping us out. The problem is all other team were having a hard time exploring the platform and she had to help others also. Around 2 AM we took a break to brainstorm. There was space with beanbags and it was really good. We decided to add a proximity sensor to the barcode so that the user don't have to press the button every time; they just had to bring the product nearby the scanner and the scanner will automatically reads the data. Hands free. We were able to hack it by borrowing a soldering station. Since I and Mervin weren't able to understand the ThingWorx platform we both went back to the guest house to sleep. By 6 AM Sai and team lead came back to the guest house. By 9 o'clock we went to the event space. Sai and team lead were able to list the data previous night in the ThingWorx site. But next day they informed that the server 3 crashed and they couldn't bring it up. Sai and team lead did a great job for the next 3 hours and they were able to recreate the same app as before. We demonstrated the application to the juries and one of the non-juries asked a question at the end of the judging which might have affected our score. After that ITC hotel buffet followed and we had a great lunch.</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7dBJYX9zcMiIio7TGeI5D6qgFazuk9mhO8C-fKH80OWVhVftvEdsaOZn5uTbz5h8eWsTLMvX1DnDjnNVTh96bqLIeRIfPlYV7UBIGhnbPaMwcPDtk49zVYYLQqupuTVEWU5sP2O2r7Uhw/s1600/IMG_20150705_013931.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7dBJYX9zcMiIio7TGeI5D6qgFazuk9mhO8C-fKH80OWVhVftvEdsaOZn5uTbz5h8eWsTLMvX1DnDjnNVTh96bqLIeRIfPlYV7UBIGhnbPaMwcPDtk49zVYYLQqupuTVEWU5sP2O2r7Uhw/s640/IMG_20150705_013931.jpg" width="480" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The hacked Barcode scanner</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5zznQs7jwFsQBVcaD6rALd0YAVNh6lelkcnN75z-ioDHGZsz81o3XGsgMu1Gm-mnEMZDgCBSv4039yQafkCsSWmlXKXgZBknqP_8Jhrmuoest48NUHnFaT3zMaa6ozbiL5m0n5puaOc8u/s1600/IMG_20150705_153941.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5zznQs7jwFsQBVcaD6rALd0YAVNh6lelkcnN75z-ioDHGZsz81o3XGsgMu1Gm-mnEMZDgCBSv4039yQafkCsSWmlXKXgZBknqP_8Jhrmuoest48NUHnFaT3zMaa6ozbiL5m0n5puaOc8u/s640/IMG_20150705_153941.jpg" width="480" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR0R8f5uDuT-6BBDUixd23yi8KSohnmj1C55OSyvNNrufq4tD99rjeQI_LbBXVBbrTyou1ID0Bfv4hiwo-ebiiqDGXXvzNzuEynhpzrEFQXowA4meggzD2EFJspPHv8NfcKiG1n2dGHKDs/s1600/IMG_20150705_154042.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR0R8f5uDuT-6BBDUixd23yi8KSohnmj1C55OSyvNNrufq4tD99rjeQI_LbBXVBbrTyou1ID0Bfv4hiwo-ebiiqDGXXvzNzuEynhpzrEFQXowA4meggzD2EFJspPHv8NfcKiG1n2dGHKDs/s640/IMG_20150705_154042.jpg" width="480" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The web interface</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9ipbAHyKl-vXcqAMcGD4Y2TSNHyPF7ee34wQkHEiJwc2_AvWS5dPm8GgcQJBOOrNax6m2HOLrPYpIKkE24MvmZJZL7_40YnsJ1h-PpDr6AsXQ1_veqmXMz5drt86Oits4ZffumCqCs10Q/s1600/IMG_20150705_154100.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9ipbAHyKl-vXcqAMcGD4Y2TSNHyPF7ee34wQkHEiJwc2_AvWS5dPm8GgcQJBOOrNax6m2HOLrPYpIKkE24MvmZJZL7_40YnsJ1h-PpDr6AsXQ1_veqmXMz5drt86Oits4ZffumCqCs10Q/s640/IMG_20150705_154100.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The sketchup model of the smart trolley</td></tr>
</tbody></table>
All in all it was a great first time hackanthon, with free food,great networking experience. Although we didn't win the hackanthon we walked out of the space with satisfaction. This event gave me motivation to participate in more events like these.</div>
Anonymoushttp://www.blogger.com/profile/06611978744229025098noreply@blogger.com0tag:blogger.com,1999:blog-7955206741326568627.post-33066351275950062772014-04-27T01:52:00.002-07:002016-09-03T01:59:18.594-07:00Controlling LEDs using TV Remote<div dir="ltr" style="text-align: left;" trbidi="on">
This post is also published in <a href="http://www.erfssn.org/2014/04/controlling-leds-using-tv-remote/" target="_blank">ERF Blog </a><br />
In this tutorial we explain how to control the on board LEDs of <a href="http://www.induino.com/" target="_blank" title="Induino Website">Induino.</a>
Induino is a clone of famous Arduino Uno with on board periperals.
Induino contains TSOP which is used to receive IR signals. TV Remote
contains IR LED and when any key is pressed it sends modulated IR
signals. The signal is inturn is received by the TSOP of the Induino
board. A <a href="http://www.induino.com/2013/07/interfacing-tv-remote-with-on-board.html" target="_blank">good writeup</a> for interfacing TV Remote with onboard TSOP is available in <a href="http://www.induino.com/2013/07/interfacing-tv-remote-with-on-board.html" target="_blank">Induino website</a>.(Credits: Prakash of <a href="http://www.simplelabs.co.in/" target="_blank">Simple Labs</a>)<br />
<a href="https://github.com/shirriff/Arduino-IRremote" target="_blank">IRremote Library</a> by <a href="http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html" target="_blank">Ken Shirriff</a> is used to make the things simpler. This library can be used to decode any TV Remote.<br />
I had Videocon TV remote. It doesn’t use any standard protocol. So to decode it I used <code>examples/IRrecvDemo</code>. The code is as follows:<br />
<pre>#include <span class="pl-pds" style="background-color: white; box-sizing: border-box; color: #183691; font-family: "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 12px; line-height: 20px;"><</span><span style="background-color: white; color: #183691; font-family: "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 12px; line-height: 20px;">IRremote.h</span><span class="pl-pds" style="background-color: white; box-sizing: border-box; color: #183691; font-family: "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 12px; line-height: 20px;">></span><irremote .h="">
int RECV_PIN = 15; //TSOP is connected to the 15th Pin
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
}</irremote></pre>
After uploading it to the arduino board open the serial monitor and
press the keys in the remote for which you want to decode and note down
the result in the serial monitor.<br />
In my case when I pressed ’1′ it showed 2FD807F and when I pressed
’2′ it showed 2FD40BF in the serial monitor. These are the hexadecimal
codes. You may also get some additional values which I assume it as
junk. In my case when I presses ’1′ in addition to 2FD807F the serial
monitor showed FFFFFFFF. You can negelect this code as it will come for
all the key press.<br />
<div class="wp-caption aligncenter" id="attachment_1229" style="width: 310px;">
<a href="http://www.erfssn.org/wp-content/uploads/11.jpg"><img alt="The key press decoded by IRrecvdemo" class="size-medium wp-image-1229" height="268" src="https://www.erfssn.org/wp-content/uploads/11-300x268.jpg" width="300" /></a><br />
<div class="wp-caption-text">
The
key press ’1′ decoded by IRrecvdemo is displayed on the serial monitor.
The second line is assumed to be junk and it can be neglected.</div>
</div>
Now you have decoded the key press you can modify the IRrecvdemo to
control you LEDs. I have shared the snippet with necessary comments:<br />
<br />
<pre>#include <span class="pl-pds" style="background-color: white; box-sizing: border-box; color: #183691; font-family: "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 12px; line-height: 20px;"><</span><span style="background-color: white; color: #183691; font-family: "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 12px; line-height: 20px;">IRremote.h</span><span class="pl-pds" style="background-color: white; box-sizing: border-box; color: #183691; font-family: "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 12px; line-height: 20px;">></span><irremote .h="">
<span style="color: grey;">//declare necessary variables</span>
int RECV_PIN = 15; <span style="color: grey;">// TSOP Pin</span>
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
<span style="color: grey;">//declare necessay pins as output or input.</span>
<span style="color: grey;"> //for eg. declare the LED pins as o/p and TSOP as i/p</span>
Serial.begin(9600);
irrecv.enableIRIn(); <span style="color: grey;">// Start the receiver</span>
}
void loop() {
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX);
if(results.value == 0x2FD807F) <span style="color: grey;">//2FD807F is the hex code for keypress '1'.</span>
<span style="color: grey;">//0x before 2FD807F represents it as hex code.</span>
{
<span style="color: grey;">//Turn LED1 on or OFF</span>
}
else if(results.value == 0x2FD40BF) <span style="color: grey;">//2FD40BF is the hex code for keypress '2'.</span>
<span style="color: grey;">//0x before 2FD40BF represents it as hex code.</span>
{
<span style="color: grey;"> //Turn LED2 on or OFF</span>
}
else if(results.value == 0x2FDC03F)
{
<span style="color: grey;">//Turn LED3 on or OFF</span>
}
else
{
<span style="color: grey;">//Do nothing.</span>
}
irrecv.resume(); <span style="color: grey;">// Receive the next value</span>
}
}
</irremote></pre>
Here’s the video of the final outcome:<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="//www.youtube.com/embed/8MEFHistvAo" width="420"></iframe> </div>
Anonymoushttp://www.blogger.com/profile/06611978744229025098noreply@blogger.com0tag:blogger.com,1999:blog-7955206741326568627.post-31857870968978317672013-08-24T12:46:00.000-07:002013-08-24T12:46:40.706-07:00Make MPLAB more easier to use<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
<br />
Let us explore MPLAB IDE options and make it easier to work.<br />
<br />
<br />
<br />
<br />
<br />
Check this window.<br />
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLQX8k5dZvATi26FfuOgLa_xlsimmZTDx85CAzh1rnV-y6n3VpDiXmnaPl8I99e8P6SGKHeN6l4T5TUlo_zGI9TtZDPj7THu1Tr0EXXUqF84fEmj9VW5Y9NHDQodhni3pfHP4CrIRUYgYd/s1600/Capture.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLQX8k5dZvATi26FfuOgLa_xlsimmZTDx85CAzh1rnV-y6n3VpDiXmnaPl8I99e8P6SGKHeN6l4T5TUlo_zGI9TtZDPj7THu1Tr0EXXUqF84fEmj9VW5Y9NHDQodhni3pfHP4CrIRUYgYd/s1600/Capture.JPG" /></a><br />
<br />
<br />
Saw the line numbers ?<br />
Well.Lets see how to make it happen.Its pretty simple.All you need is to explore.<br />
<br />
Select <span style="background-color: white; color: #0b5394;">Edit-->Properties</span><br />
Editor option window will open.<br />
Select <span style="background-color: white;">'</span><span style="color: #0b5394;"><span style="background-color: white;">C' files type</span> </span>tab.<br />
Check Line Numbers and press apply.And you are done.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC_5_EqVCYrvY3Np_m7k_wCQ3WCtso2JTR8zSk4UppSGB93TRIW-IGxUqflpVWPJ7eAUFbedwSE7YM7yF_OlmVgruI6DDWgZj289u85Uzzq1UcPZAxo1mLDxeRcQoKjOlbTdAGMFaSkaYI/s1600/Capture2.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC_5_EqVCYrvY3Np_m7k_wCQ3WCtso2JTR8zSk4UppSGB93TRIW-IGxUqflpVWPJ7eAUFbedwSE7YM7yF_OlmVgruI6DDWgZj289u85Uzzq1UcPZAxo1mLDxeRcQoKjOlbTdAGMFaSkaYI/s1600/Capture2.JPG" /></a><br />
<br />
<br />
And you find any difference in this one from the previous?<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg620zCR2oKflLWtg8cVbBBHBR2uA0w93XYaJTog9Q4AS_yhVoJFK3aXM3gIYuFG30T3Qjwla6IJmCBlC1Efz9dYs87MpmPHBnAJcMDBwZ_i9ehFwquyMLpnOtQF-Mlui-zSJ8mnEn5VVRN/s1600/Capture3.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg620zCR2oKflLWtg8cVbBBHBR2uA0w93XYaJTog9Q4AS_yhVoJFK3aXM3gIYuFG30T3Qjwla6IJmCBlC1Efz9dYs87MpmPHBnAJcMDBwZ_i9ehFwquyMLpnOtQF-Mlui-zSJ8mnEn5VVRN/s1600/Capture3.JPG" /></a><br />
<br />
<br />
Its called Code folding which enables you to fold the code which forms a loop.<br />
Lets make it happen now.Again pretty simple.<br />
<br />
Select <span style="background-color: white; color: #0b5394;">Edit-->Properties</span><br />
<br />
Editor option window will open.<br />
Select <span style="background-color: white;">'</span><span style="color: #0b5394;"><span style="background-color: white;">C' files type</span> </span>tab.<br />
Check Enable code folding and hit apply.<br />
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji5xgRaeOk_IJMe-S1jOOkLzGOmq1BVzXcpyc1nPUKpSj2kH0R7uG7S_2kDLAM5jz6zrZ0otKV54OzzyrqXv8F-dHnTPogSqipI2L8kzepNeGjJmasFRXEvmktG6NsnVdV85ebbS7MZBJS/s1600/Capture4.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji5xgRaeOk_IJMe-S1jOOkLzGOmq1BVzXcpyc1nPUKpSj2kH0R7uG7S_2kDLAM5jz6zrZ0otKV54OzzyrqXv8F-dHnTPogSqipI2L8kzepNeGjJmasFRXEvmktG6NsnVdV85ebbS7MZBJS/s1600/Capture4.JPG" /></a><br />
<br />
<br />
So how its gonna help you?<br />
I know you guys are really a great programmer,creating a program with thousands and thousand lines of coding.The first one help you to figure out where you are and the second one will make you to fold the loops and make your code looks like really a simple kids stuff.<br />
<br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/06611978744229025098noreply@blogger.com0tag:blogger.com,1999:blog-7955206741326568627.post-41339759087937798492012-01-29T18:57:00.000-08:002012-01-29T18:57:33.841-08:00EAGLE CAD Tutorial<div dir="ltr" style="text-align: left;" trbidi="on">
EAGLE (Easily Applicable Graphical Layout Editor) is a schematic
capture and PCB layout tool for hobbyists and DIY enthusiasts. EAGLE is a
popular choice as it is an easy to use, powerful and affordable
schematic capture and printed circuit board design package. Here you
will learn how to get started, how to use the interface, and how to
design a board file from a schematic and export it for hardware use. To
download the file<br />
<a href="http://www.erfssn.org/wp-content/uploads/2012/01/EAGLE-CADSOFT-PROFESSIONAL1.pdf" target="_blank" title="EAGLE CAD tutorial">click here</a> </div>Anonymoushttp://www.blogger.com/profile/06611978744229025098noreply@blogger.com6tag:blogger.com,1999:blog-7955206741326568627.post-76198791727371177212011-02-11T22:18:00.000-08:002011-02-11T22:25:48.364-08:00Creating a new project in MPLAB IDE<div dir="ltr" style="text-align: left;" trbidi="on"><br />
<h2 align="center" style="text-align: center;"><u>MPLAB IDE</u></h2><div class="MsoNormal">MPLAB is a toolset, developed by Microchip, used to develop embedded system applications involving PIC Microcontroller.</div><h2 align="center" style="text-align: center;"><u>Creating a new project in MPLAB IDE</u></h2><div class="MsoNormal">Before creating a project with MPLAB ensure that MCC18 is installed in your system.</div><div class="MsoNormal">STEP 1: Open MPLAB.</div><div class="MsoNormal">STEP 2: Select Project->Select Set Language tool Location.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUjIVnuDkpm9PKgNLfj6X8Rm9AIvxZ5C6VkwDaxSsAHZEB9Rl9i_sJfKGkbmfQ13vIw_JSV2cCTWFg4197l2b42QTp5ptSFLo9gQxxVQ16ta23gt4Tv82Z88774lkISKEBKg9dZ8jKwDTy/s1600/Capture1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUjIVnuDkpm9PKgNLfj6X8Rm9AIvxZ5C6VkwDaxSsAHZEB9Rl9i_sJfKGkbmfQ13vIw_JSV2cCTWFg4197l2b42QTp5ptSFLo9gQxxVQ16ta23gt4Tv82Z88774lkISKEBKg9dZ8jKwDTy/s1600/Capture1.JPG" /></a></div></div><div class="MsoNormal">STEP 3:In that window Expand Microchip C18 Tollsuite and then expand Default Search Paths & Directories</div><div class="MsoNormal"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghMjJEJBFa2BedK46zDm4xbrtKwJz69WXcBb2FJNDkwe9PKjQVZx6HNQScTsF1fZQthJ3r-7_v219rauf-4JcWwJ29TJ5vbioFDB9zatza79ztUWTsjE39ICswGjGYI7ehdS3DDEeh81IM/s1600/Capture2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghMjJEJBFa2BedK46zDm4xbrtKwJz69WXcBb2FJNDkwe9PKjQVZx6HNQScTsF1fZQthJ3r-7_v219rauf-4JcWwJ29TJ5vbioFDB9zatza79ztUWTsjE39ICswGjGYI7ehdS3DDEeh81IM/s1600/Capture2.JPG" /></a></div><br />
</div><div class="MsoNormal">STEP 4: Select Library Search Path and press Browse button. Search for the MCC18 Directory (It is preferable to install MCC18 in C Drive). Expand MCC18 folder and select lib and press OK button.</div><div class="MsoNormal"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbO3ud-QWIXmYcs5-xKwUyUB4tzAgIEEKUkdOVZi2_rSW9kSyvjPWlBU0Lzh7JGZCYFRsxw6V5VO__MwjoLyGavlfWVYzUQGqcrXADqi3PQVG_LiyjglR56ly6Ewx2Fl2K7pXMciRQy4ME/s1600/Capture3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbO3ud-QWIXmYcs5-xKwUyUB4tzAgIEEKUkdOVZi2_rSW9kSyvjPWlBU0Lzh7JGZCYFRsxw6V5VO__MwjoLyGavlfWVYzUQGqcrXADqi3PQVG_LiyjglR56ly6Ewx2Fl2K7pXMciRQy4ME/s1600/Capture3.JPG" /></a></div><br />
</div><div class="MsoNormal">STEP 5: Select Linker-Script Search Path and press Browse button. . Search for the MCC18 Directory. Expand MCC18 folder and select lkr and press OK button. Close the Set Language Tool Location Window.</div><div class="MsoNormal">STEP 6: Select Project->Project Wizard.</div><div class="MsoNormal">Project Wizard window will open as show below. Press Next.</div><div class="MsoNormal"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg04lm2r3IwM8FxO3IK3fwMHwxArPBISc5MKrCvcaG3EUjawkdeu9vganyFnM3TMK-qYzMqAphEhh-p6kdmNzjP2SHFnbla5_-cIToKB_BAJymbVAdm-DO0r4RPTUmBmGnwmhIdP8yvJFyx/s1600/Capture4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg04lm2r3IwM8FxO3IK3fwMHwxArPBISc5MKrCvcaG3EUjawkdeu9vganyFnM3TMK-qYzMqAphEhh-p6kdmNzjP2SHFnbla5_-cIToKB_BAJymbVAdm-DO0r4RPTUmBmGnwmhIdP8yvJFyx/s1600/Capture4.JPG" /></a></div><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">STEP 6: Select the appropriate device (Microcontroller). In my case it is PIC18F4550.Press Next.</div><div class="MsoNormal"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX2Gcmlaw2TGPWXADnPCqCYO4D00P7P1_xh-n8hQVziLn0HG4eJ1faTHJAs512CpJrw3wU8WniSalVnYtHPoQVZOmmRttfwCIEmj9N1bNYInWmUtg6sgS4UjVQivv1iGslxC0l-_S3GYKR/s1600/Capture5.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX2Gcmlaw2TGPWXADnPCqCYO4D00P7P1_xh-n8hQVziLn0HG4eJ1faTHJAs512CpJrw3wU8WniSalVnYtHPoQVZOmmRttfwCIEmj9N1bNYInWmUtg6sgS4UjVQivv1iGslxC0l-_S3GYKR/s1600/Capture5.JPG" /></a></div><br />
</div><div class="MsoNormal">STEP 7: In the next window select Active Toolsuite drop down list box and select Microchip C18 Toolsuite. Select Next.</div><div class="MsoNormal"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRX7JkQIx1LHt4lxnpiyvyv2BFG0r4bAzuDKIhVstphUQEmbkJuxQZoWAimqZkZ2vwQ-Bc6GPQdPkWEwFaVV9TyBaMxLD3oS-TdWsd7IdENgGzXdjDO_zhEL6mUu7BR6hFKQ2XIg4wbCx8/s1600/Capture6.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRX7JkQIx1LHt4lxnpiyvyv2BFG0r4bAzuDKIhVstphUQEmbkJuxQZoWAimqZkZ2vwQ-Bc6GPQdPkWEwFaVV9TyBaMxLD3oS-TdWsd7IdENgGzXdjDO_zhEL6mUu7BR6hFKQ2XIg4wbCx8/s1600/Capture6.JPG" /></a></div><br />
</div><div class="MsoNormal">STEP 8: Create your Project by giving a name and a path.</div><div class="MsoNormal">STEP 9: If you have exiting files(.c) you can add it to your project in the next window. If not you can simply press Next and then press Finish. Now you have successfully created your new project.</div><div class="MsoNormal"> <u>NOTE:</u></div><div class="MsoNormal">You can directly jump from STEP 1 to STEP 6 provided Active Toolsuite in STEP 7 is not empty. If you see nothing in Active Toolsuite it is necessary to do all the steps.</div></div>Anonymoushttp://www.blogger.com/profile/06611978744229025098noreply@blogger.com0tag:blogger.com,1999:blog-7955206741326568627.post-71698596488558431002010-06-20T09:00:00.000-07:002010-06-27T06:32:27.898-07:00SWEET REVENGE<a href="http://2.bp.blogspot.com/_UjIhkvUYiKc/TB48w6vCi5I/AAAAAAAAAL8/GndLYybv-ck/s1600/ATgAAABGix8TsXctJ6oOcCLdWXnomUQGATtuhauZHUsxfqyXr3Z9DnFJaLAShBu9evmmvFUxmJpfOCcOhRcbL4ZlWZuLAJtU9VA7WOpMpz0pMhHpGq8wlBWLBf7Y1Q.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5484888207281785746" src="http://2.bp.blogspot.com/_UjIhkvUYiKc/TB48w6vCi5I/AAAAAAAAAL8/GndLYybv-ck/s320/ATgAAABGix8TsXctJ6oOcCLdWXnomUQGATtuhauZHUsxfqyXr3Z9DnFJaLAShBu9evmmvFUxmJpfOCcOhRcbL4ZlWZuLAJtU9VA7WOpMpz0pMhHpGq8wlBWLBf7Y1Q.jpg" style="cursor: pointer; display: block; height: 320px; margin: 0px auto 10px; text-align: center; width: 252px;" /></a><br />
24 yrs ago............in sharja.......india vs pakistan....finals.....one ball six runs to win...javed miandad on strike.....chetan sharma to bowl........and javed miandad does the impossible by hitting the ball over the ropes.....india bite the dust.............<br />
<br />
<br />
now on the 20th of june 2010.....india vs paksitan........in dambulla, sri lanka.........the ASIA cup........2 balls 3 run to win......harbhajan singh on strike...............mohammed aamir to bowl.........harbhajan singh moves acros and powers the ball over the mid wicket fence in style...........india win and qualify for the finals..........wat a game...........<br />
<br />
<br />
<br />
<br />
gautam ganbhir had said that ind-pak matches were decided by nerves and this one proved to be just that......<br />
<br />
pakistan had won the toss and had decided to bat...........salmn butt contd his gr8 form against india and scored a good 74 of 85 before being run out........the skipper shahid afridi too got off to a gr8 start by scoring 32 of just 25 but was castled leg before by a slower one from praveen kumar........pakistan managed a respectable and well abv par score of 267 thanks to the quick fire half century by the keeper batsman kamran akmal who made 51 of 41 with 2 4s and 3 6s......<br />
<br />
for india praven kumar picked up 3 and harbhajan and zaheer picked up 2 a piece..........<br />
<br />
<br />
the indian started off slowly as they wanted to hav wickets in hand for the later part .......viru was slow and to add to the miseries of the indian fans viru pulled a hamstring and was eventually dismissed for 10 run off 32.....india were 82 for 2 in the 18th over with virat too bac in the pavillion.......then came in the indian skipper and built a partnership of 98 in 18 overs with gautam which laid the foundation...... gambhir made a good 83 before losing his cool in a verbal exchange with kamran akmal and eventually was bowled by ajmal......dhoni too fell after scoring 56........<br />
<br />
<br />
<br />
with the game going to the wire........suresh raina played a brisk inning of 34 of 27(2 fours and 2 sixes) and india took the powerpaly in the 45th over...........with one over to spare and the powerplay lifted....... 7 runs were req off the last over and 4 wichets remaining ...............earlier in the 48th over bhaji too got into verbal duel ith shoaib akhtar..........<br />
<br />
<br />
the last over was to to be bowled by aamir....raina on strike and he picks up a single of the first ball..........the second ball was slightly short nd bhaji couldnt get bat to ball and eventully tried to sneak a run......as a result of which raina was found short of his crease and had to return to the pavillion run out.................<br />
<br />
<br />
4 balls remining and 6 run to get..... walks in praveen kumar.........he steers the ball to third man where shoaib akhtar fumbles which allows the indians to take the second.......praveen then gets off strike the next ball and with 2 balls remaining 3 runs to get bhaji was on strike.......bhaji moves across and belts the ball over the mid wicket fence for a six ....and rest as they say was history............the celebration that followed was even more unbelievable.............<br />
<br />
after 24 yrs the nightmares of the 1986 sharja final was washed off and the score settled for good..............................wat a game of cricket.....<br />
<input id="gwProxy" type="hidden" /><input id="jsProxy" onclick="jsCall();" type="hidden" /><br />
<div id="refHTML"></div>susa.....:)http://www.blogger.com/profile/03270424339936793138noreply@blogger.com1tag:blogger.com,1999:blog-7955206741326568627.post-32961441170048852042010-06-19T07:02:00.000-07:002010-06-27T06:32:08.998-07:00FIFA - DISAPPOINTMENT<a href="http://3.bp.blogspot.com/_UjIhkvUYiKc/TBzPCDmYNJI/AAAAAAAAALQ/7Rac9JZg4ek/s1600/FIFA%2B17%2BWomen%2BWorld%2BCup%2BNew%2BZealand%2Bv%2BDenmark%2BC94IBBlvM88l.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5484486080463385746" src="http://3.bp.blogspot.com/_UjIhkvUYiKc/TBzPCDmYNJI/AAAAAAAAALQ/7Rac9JZg4ek/s320/FIFA%2B17%2BWomen%2BWorld%2BCup%2BNew%2BZealand%2Bv%2BDenmark%2BC94IBBlvM88l.jpg" style="cursor: pointer; display: block; height: 320px; margin: 0px auto 10px; text-align: center; width: 236px;" /></a><br />
FIFA world cup 2010...........all the hype created by the people and media ...............the wavin flag song by knaan.....followed by the waka waka by none other than shakira.......and everyone will be thiking this is all the WC requires but is it enough?????????????????????<br />
<br />
<br />
the majority of the fav hav not performed to even 50% of their potential.............<br />
<br />
starting with Brazil........winning 2-1 and taking awya maximum points would indeed please dunga but to win the WC a lot more has to be put in...................with ivory coast and and Portugal taking a point each from their game against each other the game between Brazil and the these two teams becomes vital...............<br />
<br />
<br />
perhaps the biggest upset in the tournament so far.........swiss beating the Spanish 1-0......after the Spanish dominating perhaps 75-80% of the match it was a hard result............if spain finish second and brazil finish first in their respective grps then they will face off in the round of sixteen..........it would indeed be interesting....wouldnt it<br />
<br />
<br />
perhaps the strongest team on paper along with Spain are none other than England.........after two games they hav not managed to win even one............. with two points and only one match remaining it is very unlikely that they go through...........unless they beat slovenia in their last game.......<br />
<br />
<br />
Netherlands were supposed to sweep of their opponents in their first game........even thoiug they won the game 2-0 they failed to impress and were far from their best......they really ned to pull up their socks as well...........<br />
<br />
<br />
germany...........well wat can i say abt this team..........from beating australia 4-0 to losing to serbia 1-0........it will be interesting to see how they perform without their star striker klose who was sent off in the game against serbia.....but still germany are topping their grp...........<br />
<br />
<br />
next come the reigning world champions italy...............they hav played only one game where they drew with paraguay ............they would want to win both of their remaining games to go into the knock out stages ith good momentum............<br />
<br />
<br />
the runner up of the previous world cup,..... france....... face the scare of becoming the first team to go out of the world cup................they have played two games.........drawn one and lost the other............they not only need to win against south africa with a big margin(atleast 3-4 goals without conceeding any)...........but also hope that the match between mexico and urugay does not end in a draw and also hope that the margin of defeat of any team is as much as possible...............as france can enter the knockout stages only on goal difference..........<br />
<br />
<br />
with almost all of the top teams not doing well consistently....there is one team which has lived upto its expectation..........its none other than the south american giants ARGENTINA......... with the likes of messi,higuain and others......they are the only teams that has lived upto the expectations..................<br />
<div class="ii gt" id=":9h"><wbr></wbr>.......maybe it is because of the highly contraversial coach none other than former arg player DIEGO MARADONA...........they hav played two matches and won both (1-0 against nigeria and 4-1 against south korea...)...........they are perhaps the fav to win the world cup now..........<br />
<br />
thus the tournament has seen its fair share of upsets already.............. whether this is just the begining or whether the teams will perform better under pressure......... only time can tell..........<br />
<br />
<br />
<br />
commenst are welcomed whole heartedly......<br />
<br />
yours lovingly<br />
<br />
<br />
susa.....:)<br />
<span style="color: #888888;"><br />
<br />
</span></div><br />
<br />
<br />
<br />
<br />
<br />
http://vijayenthiran.blogspot.com<input id="gwProxy" type="hidden" /><input id="jsProxy" onclick="jsCall();" type="hidden" /><br />
<div id="refHTML"></div>susa.....:)http://www.blogger.com/profile/03270424339936793138noreply@blogger.com0tag:blogger.com,1999:blog-7955206741326568627.post-24806390612131301002010-06-02T01:25:00.000-07:002010-06-27T06:27:53.590-07:00Linux utility for WindowsHere comes a free Linux utility which runs <a href="http://www.ee.surrey.ac.uk/Teaching/Unix/unixintro.html">TERMINAL</a> in Windows Operating system .<br />
Some of the commands will not be working.<br />
TO DOWNLOAD PRESS THE FOLLOWING LINK:<br />
<span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; color: #00cc00; font-family: 'courier new', monospace; font-size: 13px;"><a href="http://www.ziddu.com/download/10105697/linuxutilitysoftwareMobaXtermv22.zip.html" style="color: #00cc00;" target="_blank"><b>http://www.ziddu.com/download/<wbr></wbr>10105697/<wbr></wbr>linuxutilitysoftwareMobaXtermv<wbr></wbr>22.zip.html</b></a></span><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; color: #00cc00; font-family: 'courier new', monospace; font-size: 13px;"><br />
</span>Anonymoushttp://www.blogger.com/profile/06611978744229025098noreply@blogger.com0