Skip to content

Commit a821ba0

Browse files
jasminefranciscaharishagari
authored andcommitted
Pull request #16: CITD-425 code examples 2
Merge in MCU16CE/dspic33e-code-examples from ~I62773/dspic33e-code-examples:feature/CITD-425-code-examples-2 to develop * commit '1043e40713852618f6e744cd292915ff8d1cd947': Updated Readme file Updated review comments Addressed review comments Addressed review comments CITD-425:Updated content version CITD-425:code-examples CITD-425:code-examples
2 parents 46b8632 + 1043e40 commit a821ba0

File tree

105 files changed

+24779
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+24779
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
"metaDataVersion":"1.0.0",
3+
"category":"com.microchip.ide.project",
4+
"content":{
5+
"metaDataVersion":"1.3.0",
6+
"name":"com.microchip.mplabx.project.dspic33e-i2c-eeprom",
7+
"version":"1.0.0",
8+
"displayName":"I2C Serial EEPROM Interface",
9+
"projectName":"dspic33e-i2c-eeprom",
10+
"shortDescription":"I2C Serial EEPROM Interface",
11+
"ide":{
12+
"name":"MPLABX",
13+
"semverRange":">=6.00"
14+
},
15+
"compiler":{
16+
"name":"XC16",
17+
"semverRange":"^2.00"
18+
},
19+
"dfp":{
20+
"name":"dsPIC33E-GM-GP-MC-GU-MU_DFP",
21+
"semverRange":"^1.3.85"
22+
},
23+
"device":{
24+
"metaDataVersion":"1.0.0",
25+
"category":"com.microchip.portal.contentRef",
26+
"content":{
27+
"metaDataVersion":"1.0.0",
28+
"category":"com.microchip.device",
29+
"name":"dsPIC33EP512MU810",
30+
"versionRange":"*"
31+
}
32+
},
33+
"peripherals":[
34+
"I2C"
35+
],
36+
"keywords":[
37+
"I2C"
38+
]
39+
}
40+
}

dspic33e-i2c-eeprom/README.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
![image](../images/microchip.jpg)
2+
3+
## I2C Serial EEPROM Interface
4+
5+
## Description:
6+
7+
In this code examples, 10bytes of data is written to I2C serial EEPROM and
8+
then read back using I2C peripheral.
9+
10+
I2C EEPROM driver module takes two inputs viz., Command and Data Object
11+
Driver supports two commands viz., Read and Write
12+
13+
// EEPROM DRIVER Module
14+
typedef struct {
15+
unsigned int cmd; // Command Input
16+
I2CEMEM_DATA *oData; // I2C Serial EEPROM Data Object
17+
void (*init)(void *);
18+
void (*tick)(void *);
19+
}I2CEMEM_DRV;
20+
21+
I2C Serial EEPROM data object contains EEPROM address location, data buffer, size
22+
of the data buffer and chip select bits for device addressing
23+
// Data Object
24+
typedef struct {
25+
unsigned int *buff; // Data Buffer
26+
unsigned int n; // Size of the Data Buffer
27+
unsigned int addr; // EEPROM Address
28+
unsigned int csel; // Chip Select bits (A2,A1,A0 bits)
29+
}I2CEMEM_DATA;
30+
31+
32+
* I2C Serial EEPROM read/write operation begins with transmitting control byte first.
33+
This control byte contains 8bits as shown below
34+
35+
| 1 | 0 | 1 | 0 | A2 | A1 | A0 | R/W |
36+
37+
38+
1010 is the code used for I2C Serial EEPROM peripheral and A2,A1,A0 is used for chip select (csel).
39+
40+
41+
* After the control byte, address of serial EEPROM is sent for read/write operation
42+
Small memory I2C EEPROM will use 1byte address and large memory I2C EEPROM will need 2byte addressing.
43+
User must select either 1byte memory address or 2byte memory address using
44+
i2cEmem.h file.
45+
46+
// EEPROM ADDRESS SIZE
47+
#define ADDRWIDTH TWO_BYTE
48+
49+
50+
## Hardware Used
51+
52+
- Explorer 16/32 Development Board (https://www.microchip.com/DM240001-2)
53+
- dsPIC33EP512GM710 PIM (https://www.microchip.com/ma330035) or dsPIC33EP512MU810 PIM (https://www.microchip.com/MA330025-1) or dsPIC33EP256GP506 PIM (https://www.microchip.com/MA330030)
54+
55+
56+
## Software Used
57+
58+
- MPLAB® X IDE v6.00 or newer (https://www.microchip.com/mplabx)
59+
- MPLAB® XC16 v2.00 or newer (https://www.microchip.com/xc)
60+
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
#
2+
# There exist several targets which are by default empty and which can be
3+
# used for execution of your targets. These targets are usually executed
4+
# before and after some main targets. They are:
5+
#
6+
# .build-pre: called before 'build' target
7+
# .build-post: called after 'build' target
8+
# .clean-pre: called before 'clean' target
9+
# .clean-post: called after 'clean' target
10+
# .clobber-pre: called before 'clobber' target
11+
# .clobber-post: called after 'clobber' target
12+
# .all-pre: called before 'all' target
13+
# .all-post: called after 'all' target
14+
# .help-pre: called before 'help' target
15+
# .help-post: called after 'help' target
16+
#
17+
# Targets beginning with '.' are not intended to be called on their own.
18+
#
19+
# Main targets can be executed directly, and they are:
20+
#
21+
# build build a specific configuration
22+
# clean remove built files from a configuration
23+
# clobber remove all built files
24+
# all build all configurations
25+
# help print help mesage
26+
#
27+
# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
28+
# .help-impl are implemented in nbproject/makefile-impl.mk.
29+
#
30+
# Available make variables:
31+
#
32+
# CND_BASEDIR base directory for relative paths
33+
# CND_DISTDIR default top distribution directory (build artifacts)
34+
# CND_BUILDDIR default top build directory (object files, ...)
35+
# CONF name of current configuration
36+
# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
37+
# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
38+
# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
39+
# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
40+
# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
41+
# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
42+
#
43+
# NOCDDL
44+
45+
46+
# Environment
47+
MKDIR=mkdir
48+
CP=cp
49+
CCADMIN=CCadmin
50+
RANLIB=ranlib
51+
52+
53+
# build
54+
build: .build-post
55+
56+
.build-pre:
57+
# Add your pre 'build' code here...
58+
59+
.build-post: .build-impl
60+
# Add your post 'build' code here...
61+
62+
63+
# clean
64+
clean: .clean-post
65+
66+
.clean-pre:
67+
# Add your pre 'clean' code here...
68+
# WARNING: the IDE does not call this target since it takes a long time to
69+
# simply run make. Instead, the IDE removes the configuration directories
70+
# under build and dist directly without calling make.
71+
# This target is left here so people can do a clean when running a clean
72+
# outside the IDE.
73+
74+
.clean-post: .clean-impl
75+
# Add your post 'clean' code here...
76+
77+
78+
# clobber
79+
clobber: .clobber-post
80+
81+
.clobber-pre:
82+
# Add your pre 'clobber' code here...
83+
84+
.clobber-post: .clobber-impl
85+
# Add your post 'clobber' code here...
86+
87+
88+
# all
89+
all: .all-post
90+
91+
.all-pre:
92+
# Add your pre 'all' code here...
93+
94+
.all-post: .all-impl
95+
# Add your post 'all' code here...
96+
97+
98+
# help
99+
help: .help-post
100+
101+
.help-pre:
102+
# Add your pre 'help' code here...
103+
104+
.help-post: .help-impl
105+
# Add your post 'help' code here...
106+
107+
108+
109+
# include project implementation makefile
110+
include nbproject/Makefile-impl.mk
111+
112+
# include project make variables
113+
include nbproject/Makefile-variables.mk

0 commit comments

Comments
 (0)