@@ -38,7 +38,7 @@ void test_lm75b(){
3838// Template to write arbitrary data to arbitrary address and check the data is written correctly
3939template <PinName sda, PinName scl,int size_of_data, int address>
4040void flash_WR (){
41- I2CEeprom memory (sda,scl,address ,32 ,0 );
41+ I2CEeprom memory (sda,scl,MBED_CONF_APP_I2C_EEPROM_ADDR ,32 ,0 );
4242 int num_read = 0 ;
4343 int num_written = 0 ;
4444 char test_string[size_of_data] = {0 };
@@ -57,47 +57,20 @@ void flash_WR(){
5757
5858}
5959
60- // // A test to write the EEprom
61- // void test_eeprom_W(){
62- // I2CEeprom memory(sda,scl, address, 32, 0);
63- // int num_bytes = 0;
64- // num_bytes = memory.write(addr,I2C_TEST_STRING, I2C_TEST_STRING_MAX);
65- // printf("\r\n****\r\n WRITE: Num bytes written = `%d`\r\n****\r\n",num_bytes);
66- // TEST_ASSERT_EQUAL_MESSAGE(num_bytes, I2C_TEST_STRING_MAX,"All data not written."); // check data was written
67- // }
68- //
69- //
70- // // A test to read the EEprom
71- // void test_eeprom_R(){
72- // I2CEeprom memory(MBED_CONF_APP_I2C_SDA,MBED_CONF_APP_I2C_SCL, MBED_CONF_APP_I2C_EEPROM_ADDR, 32, 0);
73- // char read_string[I2C_TEST_STRING_MAX] = {0};
74- // int read_bytes = 0;
75- // read_bytes = memory.read(addr,read_string,I2C_TEST_STRING_MAX);
76- //
77- // printf("\r\n****\r\nREAD: Num bytes read = `%d`, string read = `%s`\r\n****\r\n",read_bytes,read_string);
78- // TEST_ASSERT_EQUAL_MESSAGE(read_bytes, I2C_TEST_STRING_MAX,"Failed to read the correct number of bytes.");
79- // TEST_ASSERT_EQUAL_STRING_MESSAGE(I2C_TEST_STRING,read_string,"data read does not match data written! bad EEPROM?"); // check data integrity
80- // TEST_ASSERT_MESSAGE(strcmp(I2C_TEST_STRING,read_string) == 0,"String written does not match string read"); // double check strings with strcmp
81- // }
82- //
83- // // A test to Write then read the eeprom
84- // void test_eeprom_WR(){
85- // int address = rand()%250000;
86- // I2CEeprom memory(MBED_CONF_APP_I2C_SDA,MBED_CONF_APP_I2C_SCL, MBED_CONF_APP_I2C_EEPROM_ADDR, 32, 0);
87- // int read_bytes = 0;
88- // int write_bytes = 0;
89- // char read_string[I2C_TEST_STRING_MAX] = {0};
90- //
91- // write_bytes = memory.write(address,I2C_TEST_STRING,I2C_TEST_STRING_MAX);
92- // read_bytes = memory.read(address,read_string,I2C_TEST_STRING_MAX);
93- //
94- // printf("\r\n*****\r\nWRITE READ: Bytes Written = `%d`\r\nBytes Read = `%d` \r\nString Written = `%s`\r\nString Read = `%s`\r\n*****\r\n",write_bytes,read_bytes,I2C_TEST_STRING,read_string);
95- //
96- // TEST_ASSERT_MESSAGE(write_bytes == read_bytes,"Number of bytes written does not match number of bytes read");
97- // TEST_ASSERT_EQUAL_STRING_MESSAGE(I2C_TEST_STRING,read_string,"String read does not match string written");
98- // TEST_ASSERT_MESSAGE(strcmp(I2C_TEST_STRING,read_string) == 0,"String written does not match string read"); // double check strings with strcmp
99- //
100- // }
60+ // Test single byte R/W
61+ template <PinName sda, PinName scl, int address>
62+ void single_byte_WR (){
63+ I2CEeprom memory (sda,scl,MBED_CONF_APP_I2C_EEPROM_ADDR,32 ,0 );
64+ char test = ' A' + rand ()%26 ;
65+ char read;
66+ memory.write (address,test);
67+ memory.read (address,read);
68+ printf (" \r\n ****\r\n Read byte = %d \r\n Written Byte = %d \r\n ****\r\n " ,&read,&test);
69+
70+ TEST_ASSERT_EQUAL_MESSAGE (test,read," Character Read does not equal character written!" );
71+ TEST_ASSERT_MESSAGE (test == read, " character written does not match character read" )
72+
73+ }
10174
10275utest::v1::status_t test_setup (const size_t number_of_cases) {
10376 // Setup Greentea using a reasonable timeout in seconds
@@ -114,12 +87,10 @@ utest::v1::status_t greentea_failure_handler(const Case *const source, const fai
11487// Test cases
11588Case cases[] = {
11689 Case (" I2C - LM75B Temperature Read" ,test_lm75b<MBED_CONF_APP_I2C_SDA,MBED_CONF_APP_I2C_SCL,25 ,20 >,greentea_failure_handler),
117- // Case("I2C - EEProm Write",test_eeprom_W,greentea_failure_handler),
118- // Case("I2C - EEProm Read",test_eeprom_R,greentea_failure_handler),
119- // Case("I2C - EEProm WR",test_eeprom_WR,greentea_failure_handler),
12090 // Case("I2C - EEProm WR 2Bytes",flash_WR<MBED_CONF_APP_I2C_SDA,MBED_CONF_APP_I2C_SCL,2,1>,greentea_failure_handler),
12191 Case (" I2C - EEProm WR 10Bytes" ,flash_WR<MBED_CONF_APP_I2C_SDA,MBED_CONF_APP_I2C_SCL,10 ,1 >,greentea_failure_handler),
12292 Case (" I2C - EEProm WR 100 Bytes" ,flash_WR<MBED_CONF_APP_I2C_SDA,MBED_CONF_APP_I2C_SCL,100 ,1 >,greentea_failure_handler),
93+ Case (" I2C - EEProm WR 100 Bytes" ,single_byte_WR<MBED_CONF_APP_I2C_SDA,MBED_CONF_APP_I2C_SCL,1 >,greentea_failure_handler),
12394};
12495
12596Specification specification (test_setup, cases);
0 commit comments