<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Identifier in the InfoPage??</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/8540/identifier-in-the-infopage</link><description>Hi 
 In nRFgo Studio there is an option to read the entire memory of a chip. In my case nRF24Le1 to a .mhex file. 
 The first lines of the .mhex file says:
Infopage:
Identifier (0x00-0x0F): 0x5A 0x5A 0x43 0x30 0x52 0x30 0x34 0x38 0x06 0x08 0x1E 0x65</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 06 Aug 2015 09:29:41 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/8540/identifier-in-the-infopage" /><item><title>RE: Identifier in the InfoPage??</title><link>https://devzone.nordicsemi.com/thread/31227?ContentTypeID=1</link><pubDate>Thu, 06 Aug 2015 09:29:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8e0c7bfb-fedd-4275-81bc-4b77e8728cde</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@Gustav: I haven&amp;#39;t tested on SDCC, on Keil I have to set the Memory to Small, so that the variable will not be located in xdata, because the infopage will occupy the xdata address area when enabled.&lt;/p&gt;
&lt;p&gt;Did it work for you in SDCC ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Identifier in the InfoPage??</title><link>https://devzone.nordicsemi.com/thread/31226?ContentTypeID=1</link><pubDate>Thu, 06 Aug 2015 07:34:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e9f891ec-a61f-441a-81f6-0d6e8b415cf1</guid><dc:creator>Gustav</dc:creator><description>&lt;p&gt;Dear Hung Bui,&lt;/p&gt;
&lt;p&gt;Great work! Thanks a lot. I had to change it a bit to adapt to SDCC. The data has to be put into the destination array while INFEN == 0. I have always used Small Memory Model, but SDCC compiles the same .hex file, no matter if the model is small or not.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;enter code here
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;void flash_read_chipID (uint8_t *dst, uint8_t n)
{
uint8_t i, j;
volatile uint8_t __xdata *gzp = (uint8_t __xdata *)0x0b;// 0x0b is start of chip ID in info-page&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;F0= INFEN;

INFEN = 1;

for (i=0; i&amp;lt;n; i++) {
    j = *(gzp + i);
    INFEN = 0;
    dst[i] = j;// dst[i] has to executed while INFEN == 0
    INFEN = 1;
}
INFEN = F0;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;}&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Identifier in the InfoPage??</title><link>https://devzone.nordicsemi.com/thread/31225?ContentTypeID=1</link><pubDate>Wed, 05 Aug 2015 15:54:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8c29be6c-ec68-41fb-9f2e-d7beccbff876</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Gustav,&lt;/p&gt;
&lt;p&gt;Sorry for the mistake. I just checked again, actually only 5 bytes from 0x0b to 0x0f should be used as CHIP_ID.
I attached in my answer the example project to read the Infopage. Note that you have to set Memory Model to Small.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Identifier in the InfoPage??</title><link>https://devzone.nordicsemi.com/thread/31224?ContentTypeID=1</link><pubDate>Wed, 05 Aug 2015 14:39:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3a6438f5-6713-428e-b2ba-657815a9b4ad</guid><dc:creator>Gustav</dc:creator><description>&lt;p&gt;With nRFgo I have read 7 different nRF24le1 chips.  I can see that the first few bytes of the infoPage are fixed and depend on the chip type. The last 7 bytes of the infoPage seems to be the only ones that are random. But this is still 2^(7*8) combinations. That is good enough for the product I am working on.&lt;/p&gt;
&lt;p&gt;I have tried to read the infoPage using the MCU, but without any luck.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;__xdata uint8_t p[32]
PCON |= PMW;

flash_bytes_read(0x0000, p, 32);
PCON &amp;amp;= ~PMW; 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The array, p, is filled with bytes that does not look like the infoPage. The result is different, but still not good, if the PCON statements are removed (which they probably should).&lt;/p&gt;
&lt;p&gt;Can you drop a few lines about how to read the infoPage from MCU.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Identifier in the InfoPage??</title><link>https://devzone.nordicsemi.com/thread/31223?ContentTypeID=1</link><pubDate>Wed, 05 Aug 2015 13:47:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0a465a83-1f70-4d4c-bb04-86b0778de73a</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@Gustav: The Identifier is generated randomly when in production, not a unique number for each chip. So there is a chance that we have 2 devices with same identifier, but it&amp;#39;s small, should be one in 2^40. The chip ID is from address 0x0B to 0x0F.&lt;/p&gt;
&lt;p&gt;Yes you can read the identifier from MCU.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/ReadInfoPage.zip"&gt;ReadInfoPage.zip&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>