You are here

MAC address | Cypress Semiconductor

MAC address

Summary: 2 Replies, Latest post by MidwestPDS on 11 Nov 2015 09:38 AM PST
Verified Answers: 0
Last post
Log in to post new comments.
user_490131959's picture
31 posts

I was led to believe that each CYBLE-022001-00 radio module has a unique  MAC address within.

This appears to be true, as I can see it display, on the top of the screen, when I talk to the device with CySmart.

I was told to use an API CyBle_GetDeviceAddress() to read this address.  However, the address this returns is the same every time, on every device.

I'm reading "91:95:19:29:49:99" on every one of my boards, which doesn't look like a MAC address to me.  

CySmart displays a unique number for each device I connect to. [FD:CB:A2:14:16:29] and [FD:CB:A2:14:16:18].


How can I access this value with the software?  is CyBle_GetDeviceAddress() the right service? or is there another one to get what I'm after??



user_78878863's picture
2551 posts

GetDeviceAdress() doesn't return the MAC, but the "device address". This is the one configured in the BLE settings (see BLE component data sheet page 30). If you need a chip-specifi address then you can add a silicon-generated part to that address.

I'm not sure what CySmart is showing you, I would need to look at the sources. What is the label for that field where you see this?

user_490131959's picture
31 posts

Thanks for the response!!  I also got some guidance from our local Cypress FAE.

Here's what I did, worked great!

        // read the value from the registers
        cyBle_deviceAddress.bdAddr[0] = CYBLE_SFLASH_DIE_X_REG;
        cyBle_deviceAddress.bdAddr[1] = CYBLE_SFLASH_DIE_Y_REG;
        // cyBle_deviceAddress.bdAddr[2] = CYBLE_SFLASH_DIE_WAFER_REG;

        // convert the values to ascii and store in the device name field.
        DeviceName[7] = ((cyBle_deviceAddress.bdAddr[1] & 0xF0) >> 4) + 48 ;
        DeviceName[8] = (cyBle_deviceAddress.bdAddr[1] & 0x0F) + 48 ;
        DeviceName[9] = ((cyBle_deviceAddress.bdAddr[0] & 0xF0) >> 4) + 48 ;
        DeviceName[10] = (cyBle_deviceAddress.bdAddr[0] & 0x0F) + 48 ;


Log in to post new comments.