From 0f78c266ed2c571e9e48e4236b3721c88752f4db Mon Sep 17 00:00:00 2001 From: lacklustrlabs Date: Thu, 14 Dec 2017 16:32:59 +0100 Subject: [PATCH 01/16] Added Wire_slave.h (no actual i2c slave implementation yet) --- STM32F1/libraries/Wire/Wire_slave.h | 1 + STM32F1/libraries/Wire/library.properties | 10 + .../SFRRanger_reader/SFRRanger_reader.ino | 87 ++ .../digital_potentiometer.ino | 38 + .../i2c_libmaple_slave/i2c_libmaple_slave.ino | 122 +++ .../examples/master_reader/master_reader.ino | 32 + .../examples/master_writer/master_writer.ino | 31 + .../slave_receiver/slave_receiver.ino | 38 + .../examples/slave_sender/slave_sender.ino | 32 + .../libraries/WireSlave/library.properties | 11 + STM32F1/libraries/WireSlave/src/Wire.h | 1 + STM32F1/libraries/WireSlave/src/Wire.h.gch | Bin 0 -> 1819056 bytes .../libraries/WireSlave/src/Wire_slave.cpp | 106 +++ STM32F1/libraries/WireSlave/src/Wire_slave.h | 78 ++ .../libraries/WireSlave/src/Wire_slave.h.gch | Bin 0 -> 9475 bytes STM32F1/libraries/WireSlave/src/i2c_slave.c | 789 ++++++++++++++++++ .../libraries/WireSlave/src/i2c_slave.h.gch | Bin 0 -> 9475 bytes .../WireSlave/src/libmaple/i2c_common_slave.h | 110 +++ .../WireSlave/src/libmaple/i2c_slave.h | 475 +++++++++++ .../WireSlave/src/libmaple/i2c_slave.h.gch | Bin 0 -> 9475 bytes .../WireSlave/src/utility/WireBase_slave.cpp | 145 ++++ .../WireSlave/src/utility/WireBase_slave.h | 145 ++++ .../src/utility/WireBase_slave.h.gch | Bin 0 -> 9475 bytes 23 files changed, 2251 insertions(+) create mode 100644 STM32F1/libraries/Wire/Wire_slave.h create mode 100644 STM32F1/libraries/Wire/library.properties create mode 100644 STM32F1/libraries/WireSlave/examples/SFRRanger_reader/SFRRanger_reader.ino create mode 100644 STM32F1/libraries/WireSlave/examples/digital_potentiometer/digital_potentiometer.ino create mode 100644 STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave/i2c_libmaple_slave.ino create mode 100644 STM32F1/libraries/WireSlave/examples/master_reader/master_reader.ino create mode 100644 STM32F1/libraries/WireSlave/examples/master_writer/master_writer.ino create mode 100644 STM32F1/libraries/WireSlave/examples/slave_receiver/slave_receiver.ino create mode 100644 STM32F1/libraries/WireSlave/examples/slave_sender/slave_sender.ino create mode 100644 STM32F1/libraries/WireSlave/library.properties create mode 100644 STM32F1/libraries/WireSlave/src/Wire.h create mode 100644 STM32F1/libraries/WireSlave/src/Wire.h.gch create mode 100644 STM32F1/libraries/WireSlave/src/Wire_slave.cpp create mode 100644 STM32F1/libraries/WireSlave/src/Wire_slave.h create mode 100644 STM32F1/libraries/WireSlave/src/Wire_slave.h.gch create mode 100644 STM32F1/libraries/WireSlave/src/i2c_slave.c create mode 100644 STM32F1/libraries/WireSlave/src/i2c_slave.h.gch create mode 100644 STM32F1/libraries/WireSlave/src/libmaple/i2c_common_slave.h create mode 100644 STM32F1/libraries/WireSlave/src/libmaple/i2c_slave.h create mode 100644 STM32F1/libraries/WireSlave/src/libmaple/i2c_slave.h.gch create mode 100644 STM32F1/libraries/WireSlave/src/utility/WireBase_slave.cpp create mode 100644 STM32F1/libraries/WireSlave/src/utility/WireBase_slave.h create mode 100644 STM32F1/libraries/WireSlave/src/utility/WireBase_slave.h.gch diff --git a/STM32F1/libraries/Wire/Wire_slave.h b/STM32F1/libraries/Wire/Wire_slave.h new file mode 100644 index 0000000..21b4102 --- /dev/null +++ b/STM32F1/libraries/Wire/Wire_slave.h @@ -0,0 +1 @@ +#error "Something is trying to include Wire.h when Wire_Slave.h is already included, they are mutually exclusive" diff --git a/STM32F1/libraries/Wire/library.properties b/STM32F1/libraries/Wire/library.properties new file mode 100644 index 0000000..1129fa3 --- /dev/null +++ b/STM32F1/libraries/Wire/library.properties @@ -0,0 +1,10 @@ +name=Wire +version=1.0 +author=Arduino +maintainer=Arduino +sentence=Allows the communication between devices or sensors connected via Two Wire Interface Bus. +paragraph= +category=Communication +url=http://www.arduino.cc/en/Reference/Wire +architectures=STM32F1 +include=Wire.h diff --git a/STM32F1/libraries/WireSlave/examples/SFRRanger_reader/SFRRanger_reader.ino b/STM32F1/libraries/WireSlave/examples/SFRRanger_reader/SFRRanger_reader.ino new file mode 100644 index 0000000..5537eca --- /dev/null +++ b/STM32F1/libraries/WireSlave/examples/SFRRanger_reader/SFRRanger_reader.ino @@ -0,0 +1,87 @@ +// I2C SRF10 or SRF08 Devantech Ultrasonic Ranger Finder +// by Nicholas Zambetti +// and James Tichenor + +// Demonstrates use of the Wire library reading data from the +// Devantech Utrasonic Rangers SFR08 and SFR10 + +// Created 29 April 2006 + +// This example code is in the public domain. + + +#include + +void setup() +{ + Wire.begin(); // join i2c bus (address optional for master) + Serial.begin(9600); // start serial communication at 9600bps +} + +int reading = 0; + +void loop() +{ + // step 1: instruct sensor to read echoes + Wire.beginTransmission(112); // transmit to device #112 (0x70) + // the address specified in the datasheet is 224 (0xE0) + // but i2c adressing uses the high 7 bits so it's 112 + Wire.write(byte(0x00)); // sets register pointer to the command register (0x00) + Wire.write(byte(0x50)); // command sensor to measure in "inches" (0x50) + // use 0x51 for centimeters + // use 0x52 for ping microseconds + Wire.endTransmission(); // stop transmitting + + // step 2: wait for readings to happen + delay(70); // datasheet suggests at least 65 milliseconds + + // step 3: instruct sensor to return a particular echo reading + Wire.beginTransmission(112); // transmit to device #112 + Wire.write(byte(0x02)); // sets register pointer to echo #1 register (0x02) + Wire.endTransmission(); // stop transmitting + + // step 4: request reading from sensor + Wire.requestFrom(112, 2); // request 2 bytes from slave device #112 + + // step 5: receive reading from sensor + if(2 <= Wire.available()) // if two bytes were received + { + reading = Wire.read(); // receive high byte (overwrites previous reading) + reading = reading << 8; // shift high byte to be high 8 bits + reading |= Wire.read(); // receive low byte as lower 8 bits + Serial.println(reading); // print the reading + } + + delay(250); // wait a bit since people have to read the output :) +} + + +/* + +// The following code changes the address of a Devantech Ultrasonic Range Finder (SRF10 or SRF08) +// usage: changeAddress(0x70, 0xE6); + +void changeAddress(byte oldAddress, byte newAddress) +{ + Wire.beginTransmission(oldAddress); + Wire.write(byte(0x00)); + Wire.write(byte(0xA0)); + Wire.endTransmission(); + + Wire.beginTransmission(oldAddress); + Wire.write(byte(0x00)); + Wire.write(byte(0xAA)); + Wire.endTransmission(); + + Wire.beginTransmission(oldAddress); + Wire.write(byte(0x00)); + Wire.write(byte(0xA5)); + Wire.endTransmission(); + + Wire.beginTransmission(oldAddress); + Wire.write(byte(0x00)); + Wire.write(newAddress); + Wire.endTransmission(); +} + +*/ diff --git a/STM32F1/libraries/WireSlave/examples/digital_potentiometer/digital_potentiometer.ino b/STM32F1/libraries/WireSlave/examples/digital_potentiometer/digital_potentiometer.ino new file mode 100644 index 0000000..8830ada --- /dev/null +++ b/STM32F1/libraries/WireSlave/examples/digital_potentiometer/digital_potentiometer.ino @@ -0,0 +1,38 @@ +// I2C Digital Potentiometer +// by Nicholas Zambetti +// and Shawn Bonkowski + +// Demonstrates use of the Wire library +// Controls AD5171 digital potentiometer via I2C/TWI + +// Created 31 March 2006 + +// This example code is in the public domain. + +// This example code is in the public domain. + + +#include + +void setup() +{ + Wire.begin(); // join i2c bus (address optional for master) +} + +byte val = 0; + +void loop() +{ + Wire.beginTransmission(44); // transmit to device #44 (0x2c) + // device address is specified in datasheet + Wire.write(byte(0x00)); // sends instruction byte + Wire.write(val); // sends potentiometer value byte + Wire.endTransmission(); // stop transmitting + + val++; // increment value + if(val == 64) // if reached 64th position (max) + { + val = 0; // start over from lowest value + } + delay(500); +} diff --git a/STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave/i2c_libmaple_slave.ino b/STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave/i2c_libmaple_slave.ino new file mode 100644 index 0000000..23456e4 --- /dev/null +++ b/STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave/i2c_libmaple_slave.ino @@ -0,0 +1,122 @@ +/* +* i2c_slave example.cpp +* +* You can use this sketch in combination with master_writer.pde +* +* Created on: 4 Sep 2012 +* Author: Barry Carter +*/ +#include +#include + +#define USE_BUFFERED_EXAMPLE 1 + +i2c_msg msg; +uint8 buffer[255]; +char* const bufferAsChar = (char*)buffer; // ready type casted alias + +volatile bool newMessage = false; + +void funcrx(i2c_msg *msg __attribute__((unused))){ + // Received length will be in msg->length + newMessage = true; +} + +#if USE_BUFFERED_EXAMPLE == 1 +/* We ARE using a buffer to transmit the data out. +* Make sure you fill the buffer with the data AND you set the length correctly +*/ +void functx(i2c_msg *msg){ + // Cheeky. We are using the received byte of the data which is currently in + // byte 0 to echo it back to the master device + //msg->data[0] = 0x01; // We are re-using the rx buffer here to echo the request back + msg->data[1] = 0x02; + msg->data[2] = 0x03; + msg->data[3] = 0x04; + msg->data[4] = 0x05; + msg->length = 5; +} + +#else + +/* We are NOT using the buffered data transmission +* We will get this callback for each outgoing packet. Make sure to call i2c_write +* Strickly speaking, we should be sending a NACk on the last byte we want to send +* but for this test example I am going to assume the master will NACK it when it +* wants to stop. +*/ +void functx(i2c_msg *msg){ + i2c_write(I2C1, msg->data[0]); +} + +#endif + +// #define Serial Serial1 + +void setup() { + Serial.begin(115200); + while(!Serial) + ; + Serial.println("I2C Slave example"); + + // attach the buffer + msg.data = buffer; + + /* Init slave mode. Enables master too + * We are going to configure the slave device to + * - enable fast I2C (400khz) + * - dual addresses (can have 2 addresses per module) + * general call (accepts data writes to 0x00 on a broadcast basis) + * + * If the buffered example is enabled, then we also enable the + * buffer for rx and tx. + * Note you can independently enable/disable RX and TX buffers to + * allow a buffered read and direct writes. Useful if you don't know how + * much the master will read. + */ + #if USE_BUFFERED_EXAMPLE == 1 + i2c_slave_enable(I2C1, I2C_FAST_MODE | I2C_SLAVE_DUAL_ADDRESS | I2C_SLAVE_GENERAL_CALL | I2C_SLAVE_USE_RX_BUFFER | I2C_SLAVE_USE_TX_BUFFER); + #else + i2c_slave_enable(I2C1, I2C_FAST_MODE | I2C_SLAVE_DUAL_ADDRESS | I2C_SLAVE_GENERAL_CALL); + #endif + + // attach receive handler + i2c_slave_attach_recv_handler(I2C1, &msg, funcrx); + // attach transmit handler + i2c_slave_attach_transmit_handler(I2C1, &msg, functx); + + // set addresss to 4 + i2c_slave_set_own_address(I2C1, 4); +} + +void loop() { + static uint32_t lastMessage = millis(); + + // This is potentially dangerous. + // We're reading from the live buffer, the content can change + // in the middle of Serial.println + + if (newMessage && strlen(bufferAsChar)==6) { + for (int i=0; i<5; i++) { + // Print as char + Serial.print(bufferAsChar[i]); + } + // Print as byte + Serial.println(buffer[5]); + lastMessage = millis(); + newMessage = false; + } else { + if(newMessage && strlen(bufferAsChar)!=6) { + // this also happends on the line "x is 0" + Serial.print("Bad data received:"); + Serial.println(bufferAsChar); + Serial.print("strlen:"); + Serial.println(strlen(bufferAsChar)); + newMessage = false; + } else + if(millis() - lastMessage > 3000){ + Serial.println("Nothing received in 3 seconds."); + lastMessage = millis(); + } + } +} diff --git a/STM32F1/libraries/WireSlave/examples/master_reader/master_reader.ino b/STM32F1/libraries/WireSlave/examples/master_reader/master_reader.ino new file mode 100644 index 0000000..4b45d12 --- /dev/null +++ b/STM32F1/libraries/WireSlave/examples/master_reader/master_reader.ino @@ -0,0 +1,32 @@ +// Wire Master Reader +// by Nicholas Zambetti + +// Demonstrates use of the Wire library +// Reads data from an I2C/TWI slave device +// Refer to the "Wire Slave Sender" example for use with this + +// Created 29 March 2006 + +// This example code is in the public domain. + + +#include + +void setup() +{ + Wire.begin(); // join i2c bus (address optional for master) + Serial.begin(9600); // start serial for output +} + +void loop() +{ + Wire.requestFrom(2, 6); // request 6 bytes from slave device #2 + + while(Wire.available()) // slave may send less than requested + { + char c = Wire.read(); // receive a byte as character + Serial.print(c); // print the character + } + + delay(500); +} diff --git a/STM32F1/libraries/WireSlave/examples/master_writer/master_writer.ino b/STM32F1/libraries/WireSlave/examples/master_writer/master_writer.ino new file mode 100644 index 0000000..f997473 --- /dev/null +++ b/STM32F1/libraries/WireSlave/examples/master_writer/master_writer.ino @@ -0,0 +1,31 @@ +// Wire Master Writer +// by Nicholas Zambetti + +// Demonstrates use of the Wire library +// Writes data to an I2C/TWI slave device +// Refer to the "Wire Slave Receiver" example for use with this + +// Created 29 March 2006 + +// This example code is in the public domain. + + +#include + +void setup() +{ + Wire.begin(); // join i2c bus (address optional for master) +} + +byte x = 0; + +void loop() +{ + Wire.beginTransmission(4); // transmit to device #4 + Wire.write("x is "); // sends five bytes + Wire.write(x); // sends one byte + Wire.endTransmission(); // stop transmitting + + x++; + delay(500); +} diff --git a/STM32F1/libraries/WireSlave/examples/slave_receiver/slave_receiver.ino b/STM32F1/libraries/WireSlave/examples/slave_receiver/slave_receiver.ino new file mode 100644 index 0000000..b430c25 --- /dev/null +++ b/STM32F1/libraries/WireSlave/examples/slave_receiver/slave_receiver.ino @@ -0,0 +1,38 @@ +// Wire Slave Receiver +// by Nicholas Zambetti + +// Demonstrates use of the Wire library +// Receives data as an I2C/TWI slave device +// Refer to the "Wire Master Writer" example for use with this + +// Created 29 March 2006 + +// This example code is in the public domain. + + +#include + +void setup() +{ + Wire.begin(4); // join i2c bus with address #4 + Wire.onReceive(receiveEvent); // register event + Serial.begin(9600); // start serial for output +} + +void loop() +{ + delay(100); +} + +// function that executes whenever data is received from master +// this function is registered as an event, see setup() +void receiveEvent(int howMany) +{ + while(1 < Wire.available()) // loop through all but the last + { + char c = Wire.read(); // receive byte as a character + Serial.print(c); // print the character + } + int x = Wire.read(); // receive byte as an integer + Serial.println(x); // print the integer +} diff --git a/STM32F1/libraries/WireSlave/examples/slave_sender/slave_sender.ino b/STM32F1/libraries/WireSlave/examples/slave_sender/slave_sender.ino new file mode 100644 index 0000000..fcdac14 --- /dev/null +++ b/STM32F1/libraries/WireSlave/examples/slave_sender/slave_sender.ino @@ -0,0 +1,32 @@ +// Wire Slave Sender +// by Nicholas Zambetti + +// Demonstrates use of the Wire library +// Sends data as an I2C/TWI slave device +// Refer to the "Wire Master Reader" example for use with this + +// Created 29 March 2006 + +// This example code is in the public domain. + + +#include + +void setup() +{ + Wire.begin(2); // join i2c bus with address #2 + Wire.onRequest(requestEvent); // register event +} + +void loop() +{ + delay(100); +} + +// function that executes whenever data is requested by master +// this function is registered as an event, see setup() +void requestEvent() +{ + Wire.write("hello "); // respond with message of 6 bytes + // as expected by master +} diff --git a/STM32F1/libraries/WireSlave/library.properties b/STM32F1/libraries/WireSlave/library.properties new file mode 100644 index 0000000..2a1c387 --- /dev/null +++ b/STM32F1/libraries/WireSlave/library.properties @@ -0,0 +1,11 @@ +name=Wire_Slave +version=1.0 +author= +email= +sentence=Wire with slave support +paragraph=Experimental Wire with slave support +url= +architectures=STM32F1 +maintainer= +category=Communication +include=src/Wire_Slave.h diff --git a/STM32F1/libraries/WireSlave/src/Wire.h b/STM32F1/libraries/WireSlave/src/Wire.h new file mode 100644 index 0000000..ede963b --- /dev/null +++ b/STM32F1/libraries/WireSlave/src/Wire.h @@ -0,0 +1 @@ +#error "Something is trying to include Wire_slave.h when Wire.h is already included, they are mutually exclusive" diff --git a/STM32F1/libraries/WireSlave/src/Wire.h.gch b/STM32F1/libraries/WireSlave/src/Wire.h.gch new file mode 100644 index 0000000000000000000000000000000000000000..b29a5ea9fd8851ea75533c42ff77077972caf5ce GIT binary patch literal 1819056 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 z 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≠!FX+RNj++pOJ3nHmv#KU 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

h#jNeg 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 diff --git a/STM32F1/libraries/WireSlave/src/Wire_slave.h.gch b/STM32F1/libraries/WireSlave/src/Wire_slave.h.gch deleted file mode 100644 index 5a6345078e7abad4b9211a296cfa52568e2ed238..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9475 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 Y;dI<1)bAmJrq!61Ti)JEJwtc@2OMIdI{*Lx diff --git a/STM32F1/libraries/WireSlave/src/i2c_slave.h.gch b/STM32F1/libraries/WireSlave/src/i2c_slave.h.gch deleted file mode 100644 index 5a6345078e7abad4b9211a296cfa52568e2ed238..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9475 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 Y;dI<1)bAmJrq!61Ti)JEJwtc@2OMIdI{*Lx diff --git a/STM32F1/libraries/WireSlave/src/libmaple/i2c_slave.h.gch b/STM32F1/libraries/WireSlave/src/libmaple/i2c_slave.h.gch deleted file mode 100644 index 5a6345078e7abad4b9211a296cfa52568e2ed238..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9475 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 Y;dI<1)bAmJrq!61Ti)JEJwtc@2OMIdI{*Lx diff --git a/STM32F1/libraries/WireSlave/src/utility/WireBase_slave.h.gch b/STM32F1/libraries/WireSlave/src/utility/WireBase_slave.h.gch deleted file mode 100644 index 5a6345078e7abad4b9211a296cfa52568e2ed238..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9475 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 Y;dI<1)bAmJrq!61Ti)JEJwtc@2OMIdI{*Lx From 730711b80aced608f59020803335e6b2dc482053 Mon Sep 17 00:00:00 2001 From: lacklustrlabs Date: Thu, 14 Dec 2017 16:45:55 +0100 Subject: [PATCH 03/16] Made sure Wire_slave.h is included first --- .../WireSlave/examples/i2c_libmaple_slave/i2c_libmaple_slave.ino | 1 + 1 file changed, 1 insertion(+) diff --git a/STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave/i2c_libmaple_slave.ino b/STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave/i2c_libmaple_slave.ino index 23456e4..51e2dcc 100644 --- a/STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave/i2c_libmaple_slave.ino +++ b/STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave/i2c_libmaple_slave.ino @@ -6,6 +6,7 @@ * Created on: 4 Sep 2012 * Author: Barry Carter */ +#include #include #include From 3425506d1983c7ae41153f80a8ba7651b25492fc Mon Sep 17 00:00:00 2001 From: lacklustrlabs Date: Thu, 14 Dec 2017 17:30:35 +0100 Subject: [PATCH 04/16] spellcheccck --- STM32F1/libraries/WireSlave/library.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/STM32F1/libraries/WireSlave/library.properties b/STM32F1/libraries/WireSlave/library.properties index 2a1c387..fd24ab1 100644 --- a/STM32F1/libraries/WireSlave/library.properties +++ b/STM32F1/libraries/WireSlave/library.properties @@ -8,4 +8,4 @@ url= architectures=STM32F1 maintainer= category=Communication -include=src/Wire_Slave.h +include=src/Wire_slave.h From c4fdf5aa63a787ce9a28ddebfab9428e7681a65b Mon Sep 17 00:00:00 2001 From: lacklustrlabs Date: Thu, 14 Dec 2017 21:04:54 +0100 Subject: [PATCH 05/16] keywords.txt Copied from ArduinoCore-sam (Due) --- STM32F1/libraries/WireSlave/keywords.txt | 31 ++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 STM32F1/libraries/WireSlave/keywords.txt diff --git a/STM32F1/libraries/WireSlave/keywords.txt b/STM32F1/libraries/WireSlave/keywords.txt new file mode 100644 index 0000000..47ffd52 --- /dev/null +++ b/STM32F1/libraries/WireSlave/keywords.txt @@ -0,0 +1,31 @@ +####################################### +# Syntax Coloring Map For Wire +####################################### + +####################################### +# Datatypes (KEYWORD1) +####################################### + +####################################### +# Methods and Functions (KEYWORD2) +####################################### + +begin KEYWORD2 +setClock KEYWORD2 +beginTransmission KEYWORD2 +endTransmission KEYWORD2 +requestFrom KEYWORD2 +onReceive KEYWORD2 +onRequest KEYWORD2 + +####################################### +# Instances (KEYWORD2) +####################################### + +Wire KEYWORD2 +Wire1 KEYWORD2 + +####################################### +# Constants (LITERAL1) +####################################### + From 56e95f2773f10b1dad148d1c5e3f93b45c5b9cd2 Mon Sep 17 00:00:00 2001 From: lacklustrlabs Date: Thu, 14 Dec 2017 22:03:09 +0100 Subject: [PATCH 06/16] Steals any reference to Wire.h and redirects it to Wire_slave.h. This way we don't need to alter third party libraries. Note that Wire_slave.h must be included **before** the real Wire.h for this to work. --- STM32F1/libraries/WireSlave/src/Wire.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/STM32F1/libraries/WireSlave/src/Wire.h b/STM32F1/libraries/WireSlave/src/Wire.h index 2d3ce70..0a47d03 100644 --- a/STM32F1/libraries/WireSlave/src/Wire.h +++ b/STM32F1/libraries/WireSlave/src/Wire.h @@ -1 +1,4 @@ -#error "Something is trying to include Wire.h when Wire_slave.h is already included, they are mutually exclusive" +#pragma once +#include "Wire_slave.h" + +//#error "Something is trying to include Wire.h when Wire_slave.h is already included, they are mutually exclusive" From 6fe4a55922a30cef5f03c6a12897a682d12cf44d Mon Sep 17 00:00:00 2001 From: lacklustrlabs Date: Fri, 15 Dec 2017 11:56:01 +0100 Subject: [PATCH 07/16] Added SoftWire.h --- STM32F1/libraries/Wire/library.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/STM32F1/libraries/Wire/library.properties b/STM32F1/libraries/Wire/library.properties index 1129fa3..2d822fe 100644 --- a/STM32F1/libraries/Wire/library.properties +++ b/STM32F1/libraries/Wire/library.properties @@ -7,4 +7,4 @@ paragraph= category=Communication url=http://www.arduino.cc/en/Reference/Wire architectures=STM32F1 -include=Wire.h +include=Wire.h,SoftWire.h From c65ec99a8d206aada5fbdc4be83e6f099c9c2a5e Mon Sep 17 00:00:00 2001 From: lacklustrlabs Date: Fri, 15 Dec 2017 13:19:37 +0100 Subject: [PATCH 08/16] Updated library.properties --- STM32F1/libraries/Wire/library.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/STM32F1/libraries/Wire/library.properties b/STM32F1/libraries/Wire/library.properties index 2d822fe..06b7aee 100644 --- a/STM32F1/libraries/Wire/library.properties +++ b/STM32F1/libraries/Wire/library.properties @@ -1,7 +1,7 @@ name=Wire version=1.0 -author=Arduino -maintainer=Arduino +author=Roger Clark +maintainer= sentence=Allows the communication between devices or sensors connected via Two Wire Interface Bus. paragraph= category=Communication From 987102c8d2d23ee09498c2b9ba36cba1057409a3 Mon Sep 17 00:00:00 2001 From: lacklustrlabs Date: Fri, 15 Dec 2017 16:00:54 +0100 Subject: [PATCH 09/16] Temporarily removed not yet functioning examples --- .../slave_receiver/slave_receiver.ino | 38 ------------------- .../examples/slave_sender/slave_sender.ino | 32 ---------------- 2 files changed, 70 deletions(-) delete mode 100644 STM32F1/libraries/WireSlave/examples/slave_receiver/slave_receiver.ino delete mode 100644 STM32F1/libraries/WireSlave/examples/slave_sender/slave_sender.ino diff --git a/STM32F1/libraries/WireSlave/examples/slave_receiver/slave_receiver.ino b/STM32F1/libraries/WireSlave/examples/slave_receiver/slave_receiver.ino deleted file mode 100644 index b430c25..0000000 --- a/STM32F1/libraries/WireSlave/examples/slave_receiver/slave_receiver.ino +++ /dev/null @@ -1,38 +0,0 @@ -// Wire Slave Receiver -// by Nicholas Zambetti - -// Demonstrates use of the Wire library -// Receives data as an I2C/TWI slave device -// Refer to the "Wire Master Writer" example for use with this - -// Created 29 March 2006 - -// This example code is in the public domain. - - -#include - -void setup() -{ - Wire.begin(4); // join i2c bus with address #4 - Wire.onReceive(receiveEvent); // register event - Serial.begin(9600); // start serial for output -} - -void loop() -{ - delay(100); -} - -// function that executes whenever data is received from master -// this function is registered as an event, see setup() -void receiveEvent(int howMany) -{ - while(1 < Wire.available()) // loop through all but the last - { - char c = Wire.read(); // receive byte as a character - Serial.print(c); // print the character - } - int x = Wire.read(); // receive byte as an integer - Serial.println(x); // print the integer -} diff --git a/STM32F1/libraries/WireSlave/examples/slave_sender/slave_sender.ino b/STM32F1/libraries/WireSlave/examples/slave_sender/slave_sender.ino deleted file mode 100644 index fcdac14..0000000 --- a/STM32F1/libraries/WireSlave/examples/slave_sender/slave_sender.ino +++ /dev/null @@ -1,32 +0,0 @@ -// Wire Slave Sender -// by Nicholas Zambetti - -// Demonstrates use of the Wire library -// Sends data as an I2C/TWI slave device -// Refer to the "Wire Master Reader" example for use with this - -// Created 29 March 2006 - -// This example code is in the public domain. - - -#include - -void setup() -{ - Wire.begin(2); // join i2c bus with address #2 - Wire.onRequest(requestEvent); // register event -} - -void loop() -{ - delay(100); -} - -// function that executes whenever data is requested by master -// this function is registered as an event, see setup() -void requestEvent() -{ - Wire.write("hello "); // respond with message of 6 bytes - // as expected by master -} From 78f8a90a2df3f408cab28764d35113a06263295e Mon Sep 17 00:00:00 2001 From: lacklustrlabs Date: Tue, 19 Dec 2017 23:46:32 +0100 Subject: [PATCH 10/16] Fixed a master/slave mode mixup. Turns out that (sr2&I2C_SR2_MSL)!=I2C_SR2_MSL indicates slave mode after master has requested, and received, data. "MSL - Cleared by hardware after detecting a Stop condition on the bus or a loss of arbitration (ARLO=1), or by hardware when PE=0." -RM0008 --- STM32F1/libraries/WireSlave/src/i2c_slave.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/STM32F1/libraries/WireSlave/src/i2c_slave.c b/STM32F1/libraries/WireSlave/src/i2c_slave.c index 770cd3a..865949b 100644 --- a/STM32F1/libraries/WireSlave/src/i2c_slave.c +++ b/STM32F1/libraries/WireSlave/src/i2c_slave.c @@ -70,6 +70,12 @@ static inline void i2c_send_slave_addr(i2c_dev *dev, uint32 addr, uint32 rw) { #ifdef I2C_DEBUG #define NR_CRUMBS 128 +struct crumb { + uint32 event; + uint32 arg0; + uint32 arg1; + uint32 arg2; // filler to make the data fit GDB memory dump screen +}; static struct crumb crumbs[NR_CRUMBS]; static uint32 cur_crumb = 0; @@ -79,6 +85,7 @@ static inline void i2c_drop_crumb(uint32 event, uint32 arg0, uint32 arg1) { crumb->event = event; crumb->arg0 = arg0; crumb->arg1 = arg1; + crumb->arg2 = cur_crumb-1; } } #define I2C_CRUMB(event, arg0, arg1) i2c_drop_crumb(event, arg0, arg1) @@ -87,12 +94,6 @@ static inline void i2c_drop_crumb(uint32 event, uint32 arg0, uint32 arg1) { #define I2C_CRUMB(event, arg0, arg1) #endif -struct crumb { - uint32 event; - uint32 arg0; - uint32 arg1; -}; - enum { IRQ_ENTRY = 1, TXE_ONLY = 2, @@ -351,8 +352,8 @@ void _i2c_irq_handler(i2c_dev *dev) { * Add Slave support */ - /* Check to see if MSL master slave bit is set */ - if ((sr2 & I2C_SR2_MSL) != I2C_SR2_MSL) { /* 0 = slave mode 1 = master */ + /* Check to see if in slave mode */ + if (dev->config_flags&(I2C_SLAVE_DUAL_ADDRESS|I2C_SLAVE_GENERAL_CALL)) { /* Check for address match */ if (sr1 & I2C_SR1_ADDR) { From b46b7461f401a2b51259fb76b350b5748b2f564a Mon Sep 17 00:00:00 2001 From: lacklustrlabs Date: Fri, 22 Dec 2017 18:52:12 +0100 Subject: [PATCH 11/16] Merged with Wire implementation from stm32duino/Arduino_Core_STM32 --- .../SFRRanger_reader/SFRRanger_reader.ino | 2 +- .../i2c_libmaple_slave_reader.ino} | 5 - .../i2c_scanner_wire/i2c_scanner_wire.ino | 78 +++ .../examples/master_reader/master_reader.ino | 4 +- .../WireSlave/examples/selftest1/code.cpp | 68 ++ .../examples/selftest1/selftest1.ino | 16 + .../slave_receiver/slave_receiver.ino | 37 ++ .../examples/slave_sender/slave_sender.ino | 32 + .../libraries/WireSlave/src/Wire_slave.cpp | 591 +++++++++++++++--- STM32F1/libraries/WireSlave/src/Wire_slave.h | 203 ++++-- .../libraries/WireSlave/src/Wire_slave.h.gch | Bin 0 -> 9475 bytes STM32F1/libraries/WireSlave/src/i2c_slave.c | 15 +- .../WireSlave/src/utility/WireBase_slave.cpp | 145 ----- .../WireSlave/src/utility/WireBase_slave.h | 145 ----- 14 files changed, 885 insertions(+), 456 deletions(-) rename STM32F1/libraries/WireSlave/examples/{i2c_libmaple_slave/i2c_libmaple_slave.ino => i2c_libmaple_slave_reader/i2c_libmaple_slave_reader.ino} (97%) create mode 100644 STM32F1/libraries/WireSlave/examples/i2c_scanner_wire/i2c_scanner_wire.ino create mode 100644 STM32F1/libraries/WireSlave/examples/selftest1/code.cpp create mode 100644 STM32F1/libraries/WireSlave/examples/selftest1/selftest1.ino create mode 100644 STM32F1/libraries/WireSlave/examples/slave_receiver/slave_receiver.ino create mode 100644 STM32F1/libraries/WireSlave/examples/slave_sender/slave_sender.ino create mode 100644 STM32F1/libraries/WireSlave/src/Wire_slave.h.gch delete mode 100644 STM32F1/libraries/WireSlave/src/utility/WireBase_slave.cpp delete mode 100644 STM32F1/libraries/WireSlave/src/utility/WireBase_slave.h diff --git a/STM32F1/libraries/WireSlave/examples/SFRRanger_reader/SFRRanger_reader.ino b/STM32F1/libraries/WireSlave/examples/SFRRanger_reader/SFRRanger_reader.ino index 5537eca..9409bb1 100644 --- a/STM32F1/libraries/WireSlave/examples/SFRRanger_reader/SFRRanger_reader.ino +++ b/STM32F1/libraries/WireSlave/examples/SFRRanger_reader/SFRRanger_reader.ino @@ -15,7 +15,7 @@ void setup() { Wire.begin(); // join i2c bus (address optional for master) - Serial.begin(9600); // start serial communication at 9600bps + Serial.begin(115200); // start serial communication at 9600bps } int reading = 0; diff --git a/STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave/i2c_libmaple_slave.ino b/STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave_reader/i2c_libmaple_slave_reader.ino similarity index 97% rename from STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave/i2c_libmaple_slave.ino rename to STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave_reader/i2c_libmaple_slave_reader.ino index 51e2dcc..a63ff3c 100644 --- a/STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave/i2c_libmaple_slave.ino +++ b/STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave_reader/i2c_libmaple_slave_reader.ino @@ -8,7 +8,6 @@ */ #include #include -#include #define USE_BUFFERED_EXAMPLE 1 @@ -52,12 +51,8 @@ void functx(i2c_msg *msg){ #endif -// #define Serial Serial1 - void setup() { Serial.begin(115200); - while(!Serial) - ; Serial.println("I2C Slave example"); // attach the buffer diff --git a/STM32F1/libraries/WireSlave/examples/i2c_scanner_wire/i2c_scanner_wire.ino b/STM32F1/libraries/WireSlave/examples/i2c_scanner_wire/i2c_scanner_wire.ino new file mode 100644 index 0000000..44af4dc --- /dev/null +++ b/STM32F1/libraries/WireSlave/examples/i2c_scanner_wire/i2c_scanner_wire.ino @@ -0,0 +1,78 @@ +// -------------------------------------- +// i2c_scanner +// +// Version 1 +// This program (or code that looks like it) +// can be found in many places. +// For example on the Arduino.cc forum. +// The original author is not know. +// Version 2, Juni 2012, Using Arduino 1.0.1 +// Adapted to be as simple as possible by Arduino.cc user Krodal +// Version 3, Feb 26 2013 +// V3 by louarnold +// Version 4, March 3, 2013, Using Arduino 1.0.3 +// by Arduino.cc user Krodal. +// Changes by louarnold removed. +// Scanning addresses changed from 0...127 to 1...119, +// according to the i2c scanner by Nick Gammon +// http://www.gammon.com.au/forum/?id=10896 +// Version 5, March 28, 2013 +// As version 4, but address scans now to 127. +// A sensor seems to use address 120. +// +// This sketch tests the standard 7-bit addresses +// Devices with higher bit address might not be seen properly. +// + +#include + +//use IIC2 +//TwoWire WIRE2 (2,I2C_FAST_MODE); +//#define Wire WIRE2 + + +void setup() { + + Serial.begin(115200); + Wire.begin(); + Serial.println("\nI2C Scanner"); +} + + +void loop() { + byte error, address; + int nDevices; + + Serial.println("Scanning..."); + + nDevices = 0; + for(address = 1; address < 127; address++) { + // The i2c_scanner uses the return value of + // the Write.endTransmisstion to see if + // a device did acknowledge to the address. + + Wire.beginTransmission(address); + error = Wire.endTransmission(); + + if (error == 0) { + Serial.print("I2C device found at address 0x"); + if (address < 16) + Serial.print("0"); + Serial.println(address, HEX); + + nDevices++; + } + else if (error == 4) { + Serial.print("Unknown error at address 0x"); + if (address < 16) + Serial.print("0"); + Serial.println(address, HEX); + } + } + if (nDevices == 0) + Serial.println("No I2C devices found"); + else + Serial.println("done"); + + delay(5000); // wait 5 seconds for next scan +} diff --git a/STM32F1/libraries/WireSlave/examples/master_reader/master_reader.ino b/STM32F1/libraries/WireSlave/examples/master_reader/master_reader.ino index 4b45d12..bd914e3 100644 --- a/STM32F1/libraries/WireSlave/examples/master_reader/master_reader.ino +++ b/STM32F1/libraries/WireSlave/examples/master_reader/master_reader.ino @@ -15,12 +15,12 @@ void setup() { Wire.begin(); // join i2c bus (address optional for master) - Serial.begin(9600); // start serial for output + Serial.begin(115200); // start serial for output } void loop() { - Wire.requestFrom(2, 6); // request 6 bytes from slave device #2 + Wire.requestFrom(8, 6); // request 6 bytes from slave device #8 while(Wire.available()) // slave may send less than requested { diff --git a/STM32F1/libraries/WireSlave/examples/selftest1/code.cpp b/STM32F1/libraries/WireSlave/examples/selftest1/code.cpp new file mode 100644 index 0000000..d2bce8c --- /dev/null +++ b/STM32F1/libraries/WireSlave/examples/selftest1/code.cpp @@ -0,0 +1,68 @@ +// Wire Slave Receiver +// by Nicholas Zambetti + +// Demonstrates use of the Wire library +// Receives data as an I2C/TWI slave device +// Refer to the "Wire Master Writer" example for use with this + +// Created 29 March 2006 + +// This example code is in the public domain. + +#include +//#define Serial Serial1 + +#define MasterWire Wire +#define SlaveWire Wire1 +#define ENABLE_SLAVE +#define ENABLE_MASTER + +void receiveEvent(int howMany); + +void setup(){ + Serial.begin(115200); // start serial for output + + #ifdef ENABLE_MASTER + MasterWire.begin(); // join i2c bus #1 as master + Serial.println("Done with MasterWire.begin "); + #endif + + #ifdef ENABLE_SLAVE + SlaveWire.begin(4); // join i2c bus #2 as slave with address #4 + Serial.println("Done with SlaveWire.begin "); + #endif + + #ifdef ENABLE_SLAVE + SlaveWire.onReceive(receiveEvent); // register event + #endif +} + +void loop(){ + #ifdef ENABLE_MASTER + static byte x = 0; + Serial.print("Master writing "); + Serial.println(x); + + MasterWire.beginTransmission(4); // transmit to device #4 + MasterWire.write("x is "); // sends five bytes + MasterWire.write(x); // sends one byte + MasterWire.endTransmission(); // stop transmitting + + x++; + #endif + delay(500); +} + +// function that executes whenever data is received from master +// this function is registered as an event, see setup() +// Note that it is not advicable to call Serial.print() from within an ISR +void receiveEvent(int howMany){ + //Serial.print("Slave receving "); + while(1 < SlaveWire.available()){ // loop through all but the last + char c = SlaveWire.read(); // receive byte as a character + Serial.print(c); // print the character + } + int x = SlaveWire.read(); // receive byte as an integer + Serial.println(x); // print the integer +} + diff --git a/STM32F1/libraries/WireSlave/examples/selftest1/selftest1.ino b/STM32F1/libraries/WireSlave/examples/selftest1/selftest1.ino new file mode 100644 index 0000000..58f1e5c --- /dev/null +++ b/STM32F1/libraries/WireSlave/examples/selftest1/selftest1.ino @@ -0,0 +1,16 @@ +// Wire Slave Receiver +// by Nicholas Zambetti + +// Demonstrates use of the Wire library +// Receives data as an I2C/TWI slave device +// Refer to the "Wire Master Writer" example for use with this + +// Created 29 March 2006 + +// This example code is in the public domain. + +// The code is temporarily moved to the code.cpp. +// This makes it possible to set breakpoints in eclipse IDE. +// I'm sure that there is an Eclipse configuration that makes it +// possible for it to detect .ino files as .cpp, but I'm lazy + diff --git a/STM32F1/libraries/WireSlave/examples/slave_receiver/slave_receiver.ino b/STM32F1/libraries/WireSlave/examples/slave_receiver/slave_receiver.ino new file mode 100644 index 0000000..5d71b9a --- /dev/null +++ b/STM32F1/libraries/WireSlave/examples/slave_receiver/slave_receiver.ino @@ -0,0 +1,37 @@ +// Wire Slave Receiver +// by Nicholas Zambetti + +// Demonstrates use of the Wire library +// Receives data as an I2C/TWI slave device +// Refer to the "Wire Master Writer" example for use with this + +// Created 29 March 2006 + +// This example code is in the public domain. + + +#include +#define Serial Serial1 + +void setup(){ + Serial.begin(115200); // start serial for output + + Wire.begin(4); // join i2c bus with address #4 + Wire.onReceive(receiveEvent); // register event +} + +void loop(){ + delay(100); +} + +// function that executes whenever data is received from master +// this function is registered as an event, see setup() +// Note that it is not advicable to call Serial.print() from within an ISR +void receiveEvent(int howMany){ + while(1 < Wire.available()){ // loop through all but the last + char c = Wire.read(); // receive byte as a character + Serial.print(c); // print the character + } + int x = Wire.read(); // receive byte as an integer + Serial.println(x); // print the integer +} diff --git a/STM32F1/libraries/WireSlave/examples/slave_sender/slave_sender.ino b/STM32F1/libraries/WireSlave/examples/slave_sender/slave_sender.ino new file mode 100644 index 0000000..75add4a --- /dev/null +++ b/STM32F1/libraries/WireSlave/examples/slave_sender/slave_sender.ino @@ -0,0 +1,32 @@ +// Wire Slave Sender +// by Nicholas Zambetti + +// Demonstrates use of the Wire library +// Sends data as an I2C/TWI slave device +// Refer to the "Wire Master Reader" example for use with this + +// Created 29 March 2006 + +// This example code is in the public domain. + + +#include + +void setup() +{ + Wire.begin(8); // join i2c bus with address #8 + Wire.onRequest(requestEvent); // register event +} + +void loop() +{ + delay(100); +} + +// function that executes whenever data is requested by master +// this function is registered as an event, see setup() +void requestEvent() +{ + Wire.write("hello "); // respond with message of 6 bytes + // as expected by master +} diff --git a/STM32F1/libraries/WireSlave/src/Wire_slave.cpp b/STM32F1/libraries/WireSlave/src/Wire_slave.cpp index 93cc55f..75e753f 100644 --- a/STM32F1/libraries/WireSlave/src/Wire_slave.cpp +++ b/STM32F1/libraries/WireSlave/src/Wire_slave.cpp @@ -1,106 +1,523 @@ -/****************************************************************************** - * The MIT License - * - * Copyright (c) 2010 LeafLabs LLC. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - *****************************************************************************/ - -/** - * @file TwoWire.cpp - * @author Trystan Jones - * @brief Wire library, uses the hardware I2C available in the Maple to - * interact with I2C slave devices. - */ - /* - * Library created by crenn to use the new WireBase system and allow Arduino - * users easy interaction with the I2C Hardware in a familiar method. + TwoWire.cpp - TWI/I2C library for Wiring & Arduino + Copyright (c) 2006 Nicholas Zambetti. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Modified 2012 by Todd Krein (todd@krein.org) to implement repeated starts */ +extern "C" { + #include + #include + #include +} + #include "Wire_slave.h" +#include "wirish.h" +#include -uint8 TwoWire::process(uint8 stop) { - int8 res = i2c_master_xfer(sel_hard, &itc_msg, 1, 0); - if (res == I2C_ERROR_PROTOCOL) { - if (sel_hard->error_flags & I2C_SR1_AF) { /* NACK */ - res = (sel_hard->error_flags & I2C_SR1_ADDR ? ENACKADDR : - ENACKTRNS); - } else if (sel_hard->error_flags & I2C_SR1_OVR) { /* Over/Underrun */ - res = EDATA; - } else { /* Bus or Arbitration error */ - res = EOTHER; - } - i2c_disable(sel_hard); - i2c_master_enable(sel_hard, (I2C_BUS_RESET | dev_flags)); - } - return res; +#define BUFFER_LENGTH 32 + +#define MASTER_ADDRESS 0x33 +// Constructors //////////////////////////////////////////////////////////////// + +TwoWire::TwoWire(i2c_dev* i2cDevice) : + sel_hard(i2cDevice), + rxBuffer(nullptr), + rxBufferAllocated(0), + rxBufferIndex(0), + rxBufferLength(0), + txBuffer(nullptr), + txBufferAllocated(0), + txBufferIndex(0), + txBufferLength(0), + transmitting(false), + master(true), + dev_flags(0), + itc_msg(), + itc_slave_msg(), + user_onRequest(nullptr), + user_onReceive(nullptr) { } -uint8 TwoWire::process(){ - return process(true); +// Public Methods ////////////////////////////////////////////////////////////// + +void TwoWire::begin(void) { + begin(MASTER_ADDRESS); } -// TODO: Add in Error Handling if devsel is out of range for other Maples -TwoWire::TwoWire(uint8 dev_sel, uint8 flags) { - if (dev_sel == 1) { - sel_hard = I2C1; - } else if (dev_sel == 2) { - sel_hard = I2C2; - } else { - ASSERT(1); - } - dev_flags = flags; -} +void TwoWire::begin(uint8_t address){ -TwoWire::~TwoWire() { - i2c_disable(sel_hard); - sel_hard = 0; -} + rxBufferIndex = 0; + rxBufferLength = 0; + allocateRxBuffer(BUFFER_LENGTH); -void TwoWire::begin(uint8 self_addr) { + txBufferIndex = 0; + txBufferLength = 0; + allocateTxBuffer(BUFFER_LENGTH); + + transmitting = 0; + + master = (address == MASTER_ADDRESS); + + // Set default speed to 100KHz + if (master) { + dev_flags = 0; i2c_master_enable(sel_hard, dev_flags); + } else { + // TODO: I2C_SLAVE_DUAL_ADDRESS ? + dev_flags = I2C_SLAVE_GENERAL_CALL | I2C_SLAVE_USE_RX_BUFFER | + I2C_SLAVE_USE_TX_BUFFER; + + itc_slave_msg.addr = address; + itc_slave_msg.flags = 0; + itc_slave_msg.data = rxBuffer; + itc_slave_msg.length = 0; + itc_slave_msg.flags = 0; + + // TODO why does enable only work before setting IRS and address? + i2c_slave_enable(sel_hard, dev_flags); + + if (sel_hard==I2C1){ + // attach receive handler + i2c_slave_attach_recv_handler(sel_hard, &itc_slave_msg, onReceiveService1); + // attach transmit handler + i2c_slave_attach_transmit_handler(sel_hard, &itc_slave_msg, onRequestService1); + } + #if WIRE_INTERFACES_COUNT > 1 + else if (sel_hard==I2C2){ + // attach receive handler + i2c_slave_attach_recv_handler(sel_hard, &itc_slave_msg, onReceiveService2); + // attach transmit handler + i2c_slave_attach_transmit_handler(sel_hard, &itc_slave_msg, onRequestService2); + } + #endif + + i2c_slave_set_own_address(sel_hard, address); + } } -void TwoWire::end() { +void TwoWire::begin(int address) { + begin((uint8_t) address); +} + +void TwoWire::end(void) { + free(txBuffer); + txBuffer = nullptr; + txBufferAllocated = 0; + free(rxBuffer); + rxBuffer = nullptr; + rxBufferAllocated = 0; + i2c_peripheral_disable(sel_hard); + i2c_master_release_bus(sel_hard); // TODO is this required? +} + +void TwoWire::setClock(uint32_t frequencyHz) { + switch (frequencyHz) { + case 400000: + dev_flags |= I2C_FAST_MODE; // set FAST_MODE bit + break; + case 100000: + default: + dev_flags &= ~I2C_FAST_MODE; // clear FAST_MODE bit + break; + } + if (sel_hard->regs->CR1 & I2C_CR1_PE){ i2c_disable(sel_hard); - sel_hard = 0; + i2c_master_enable(sel_hard, dev_flags); + } } -void TwoWire::setClock(uint32_t frequencyHz) -{ - switch(frequencyHz) - { - case 400000: - dev_flags |= I2C_FAST_MODE;// set FAST_MODE bit - break; - case 100000: - default: - dev_flags &= ~I2C_FAST_MODE;// clear FAST_MODE bit - break; - } - if (sel_hard->regs->CR1 & I2C_CR1_PE){ - i2c_disable(sel_hard); - i2c_master_enable(sel_hard, dev_flags); - } +uint8 TwoWire::process(bool stop) { + int8 res = i2c_master_xfer(sel_hard, &itc_msg, 1, 0); + + if (res == I2C_ERROR_PROTOCOL) { + if (sel_hard->error_flags & I2C_SR1_AF) { /* NACK */ + res = (sel_hard->error_flags & I2C_SR1_ADDR ? ENACKADDR : ENACKTRNS); + } else if (sel_hard->error_flags & I2C_SR1_OVR) { /* Over/Underrun */ + res = EDATA; + } else { /* Bus or Arbitration error */ + res = EOTHER; + } + i2c_disable(sel_hard); + i2c_master_enable(sel_hard, (I2C_BUS_RESET | dev_flags)); + } + + return res; } -TwoWire Wire(1); +//TODO: Add the ability to queue messages (adding a boolean to end of function +// call, allows for the Arduino style to stay while also giving the flexibility +// to bulk send +uint8 TwoWire::requestFrom(uint8_t address, uint8_t num_bytes, + uint32_t iaddress, uint8_t isize, uint8_t sendStop) { + + ASSERT(master); + + allocateRxBuffer(num_bytes); + // error if no memory block available to allocate the buffer + if (rxBuffer == nullptr) { + return EDATA; + } + + // reset tx buffer iterator vars + rxBufferIndex = 0; + rxBufferLength = 0; + + if (num_bytes > BUFFER_LENGTH) { + num_bytes = BUFFER_LENGTH; + } + + itc_msg.addr = address; + itc_msg.flags = I2C_MSG_READ; + itc_msg.length = num_bytes; + itc_msg.data = &rxBuffer[rxBufferIndex]; + process(sendStop); // TODO deal with to the return value + + // TODO handle iaddress & isize + rxBufferLength += itc_msg.xferred; + itc_msg.flags = 0; + + return rxBufferLength; +} + +uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity, + uint8_t sendStop) { + // TODO shouldn't this set flag |= I2C_MSG_10BIT_ADDR ??? + return requestFrom((uint8_t) address, (uint8_t) quantity, (uint32_t) 0, + (uint8_t) 0, sendStop); +} + +uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity) { + return requestFrom((uint8_t) address, (uint8_t) quantity, (uint32_t) 0, + (uint8_t) 0, (uint8_t) true); +} + +uint8_t TwoWire::requestFrom(int address, int quantity) { + return requestFrom((uint8_t) address, (uint8_t) quantity, (uint32_t) 0, + (uint8_t) 0, (uint8_t) true); +} + +uint8_t TwoWire::requestFrom(int address, int quantity, + int sendStop) { + return requestFrom((uint8_t) address, (uint8_t) quantity, (uint32_t) 0, + (uint8_t) 0, (bool) sendStop); +} + +void TwoWire::beginTransmission(uint8_t address) { + + // indicate that we are transmitting + transmitting = 1; + + // reset tx buffer iterator vars + txBufferIndex = 0; + txBufferLength = 0; + + itc_msg.addr = address; + itc_msg.data = &txBuffer[txBufferIndex]; + itc_msg.length = 0; + itc_msg.flags = 0; + +} + +void TwoWire::beginTransmission(int address) { + beginTransmission((uint8_t) address); +} + +// +// Originally, 'endTransmission' was an f(void) function. +// It has been modified to take one parameter indicating +// whether or not a STOP should be performed on the bus. +// Calling endTransmission(false) allows a sketch to +// perform a repeated start. +// +// WARNING: Nothing in the library keeps track of whether +// the bus tenure has been properly ended with a STOP. It +// is very possible to leave the bus in a hung state if +// no call to endTransmission(true) is made. Some I2C +// devices will behave oddly if they do not see a STOP. +// +uint8_t TwoWire::endTransmission(uint8_t sendStop) { + //UNUSED(sendStop); + int8_t ret = 4; + + if (master == true) { + + itc_msg.data = txBuffer; + itc_msg.length = txBufferLength; + itc_msg.flags = 0; + ret = process(sendStop); // Changed so that the return value from process is returned by this function see also the return line below + txBufferIndex = 0; + + // reset Tx buffer + resetTxBuffer(); // TODO why? isn't this just unesssesary? + + // reset tx buffer iterator vars + txBufferIndex = 0; + txBufferLength = 0; + + // indicate that we are done transmitting + transmitting = 0; + } + + return ret; +} + +// This provides backwards compatibility with the original +// definition, and expected behaviour, of endTransmission +// + +uint8_t TwoWire::endTransmission(void) { + return endTransmission(true); +} + +// must be called in: +// slave tx event callback +// or after beginTransmission(address) +size_t TwoWire::write(uint8_t data) { + if (!transmitting && master) { + return 0; + } else { + // in master transmitter mode or slave tx event callback + allocateTxBuffer(txBufferLength + 1); + // error if no memory block available to allocate the buffer + if (txBuffer == nullptr) { + setWriteError(); + return 0; + } + // put byte in tx buffer + txBuffer[txBufferIndex] = data; + ++txBufferIndex; + // update amount in buffer + txBufferLength = txBufferIndex; + } + return 1; +} + +/** + * @brief This function must be called in slave Tx event callback or after + * beginTransmission() and before endTransmission(). + * @param pdata: pointer to the buffer data + * @param quantity: number of bytes to write + * @retval number of bytes ready to write. + */ +size_t TwoWire::write(const uint8_t *data, size_t quantity) { + if (!transmitting && master) { + return 0; + } else { + // in master transmitter mode or slave Tx event callback + allocateTxBuffer(txBufferLength + quantity); + // error if no memory block available to allocate the buffer + if (txBuffer == nullptr) { + setWriteError(); + return 0; + } + // put bytes in tx buffer + memcpy(&(txBuffer[txBufferIndex]), data, quantity); + txBufferIndex = txBufferIndex + quantity; + // update amount in buffer + txBufferLength = txBufferIndex; + return quantity; + } + return 0; +} + +// must be called in: +// slave rx event callback +// or after requestFrom(address, numBytes) +int TwoWire::available(void) { + return rxBufferLength - rxBufferIndex; +} + +// must be called in: +// slave rx event callback +// or after requestFrom(address, numBytes) +int TwoWire::read(void) { + int value = -1; + + // get each successive byte on each call + if (rxBufferIndex < rxBufferLength) { + value = rxBuffer[rxBufferIndex]; + ++rxBufferIndex; + + /* Commented as not I think it is not useful + * but kept to show that it is possible to + * reset rx buffer when no more data available */ + /*if(rxBufferIndex == rxBufferLength) { + resetRxBuffer(); + }*/ + } + + return value; +} + +// must be called in: +// slave rx event callback +// or after requestFrom(address, numBytes) +int TwoWire::peek(void) { + int value = -1; + + if (rxBufferIndex < rxBufferLength) { + value = rxBuffer[rxBufferIndex]; + } + + return value; +} + +void TwoWire::flush(void) { + rxBufferIndex = 0; + rxBufferLength = 0; + resetRxBuffer(); + txBufferIndex = 0; + txBufferLength = 0; + resetTxBuffer(); +} + +// behind the scenes function that is called when data is received +void __attribute__((always_inline)) TwoWire::onReceiveService(i2c_msg* msg) { + // don't bother if user hasn't registered a callback + if (!user_onReceive) { + return; + } + + // don't bother if rx buffer is in use by a master requestFrom() op + // i know this drops data, but it allows for slight stupidity + // meaning, they may not have read all the master requestFrom() data yet + if (rxBufferIndex < rxBufferLength) { + return; + } + // copy twi rx buffer into local read buffer + // this enables new reads to happen in parallel + // + // TODO: Something is strange here, isn't msg->data==rxBuffer? nope, itsnot + // + memcpy(rxBuffer, msg->data, msg->length); + // set rx iterator vars + rxBufferIndex = 0; + rxBufferLength = msg->length; + // alert user program + user_onReceive(msg->length); +} + +// behind the scenes function that is called when data is requested +void __attribute__((always_inline)) TwoWire::onRequestService(i2c_msg* msg) { + // don't bother if user hasn't registered a callback + if (!user_onRequest) { + return; + } + + // reset tx buffer iterator vars + // !!! this will kill any pending pre-master sendTo() activity + txBufferIndex = 0; + txBufferLength = 0; + // alert user program + user_onRequest(); + + // update i2c_msg + msg->data = txBuffer; + msg->length = txBufferLength; + msg->xferred = 0; +} + +// sets function called on slave write +void TwoWire::onReceive(void (*function)(int)) { + user_onReceive = function; +} + +// sets function called on slave read +void TwoWire::onRequest(void (*function)(void)) { + user_onRequest = function; +} + +/** + * @brief Allocate the Rx/Tx buffer to the requested length if needed + * @note Minimum allocated size is BUFFER_LENGTH) + * @param length: number of bytes to allocate + */ +inline void TwoWire::allocateRxBuffer(size_t length) { + // By default we allocate BUFFER_LENGTH bytes. It is the min size of the buffer. + if (length < BUFFER_LENGTH) { + length = BUFFER_LENGTH; + } + if (rxBufferAllocated < length) { + rxBuffer = (uint8_t *) realloc(rxBuffer, length * sizeof(uint8_t)); + rxBufferAllocated = (rxBuffer != nullptr) ? length : 0; + } +} + +inline void TwoWire::allocateTxBuffer(size_t length) { + // By default we allocate BUFFER_LENGTH bytes. It is the min size of the buffer. + if (length < BUFFER_LENGTH) { + length = BUFFER_LENGTH; + } + if (txBufferAllocated < length) { + txBuffer = (uint8_t *) realloc(txBuffer, length * sizeof(uint8_t)); + txBufferAllocated = (txBuffer != nullptr) ? length : 0; + } +} + +/** + * @brief Reset Rx/Tx buffer content to 0 + */ +inline void TwoWire::resetRxBuffer(void) { + if (rxBuffer != nullptr) + memset(rxBuffer, 0, rxBufferAllocated); +} + +inline void TwoWire::resetTxBuffer(void) { + if (txBuffer != nullptr) + memset(txBuffer, 0, txBufferAllocated); +} + + +// Preinstantiate Objects ////////////////////////////////////////////////////// +TwoWire& Wire = TwoWire::getInstance(); //SCL:D14 SDA:D15 +#if WIRE_INTERFACES_COUNT > 1 +TwoWire& Wire1 = TwoWire::getInstance1(); //SCL: D1 SDA: D0 +#endif + +// Static methods ////////////////////////////////////////////////////////////// + +TwoWire& TwoWire::getInstance(){ + static TwoWire instance(I2C1); + return instance; +} + +#if WIRE_INTERFACES_COUNT > 1 +TwoWire& TwoWire::getInstance1(){ + static TwoWire instance(I2C2); + return instance; +} +#endif + +// onRequestServiceX and onReceiveServiceX can't be inline since they +// are exclusively called via a function pointer +void TwoWire::onRequestService1(i2c_msg* msg) { + Wire.onRequestService(msg); +} + +void TwoWire::onReceiveService1(i2c_msg* msg) { + Wire.onReceiveService(msg); +} + +#if WIRE_INTERFACES_COUNT > 1 +void TwoWire::onRequestService2(i2c_msg* msg) { + Wire1.onRequestService(msg); +} +void TwoWire::onReceiveService2(i2c_msg* msg) { + Wire1.onReceiveService(msg); +} +#endif diff --git a/STM32F1/libraries/WireSlave/src/Wire_slave.h b/STM32F1/libraries/WireSlave/src/Wire_slave.h index dbe2a4e..ff71228 100644 --- a/STM32F1/libraries/WireSlave/src/Wire_slave.h +++ b/STM32F1/libraries/WireSlave/src/Wire_slave.h @@ -1,78 +1,149 @@ -/****************************************************************************** - * The MIT License - * - * Copyright (c) 2010 LeafLabs LLC. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - *****************************************************************************/ - -/** - * @file Wire.h - * @author Trystan Jones - * @brief Wire library, uses the hardware I2C available in the Maple to - * interact with I2C slave devices. - */ - /* - * Library created by crenn to use the new WireBase system and allow Arduino - * users easy interaction with the I2C Hardware in a familiar method. + TwoWire.h - TWI/I2C library for Arduino & Wiring + Copyright (c) 2006 Nicholas Zambetti. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Modified 2012 by Todd Krein (todd@krein.org) to implement repeated starts */ -#ifndef _TWOWIRE_H_ -#define _TWOWIRE_H_ +#ifndef TwoWire_h +#define TwoWire_h -#include "utility/WireBase_slave.h" -#include "wirish.h" +#include +#include "Stream.h" +#include "Arduino.h" #include -class TwoWire : public WireBase { + +// WIRE_HAS_END means Wire has end() +#ifndef WIRE_HAS_END +#define WIRE_HAS_END 1 +#endif + +#ifndef WIRE_INTERFACES_COUNT +#define WIRE_INTERFACES_COUNT 2 +#endif + +/* return codes from endTransmission() */ +typedef enum EndTranmissionCodes { + SUCCESS = 0, /* transmission was successful */ + EDATA = 1, /* too much data */ + ENACKADDR = 2, /* received nack on transmit of address */ + ENACKTRNS = 3, /* received nack on transmit of data */ + EOTHER = 4, /* other error */ +} EndTranmissionCodes; + +class TwoWire: public Stream { private: - i2c_dev* sel_hard; - uint8 dev_flags; -protected: - /* - * Processes the incoming I2C message defined by WireBase to the - * hardware. If an error occured, restart the I2C device. - */ - uint8 process(uint8); - uint8 process(); + i2c_dev* sel_hard; + + uint8_t *rxBuffer; // lazy allocation + uint8_t rxBufferAllocated; + uint8_t rxBufferIndex; + uint8_t rxBufferLength; + + uint8_t *txBuffer; // lazy allocation + uint8_t txBufferAllocated; + uint8_t txBufferIndex; + uint8_t txBufferLength; + + uint8_t transmitting; + + bool master; + + uint8 dev_flags; + i2c_msg itc_msg; + i2c_msg itc_slave_msg; + + void (*user_onRequest)(void); + void (*user_onReceive)(int); + + void allocateRxBuffer(size_t length); + void allocateTxBuffer(size_t length); + + void resetRxBuffer(void); + void resetTxBuffer(void); + uint8 process(bool stop = true); // wrapper for i2c_master_xfer + + inline void __attribute__((always_inline)) onReceiveService(i2c_msg* msg); + inline void __attribute__((always_inline)) onRequestService(i2c_msg* msg); + + static void onRequestService1(i2c_msg*); + static void onReceiveService1(i2c_msg*); + #if WIRE_INTERFACES_COUNT > 1 + static void onRequestService2(i2c_msg*); + static void onReceiveService2(i2c_msg*); + #endif + + TwoWire(i2c_dev* i2cDevice); + TwoWire() = delete; + TwoWire(const TwoWire&) = delete; + TwoWire& operator=(const TwoWire&) = delete; + TwoWire(TwoWire&&) = delete; + TwoWire& operator=(TwoWire&&) = delete; + public: - /* - * Check if devsel is within range and enable selected I2C interface with - * passed flags - */ - TwoWire(uint8, uint8 = 0); + static TwoWire& getInstance(); + #if WIRE_INTERFACES_COUNT > 1 + static TwoWire& getInstance1(); + #endif - /* - * Shuts down (disables) the hardware I2C - */ - void end(); + void begin(); + void begin(uint8_t); + void begin(int); + void end(); + void setClock(uint32_t); + void beginTransmission(uint8_t); + void beginTransmission(int); + uint8_t endTransmission(void); + uint8_t endTransmission(uint8_t); - void setClock(uint32_t frequencyHz); - /* - * Disables the I2C device and remove the device address. - */ - ~TwoWire(); + uint8_t requestFrom(uint8_t, uint8_t); + uint8_t requestFrom(uint8_t, uint8_t, uint8_t); + uint8_t requestFrom(uint8_t, uint8_t, uint32_t, uint8_t, uint8_t); + uint8_t requestFrom(int, int); + uint8_t requestFrom(int, int, int); - void begin(uint8 = 0x00); + virtual size_t write(uint8_t); + virtual size_t write(const uint8_t *, size_t); + virtual int available(void); + virtual int read(void); + virtual int peek(void); + virtual void flush(void); + void onReceive(void (*)(int)); + void onRequest(void (*)(void)); + + inline size_t write(unsigned long n) { + return write((uint8_t) n); + } + inline size_t write(long n) { + return write((uint8_t) n); + } + inline size_t write(unsigned int n) { + return write((uint8_t) n); + } + inline size_t write(int n) { + return write((uint8_t) n); + } + using Print::write; }; -extern TwoWire Wire; -#endif // _TWOWIRE_H_ + +extern TwoWire& Wire; +#if WIRE_INTERFACES_COUNT > 1 +extern TwoWire& Wire1; +#endif + +#endif // TwoWire_h diff --git a/STM32F1/libraries/WireSlave/src/Wire_slave.h.gch b/STM32F1/libraries/WireSlave/src/Wire_slave.h.gch new file mode 100644 index 0000000000000000000000000000000000000000..5a6345078e7abad4b9211a296cfa52568e2ed238 GIT binary patch literal 9475 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 Y;dI<1)bAmJrq!61Ti)JEJwtc@2OMIdI{*Lx literal 0 HcmV?d00001 diff --git a/STM32F1/libraries/WireSlave/src/i2c_slave.c b/STM32F1/libraries/WireSlave/src/i2c_slave.c index 865949b..82ade9a 100644 --- a/STM32F1/libraries/WireSlave/src/i2c_slave.c +++ b/STM32F1/libraries/WireSlave/src/i2c_slave.c @@ -158,6 +158,7 @@ void i2c_bus_reset(const i2c_dev *dev) { * @param dev Device to initialize. */ void i2c_init(i2c_dev *dev) { + rcc_reset_dev(dev->clk_id); rcc_clk_enable(dev->clk_id); _i2c_irq_priority_fixup(dev); @@ -197,8 +198,10 @@ void i2c_master_enable(i2c_dev *dev, uint32 flags) { i2c_init(dev); i2c_config_gpios(dev); - /* Configure clock and rise time */ - set_ccr_trise(dev, flags); + /* Configure clock and rise time, but only if in master mode */ + if (!(flags & (I2C_SLAVE_DUAL_ADDRESS|I2C_SLAVE_GENERAL_CALL))) { + set_ccr_trise(dev, flags); + } /* Enable event and buffer interrupts */ nvic_irq_enable(dev->ev_nvic_line); @@ -245,8 +248,9 @@ void i2c_master_enable(i2c_dev *dev, uint32 flags) { * Callback will be called before tx */ void i2c_slave_enable(i2c_dev *dev, uint32 flags) { + // TODO: Figure out why i2c_disable(I2C2) causes a crash when I2C1 is enabled i2c_disable(dev); - i2c_master_enable(dev, dev->config_flags | flags); + i2c_master_enable(dev, flags); } /** @@ -329,7 +333,8 @@ static inline int32 wait_for_state_change(i2c_dev *dev, */ /* - * IRQ handler for I2C master. Handles transmission/reception. + * IRQ handler for I2C master and slave. + * Handles transmission/reception. */ void _i2c_irq_handler(i2c_dev *dev) { /* WTFs: @@ -676,7 +681,7 @@ void _i2c_irq_error_handler(i2c_dev *dev) { I2C_SR1_OVR); /* Are we in slave mode? */ - if ((dev->regs->SR2 & I2C_SR2_MSL) != I2C_SR2_MSL) { + if (dev->config_flags & (I2C_SLAVE_DUAL_ADDRESS|I2C_SLAVE_GENERAL_CALL)) { /* Check to see if the master device did a NAK on the last bit * This is perfectly valid for a master to do this on the bus. * We ignore this. Any further error processing takes us into dead diff --git a/STM32F1/libraries/WireSlave/src/utility/WireBase_slave.cpp b/STM32F1/libraries/WireSlave/src/utility/WireBase_slave.cpp deleted file mode 100644 index a309211..0000000 --- a/STM32F1/libraries/WireSlave/src/utility/WireBase_slave.cpp +++ /dev/null @@ -1,145 +0,0 @@ -/****************************************************************************** - * The MIT License - * - * Copyright (c) 2010 LeafLabs LLC. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - *****************************************************************************/ - -/** - * @file WireBase.cpp - * @author Trystan Jones - * @brief Wire library, following the majority of the interface from Arduino. - * Provides a 'standard' interface to I2C (two-wire) communication for - * derived classes. - */ - -/* - * Library created by crenn to allow a system which would provide users the - * 'standardised' Arduino method for interfacing with I2C devices regardless of - * whether it is I2C hardware or emulating software. - */ - -#include "WireBase_slave.h" -#include "wirish.h" - -void WireBase::begin(uint8 self_addr) { - tx_buf_idx = 0; - tx_buf_overflow = false; - rx_buf_idx = 0; - rx_buf_len = 0; -} - -void WireBase::beginTransmission(uint8 slave_address) { - itc_msg.addr = slave_address; - itc_msg.data = &tx_buf[tx_buf_idx]; - itc_msg.length = 0; - itc_msg.flags = 0; -} - -void WireBase::beginTransmission(int slave_address) { - beginTransmission((uint8)slave_address); -} - -uint8 WireBase::endTransmission(bool stop) { - uint8 retVal; - if (tx_buf_overflow) { - return EDATA; - } - retVal = process(stop);// Changed so that the return value from process is returned by this function see also the return line below - tx_buf_idx = 0; - tx_buf_overflow = false; - return retVal;//SUCCESS; -} - -uint8 WireBase::endTransmission(){ - endTransmission(true); -} - -//TODO: Add the ability to queue messages (adding a boolean to end of function -// call, allows for the Arduino style to stay while also giving the flexibility -// to bulk send -uint8 WireBase::requestFrom(uint8 address, int num_bytes) { - if (num_bytes > BUFFER_LENGTH) { - num_bytes = BUFFER_LENGTH; - } - itc_msg.addr = address; - itc_msg.flags = I2C_MSG_READ; - itc_msg.length = num_bytes; - itc_msg.data = &rx_buf[rx_buf_idx]; - process(); - rx_buf_len += itc_msg.xferred; - itc_msg.flags = 0; - return rx_buf_len; -} - -uint8 WireBase::requestFrom(int address, int numBytes) { - return WireBase::requestFrom((uint8)address, numBytes); -} - -void WireBase::write(uint8 value) { - if (tx_buf_idx == BUFFER_LENGTH) { - tx_buf_overflow = true; - return; - } - tx_buf[tx_buf_idx++] = value; - itc_msg.length++; -} - -void WireBase::write(uint8* buf, int len) { - for (uint8 i = 0; i < len; i++) { - write(buf[i]); - } -} - -void WireBase::write(int value) { - write((uint8)value); -} - -void WireBase::write(int* buf, int len) { - write((uint8*)buf, (uint8)len); -} - -void WireBase::write(char* buf) { - uint8 *ptr = (uint8*)buf; - while (*ptr) { - write(*ptr); - ptr++; - } -} - -uint8 WireBase::available() { - return rx_buf_len - rx_buf_idx; -} - -uint8 WireBase::read() { - if (rx_buf_idx == rx_buf_len) { - rx_buf_idx = 0; - rx_buf_len = 0; - return 0; - } else if (rx_buf_idx == (rx_buf_len-1)) { - uint8 temp = rx_buf[rx_buf_idx]; - rx_buf_idx = 0; - rx_buf_len = 0; - return temp; - } - return rx_buf[rx_buf_idx++]; -} diff --git a/STM32F1/libraries/WireSlave/src/utility/WireBase_slave.h b/STM32F1/libraries/WireSlave/src/utility/WireBase_slave.h deleted file mode 100644 index 31f3f8c..0000000 --- a/STM32F1/libraries/WireSlave/src/utility/WireBase_slave.h +++ /dev/null @@ -1,145 +0,0 @@ -/****************************************************************************** - * The MIT License - * - * Copyright (c) 2010 LeafLabs LLC. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - *****************************************************************************/ - -/** - * @file WireBase.h - * @author Trystan Jones - * @brief Wire library, following the majority of the interface from Arduino. - * Provides a 'standard' interface to I2C (two-wire) communication for - * derived classes. - */ - -/* - * Library created by crenn to allow a system which would provide users the - * 'standardised' Arduino method for interfacing with I2C devices regardless of - * whether it is I2C hardware or emulating software. - */ - -#ifndef _WIREBASE_H_ -#define _WIREBASE_H_ - -#include "wirish.h" -#include - -#define BUFFER_LENGTH 32 - -/* return codes from endTransmission() */ -#define SUCCESS 0 /* transmission was successful */ -#define EDATA 1 /* too much data */ -#define ENACKADDR 2 /* received nack on transmit of address */ -#define ENACKTRNS 3 /* received nack on transmit of data */ -#define EOTHER 4 /* other error */ - -class WireBase { // Abstraction is awesome! -protected: - i2c_msg itc_msg; - uint8 rx_buf[BUFFER_LENGTH]; /* receive buffer */ - uint8 rx_buf_idx; /* first unread idx in rx_buf */ - uint8 rx_buf_len; /* number of bytes read */ - - uint8 tx_buf[BUFFER_LENGTH]; /* transmit buffer */ - uint8 tx_buf_idx; // next idx available in tx_buf, -1 overflow - boolean tx_buf_overflow; - - // Force derived classes to define process function - virtual uint8 process(uint8) = 0; - virtual uint8 process() = 0; -public: - WireBase() {} - ~WireBase() {} - - /* - * Initialises the class interface - */ - // Allow derived classes to overwrite begin function - virtual void begin(uint8 = 0x00); - - /* - * Sets up the transmission message to be processed - */ - void beginTransmission(uint8); - - /* - * Allow only 8 bit addresses to be used - */ - void beginTransmission(int); - - /* - * Call the process function to process the message if the TX - * buffer has not overflowed. - */ - uint8 endTransmission(bool); - uint8 endTransmission(void); - - /* - * Request bytes from a slave device and process the request, - * storing into the receiving buffer. - */ - uint8 requestFrom(uint8, int); - - /* - * Allow only 8 bit addresses to be used when requesting bytes - */ - uint8 requestFrom(int, int); - - /* - * Stack up bytes to be sent when transmitting - */ - void write(uint8); - - /* - * Stack up bytes from the array to be sent when transmitting - */ - void write(uint8*, int); - - /* - * Ensure that a sending data will only be 8-bit bytes - */ - void write(int); - - /* - * Ensure that an array sending data will only be 8-bit bytes - */ - void write(int*, int); - - /* - * Stack up bytes from a string to be sent when transmitting - */ - void write(char*); - - /* - * Return the amount of bytes that is currently in the receiving buffer - */ - uint8 available(); - - /* - * Return the value of byte in the receiving buffer that is currently being - * pointed to - */ - uint8 read(); -}; - -#endif // _WIREBASE_H_ From 4ad4de080fd87bcdb0f176959bd74c8293ecc3e3 Mon Sep 17 00:00:00 2001 From: lacklustrlabs Date: Fri, 22 Dec 2017 20:04:24 +0100 Subject: [PATCH 12/16] Saved some 50K flash memory by modifying the singleton implementation --- STM32F1/libraries/WireSlave/src/Wire_slave.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/STM32F1/libraries/WireSlave/src/Wire_slave.cpp b/STM32F1/libraries/WireSlave/src/Wire_slave.cpp index 75e753f..2cdb157 100644 --- a/STM32F1/libraries/WireSlave/src/Wire_slave.cpp +++ b/STM32F1/libraries/WireSlave/src/Wire_slave.cpp @@ -492,14 +492,20 @@ TwoWire& Wire1 = TwoWire::getInstance1(); //SCL: D1 SDA: D0 // Static methods ////////////////////////////////////////////////////////////// TwoWire& TwoWire::getInstance(){ - static TwoWire instance(I2C1); - return instance; + static TwoWire* instance = nullptr; + if (!instance) { + instance = new TwoWire(I2C1); + } + return *instance; } #if WIRE_INTERFACES_COUNT > 1 TwoWire& TwoWire::getInstance1(){ - static TwoWire instance(I2C2); - return instance; + static TwoWire* instance = nullptr; + if (!instance) { + instance = new TwoWire(I2C2); + } + return *instance; } #endif From 01c23b6a5828607734f872ddf5861f5df2797175 Mon Sep 17 00:00:00 2001 From: lacklustrlabs Date: Fri, 22 Dec 2017 20:33:00 +0100 Subject: [PATCH 13/16] Changed type of transmitting to bool (from uint8_t) --- STM32F1/libraries/WireSlave/src/Wire_slave.cpp | 6 +++--- STM32F1/libraries/WireSlave/src/Wire_slave.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/STM32F1/libraries/WireSlave/src/Wire_slave.cpp b/STM32F1/libraries/WireSlave/src/Wire_slave.cpp index 2cdb157..9bb9897 100644 --- a/STM32F1/libraries/WireSlave/src/Wire_slave.cpp +++ b/STM32F1/libraries/WireSlave/src/Wire_slave.cpp @@ -69,7 +69,7 @@ void TwoWire::begin(uint8_t address){ txBufferLength = 0; allocateTxBuffer(BUFFER_LENGTH); - transmitting = 0; + transmitting = false; master = (address == MASTER_ADDRESS); @@ -220,7 +220,7 @@ uint8_t TwoWire::requestFrom(int address, int quantity, void TwoWire::beginTransmission(uint8_t address) { // indicate that we are transmitting - transmitting = 1; + transmitting = true; // reset tx buffer iterator vars txBufferIndex = 0; @@ -270,7 +270,7 @@ uint8_t TwoWire::endTransmission(uint8_t sendStop) { txBufferLength = 0; // indicate that we are done transmitting - transmitting = 0; + transmitting = false; } return ret; diff --git a/STM32F1/libraries/WireSlave/src/Wire_slave.h b/STM32F1/libraries/WireSlave/src/Wire_slave.h index ff71228..131aceb 100644 --- a/STM32F1/libraries/WireSlave/src/Wire_slave.h +++ b/STM32F1/libraries/WireSlave/src/Wire_slave.h @@ -60,7 +60,7 @@ private: uint8_t txBufferIndex; uint8_t txBufferLength; - uint8_t transmitting; + bool transmitting; bool master; From b9dbeb69d9dee7330435af9b5e30e99be6423265 Mon Sep 17 00:00:00 2001 From: lacklustrlabs Date: Fri, 29 Dec 2017 12:04:29 +0100 Subject: [PATCH 14/16] Fixed minor example issues --- .../i2c_libmaple_slave_reader/i2c_libmaple_slave_reader.ino | 2 +- .../WireSlave/examples/slave_receiver/slave_receiver.ino | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave_reader/i2c_libmaple_slave_reader.ino b/STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave_reader/i2c_libmaple_slave_reader.ino index a63ff3c..fd059c1 100644 --- a/STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave_reader/i2c_libmaple_slave_reader.ino +++ b/STM32F1/libraries/WireSlave/examples/i2c_libmaple_slave_reader/i2c_libmaple_slave_reader.ino @@ -53,7 +53,7 @@ void functx(i2c_msg *msg){ void setup() { Serial.begin(115200); - Serial.println("I2C Slave example"); + Serial.println("libmaple I2C slave reader example"); // attach the buffer msg.data = buffer; diff --git a/STM32F1/libraries/WireSlave/examples/slave_receiver/slave_receiver.ino b/STM32F1/libraries/WireSlave/examples/slave_receiver/slave_receiver.ino index 5d71b9a..bf9f255 100644 --- a/STM32F1/libraries/WireSlave/examples/slave_receiver/slave_receiver.ino +++ b/STM32F1/libraries/WireSlave/examples/slave_receiver/slave_receiver.ino @@ -11,7 +11,6 @@ #include -#define Serial Serial1 void setup(){ Serial.begin(115200); // start serial for output From 4e820c3649fbe4238bdef67dad393967a76b6873 Mon Sep 17 00:00:00 2001 From: lacklustrlabs Date: Fri, 29 Dec 2017 12:13:17 +0100 Subject: [PATCH 15/16] Full method signatures in header file. I don't understand why anyone wants to remove useful API information from the header file. CPP files describes implementation details, header files describes the API. --- STM32F1/libraries/WireSlave/src/Wire_slave.h | 50 ++++++++++---------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/STM32F1/libraries/WireSlave/src/Wire_slave.h b/STM32F1/libraries/WireSlave/src/Wire_slave.h index 131aceb..a99ab41 100644 --- a/STM32F1/libraries/WireSlave/src/Wire_slave.h +++ b/STM32F1/libraries/WireSlave/src/Wire_slave.h @@ -69,7 +69,7 @@ private: i2c_msg itc_slave_msg; void (*user_onRequest)(void); - void (*user_onReceive)(int); + void (*user_onReceive)(int quantity); void allocateRxBuffer(size_t length); void allocateTxBuffer(size_t length); @@ -96,47 +96,49 @@ private: TwoWire& operator=(TwoWire&&) = delete; public: + // return the 'Wire' instance (using I2C1) static TwoWire& getInstance(); #if WIRE_INTERFACES_COUNT > 1 + // return the 'Wire1' instance (using I2C2) static TwoWire& getInstance1(); #endif - void begin(); - void begin(uint8_t); - void begin(int); + void begin(); // master mode + void begin(uint8_t myAddress); //slave mode + void begin(int myAddress); //slave mode void end(); - void setClock(uint32_t); - void beginTransmission(uint8_t); - void beginTransmission(int); + void setClock(uint32_t frequencyHz); + void beginTransmission(uint8_t slaveAddress); + void beginTransmission(int slaveAddress); uint8_t endTransmission(void); - uint8_t endTransmission(uint8_t); + uint8_t endTransmission(uint8_t sendStop); - uint8_t requestFrom(uint8_t, uint8_t); - uint8_t requestFrom(uint8_t, uint8_t, uint8_t); - uint8_t requestFrom(uint8_t, uint8_t, uint32_t, uint8_t, uint8_t); - uint8_t requestFrom(int, int); - uint8_t requestFrom(int, int, int); + uint8_t requestFrom(uint8_t slaveAddress, uint8_t quantity); + uint8_t requestFrom(uint8_t slaveAddress, uint8_t quantity, uint8_t sendStop); + uint8_t requestFrom(uint8_t slaveAddress, uint8_t num_bytes, uint32_t iaddress, uint8_t isize, uint8_t sendStop); + uint8_t requestFrom(int slaveAddress, int quantity); + uint8_t requestFrom(int slaveAddress, int quantity, int sendStop); - virtual size_t write(uint8_t); - virtual size_t write(const uint8_t *, size_t); + virtual size_t write(uint8_t data); + virtual size_t write(const uint8_t *data, size_t quantity); virtual int available(void); virtual int read(void); virtual int peek(void); virtual void flush(void); - void onReceive(void (*)(int)); + void onReceive(void (*)(int quantity)); void onRequest(void (*)(void)); - inline size_t write(unsigned long n) { - return write((uint8_t) n); + inline size_t write(unsigned long data) { + return write((uint8_t) data); } - inline size_t write(long n) { - return write((uint8_t) n); + inline size_t write(long data) { + return write((uint8_t) data); } - inline size_t write(unsigned int n) { - return write((uint8_t) n); + inline size_t write(unsigned int data) { + return write((uint8_t) data); } - inline size_t write(int n) { - return write((uint8_t) n); + inline size_t write(int data) { + return write((uint8_t) data); } using Print::write; }; From daf62cafcaf044836945a6d6553180b8da00e927 Mon Sep 17 00:00:00 2001 From: lacklustrlabs Date: Fri, 29 Dec 2017 12:15:26 +0100 Subject: [PATCH 16/16] Removed a redundant buffer constraint --- STM32F1/libraries/WireSlave/src/Wire_slave.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/STM32F1/libraries/WireSlave/src/Wire_slave.cpp b/STM32F1/libraries/WireSlave/src/Wire_slave.cpp index 9bb9897..5fb84f5 100644 --- a/STM32F1/libraries/WireSlave/src/Wire_slave.cpp +++ b/STM32F1/libraries/WireSlave/src/Wire_slave.cpp @@ -177,10 +177,6 @@ uint8 TwoWire::requestFrom(uint8_t address, uint8_t num_bytes, rxBufferIndex = 0; rxBufferLength = 0; - if (num_bytes > BUFFER_LENGTH) { - num_bytes = BUFFER_LENGTH; - } - itc_msg.addr = address; itc_msg.flags = I2C_MSG_READ; itc_msg.length = num_bytes; @@ -211,8 +207,7 @@ uint8_t TwoWire::requestFrom(int address, int quantity) { (uint8_t) 0, (uint8_t) true); } -uint8_t TwoWire::requestFrom(int address, int quantity, - int sendStop) { +uint8_t TwoWire::requestFrom(int address, int quantity, int sendStop) { return requestFrom((uint8_t) address, (uint8_t) quantity, (uint32_t) 0, (uint8_t) 0, (bool) sendStop); }

h#jNeg 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 literal 0 HcmV?d00001 diff --git a/STM32F1/libraries/WireSlave/src/Wire_slave.cpp b/STM32F1/libraries/WireSlave/src/Wire_slave.cpp new file mode 100644 index 0000000..93cc55f --- /dev/null +++ b/STM32F1/libraries/WireSlave/src/Wire_slave.cpp @@ -0,0 +1,106 @@ +/****************************************************************************** + * The MIT License + * + * Copyright (c) 2010 LeafLabs LLC. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + *****************************************************************************/ + +/** + * @file TwoWire.cpp + * @author Trystan Jones + * @brief Wire library, uses the hardware I2C available in the Maple to + * interact with I2C slave devices. + */ + +/* + * Library created by crenn to use the new WireBase system and allow Arduino + * users easy interaction with the I2C Hardware in a familiar method. + */ + +#include "Wire_slave.h" + +uint8 TwoWire::process(uint8 stop) { + int8 res = i2c_master_xfer(sel_hard, &itc_msg, 1, 0); + if (res == I2C_ERROR_PROTOCOL) { + if (sel_hard->error_flags & I2C_SR1_AF) { /* NACK */ + res = (sel_hard->error_flags & I2C_SR1_ADDR ? ENACKADDR : + ENACKTRNS); + } else if (sel_hard->error_flags & I2C_SR1_OVR) { /* Over/Underrun */ + res = EDATA; + } else { /* Bus or Arbitration error */ + res = EOTHER; + } + i2c_disable(sel_hard); + i2c_master_enable(sel_hard, (I2C_BUS_RESET | dev_flags)); + } + return res; +} + +uint8 TwoWire::process(){ + return process(true); +} + +// TODO: Add in Error Handling if devsel is out of range for other Maples +TwoWire::TwoWire(uint8 dev_sel, uint8 flags) { + if (dev_sel == 1) { + sel_hard = I2C1; + } else if (dev_sel == 2) { + sel_hard = I2C2; + } else { + ASSERT(1); + } + dev_flags = flags; +} + +TwoWire::~TwoWire() { + i2c_disable(sel_hard); + sel_hard = 0; +} + +void TwoWire::begin(uint8 self_addr) { + i2c_master_enable(sel_hard, dev_flags); +} + +void TwoWire::end() { + i2c_disable(sel_hard); + sel_hard = 0; +} + +void TwoWire::setClock(uint32_t frequencyHz) +{ + switch(frequencyHz) + { + case 400000: + dev_flags |= I2C_FAST_MODE;// set FAST_MODE bit + break; + case 100000: + default: + dev_flags &= ~I2C_FAST_MODE;// clear FAST_MODE bit + break; + } + if (sel_hard->regs->CR1 & I2C_CR1_PE){ + i2c_disable(sel_hard); + i2c_master_enable(sel_hard, dev_flags); + } +} + +TwoWire Wire(1); diff --git a/STM32F1/libraries/WireSlave/src/Wire_slave.h b/STM32F1/libraries/WireSlave/src/Wire_slave.h new file mode 100644 index 0000000..dbe2a4e --- /dev/null +++ b/STM32F1/libraries/WireSlave/src/Wire_slave.h @@ -0,0 +1,78 @@ +/****************************************************************************** + * The MIT License + * + * Copyright (c) 2010 LeafLabs LLC. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + *****************************************************************************/ + +/** + * @file Wire.h + * @author Trystan Jones + * @brief Wire library, uses the hardware I2C available in the Maple to + * interact with I2C slave devices. + */ + +/* + * Library created by crenn to use the new WireBase system and allow Arduino + * users easy interaction with the I2C Hardware in a familiar method. + */ + +#ifndef _TWOWIRE_H_ +#define _TWOWIRE_H_ + +#include "utility/WireBase_slave.h" +#include "wirish.h" +#include + +class TwoWire : public WireBase { +private: + i2c_dev* sel_hard; + uint8 dev_flags; +protected: + /* + * Processes the incoming I2C message defined by WireBase to the + * hardware. If an error occured, restart the I2C device. + */ + uint8 process(uint8); + uint8 process(); +public: + /* + * Check if devsel is within range and enable selected I2C interface with + * passed flags + */ + TwoWire(uint8, uint8 = 0); + + /* + * Shuts down (disables) the hardware I2C + */ + void end(); + + void setClock(uint32_t frequencyHz); + /* + * Disables the I2C device and remove the device address. + */ + ~TwoWire(); + + void begin(uint8 = 0x00); +}; +extern TwoWire Wire; +#endif // _TWOWIRE_H_ diff --git a/STM32F1/libraries/WireSlave/src/Wire_slave.h.gch b/STM32F1/libraries/WireSlave/src/Wire_slave.h.gch new file mode 100644 index 0000000000000000000000000000000000000000..5a6345078e7abad4b9211a296cfa52568e2ed238 GIT binary patch literal 9475 zcmb7KNps`I6&_{Z7iV9MjFVW3EfyLZfg?nK63P%sli)~`OBaWNG%Qn;LQ>8+m2;|c z%U{T^$R(A3k-v~@Zn>o@@9PJk8>BpTR7EXlp!+S~``!ZG+|Mu8i*5O*r+<9I{`-Ia z{I9?M?Vr#8{ofCs96V89fBDDT>bHaH?iTvE>+)WY!LEDt}h_n3KE{ob5#@C9?t5Xih-|9&1(QZMm@= z+YasMC$#ikwLHxRh0N1_e3AsoPI`J(;CF>HCrF4bMk;dTBXNX=zuK zP!`WeDT(s1+AMBX<&`ymIa^~BNJXZ|ewz;avY!v*BDCo~5nzk2s6|o;dh`zGN7meW z>n$tCLtj^G&^9#G{2^Wanp(Ml9ZdaUgXxcH?K^56X54IN+r?bYHk)$2g(W><|CCmt zp_IdMl8$Ab6-A!PbdY560FpVb_X}F*Qy}=>DL4sV(;VWkpclQfc--9C z-0NAQOXstjfXpNv49DjcO0Mo6UM$N)uM>H8;0K-`dcyGn-}6KlU~#b&en_B6~Sm*-rg@~RZMnm?~ra`fmBTP zDJ03oyO6AqKwtqFw4K2K!fr^wwY!P~_=aXf6Z;5bw#&=eMlM$K<-=8ZNDOmiNoib? zQeA{OOzc50rW`l)vCo(2Bc%#3j=dwgup8O0)d<>GadI}+(FpYardi4r-zlOZ(g~xk zE4;{e{jTGRZs6Na`HmO4j*2D2oQmR1^&iE~$#9sPu0t#_jlzUbxgw_J-RefO(_*## zGTr$_`bdJw>fx0o;PJ*@1c_Fx21y_0LW+>`VYQ(9K{ZVDIEo(F_52i|#9f5;OJ)0X zoSmnGf{@$0ytF~x0$?`@jZi^wo?>IZtfJ#2E9i2ld2zBsH_*F9L~5VIV<}ByI<~|S zObp$X=gGSU?OJsC=V}RoS4HP&NZNrXb$oyx9}OhRNUcEnKHbPsIh|mO_$1BcXq@&l z=ni9ZMw}E0k>7AqqzLA=CjdYrS-PQf1mkc%Q-qZvzX~6STYgzRKfnUmF?zxk%&pu+c7Zl_lMd8#uxy=(79V*6x$Q7;^2E>zo*A9hW zzT?_qex!*Cxo$oCJ=HmDIz#Q-6*d%N8b^3Q;cU>)23heO5+ZmT*BR_yBeBj`stBua zW>jyqg@^LVWJ)tWBku_IVj^$+s4Z^M;%<&@UX<(?vL7f=AFc9`Az^JN zXxR#S#S&3)u95q##p#^C2F*N|5j$H~t;e_q<c4`S%*j?u>5|zH_o9_nTBzE7Le#N6+l`Dxl&}J5zDWU?_{T zaT+HRoDHGbna0_5+Y$J_8?<5;^yUAWo?-B)SX19j`lv<0&pd}8`0gq|RY9(jA;OGf zS9$Wo+47;3>+-r>m#cY+YCjM*0>4JWy@3Z=8-pX|YR% zVMsqvE{CoiQGpM>!MRMJl@IEYfRd3Jf|SFjMPE{!5;QiO0;cy98l6ua%jO88mFfjl^SDR ziQrfkwn~dNAOS+Hel3?~GnidJ_;?o#6tLSUc(OsB4OD8;fkpD}v@=fB>{~0N>gT$o z;KJh3?8aoGIyN{mumd}K3gI}h!XT|GahkW= zBdS;CcUPrE!#|r-!^LUH_HewijUo3+mOY zeqCB0)479K_!-EoQU(cb#y~TiApC*402!K1p!lq-sA|dq;6V1KP^JXHr4pi+PvP;w zC>iP5flJ--9+8{bk(}ck?Z+zZZpumG9nvuz3`&`L-qVUAQys)1J4}(`cDt}d6m^Aw zv#P9tQHFVp`8-mD2C`8WAOg%UZew{zGIIlYW9)-K=17}R6R?h$rK?FRH<3x234w#y~p#W4(#adRP6M-fU233$4ja|nMJ%`3`UB?TlJMcW$ zvqgCfrYD%}U~Hn8(e9uRva5;(fMcgM(L>MF zN|*@1@6#N^h+TlbCfqc+*F|`X+_96c(Q#@s8gWC57Au|60@X6rhOK2&E@R87Y8P`m zDv^eR9Cfdq&@LSC6{UWRJ(N)%|JLLZ?W0;7v%+o{CN)1A!zi1I%tzR2r@%Gg|0@!n zV~&JxqH`}Dq;BXX31$HtPZ$#DT{-uf+v+l8G>%WtW2zg8q>-S~%VH3pQvnG&(}hLN zL#7Y3?`qkaWFrFDVkba%P(twuj@minF z&%hq0mrQ%&_h}9n@h))FRXJa7Ke|`FK=(2KG?8S#+G7)BMD)rn+Z1X7fSEjvC5rJB zQ)o*dGC5a(4w#cwd%zcghFut7g^LR{eS|YWkqsF4g9HJ>X22mDiXkL z8Z_80J;_*szjeK1bbD0m&$i zUAB>LG-Xs;)pZWBHDXGK^A65Ux52rrz8d$9;-W{Rjb}7Lrfj~?wMMnF7t1Z4N9gQ^ zW6dNvDm3j(&KGq#sb6gBYDRfxcf_ViS4qwdM$`D|D1vi{Q;mVE=z{#&JnAtt)T9|f zQ#Z{0%gGp5U;`$MljlYHN$ruI6R8aLu-YzeOF3JwXCG~-R|vbpf!lP~N5>i^Z#x0f zID}q7?Y~`p7GIglFE5gw6xcHl2bkI)!b4cNl#H}90#?ypaYm5=-(cw2)bU-KV+CM!!iB@(II47we^-un12}X;mVA?9X-J?fE;#_TvhLAtlaw_k)D7x_*hEYvbM);PK Y;dI<1)bAmJrq!61Ti)JEJwtc@2OMIdI{*Lx literal 0 HcmV?d00001 diff --git a/STM32F1/libraries/WireSlave/src/i2c_slave.c b/STM32F1/libraries/WireSlave/src/i2c_slave.c new file mode 100644 index 0000000..770cd3a --- /dev/null +++ b/STM32F1/libraries/WireSlave/src/i2c_slave.c @@ -0,0 +1,789 @@ +/****************************************************************************** + * The MIT License + * + * Copyright (c) 2010 Perry Hung. + * Copyright (c) 2012 LeafLabs, LLC. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + *****************************************************************************/ + +/** + * @file libmaple/i2c.c + * @author Perry Hung + * @author Barry Carter + * @brief Inter-Integrated Circuit (I2C) support. + * + * Master and Slave supported + * I2C slave support added 2012 by Barry Carter. barry.carter@gmail.com, headfuzz.co.uk + */ + +#include "libmaple/i2c_common_slave.h" + +#include "i2c_private.h" + + +#include "libmaple/i2c_slave.h" +#include +#include +#include +#include +#include + +#include + +static inline int32 wait_for_state_change(i2c_dev *dev, + i2c_state state, + uint32 timeout); +static void set_ccr_trise(i2c_dev *dev, uint32 flags); + +/** + * @brief Fill data register with slave address + * @param dev I2C device + * @param addr Slave address + * @param rw Read/write bit + */ +static inline void i2c_send_slave_addr(i2c_dev *dev, uint32 addr, uint32 rw) { + dev->regs->DR = (addr << 1) | rw; +} + +/* + * Simple debugging trail. Define I2C_DEBUG to turn on. + */ +#ifdef I2C_DEBUG + +#define NR_CRUMBS 128 +static struct crumb crumbs[NR_CRUMBS]; +static uint32 cur_crumb = 0; + +static inline void i2c_drop_crumb(uint32 event, uint32 arg0, uint32 arg1) { + if (cur_crumb < NR_CRUMBS) { + struct crumb *crumb = &crumbs[cur_crumb++]; + crumb->event = event; + crumb->arg0 = arg0; + crumb->arg1 = arg1; + } +} +#define I2C_CRUMB(event, arg0, arg1) i2c_drop_crumb(event, arg0, arg1) + +#else +#define I2C_CRUMB(event, arg0, arg1) +#endif + +struct crumb { + uint32 event; + uint32 arg0; + uint32 arg1; +}; + +enum { + IRQ_ENTRY = 1, + TXE_ONLY = 2, + TXE_BTF = 3, + STOP_SENT = 4, + TEST = 5, + RX_ADDR_START = 6, + RX_ADDR_STOP = 7, + RXNE_ONLY = 8, + RXNE_SENDING = 9, + RXNE_START_SENT = 10, + RXNE_STOP_SENT = 11, + RXNE_DONE = 12, + ERROR_ENTRY = 13, +}; + +/** + * @brief Reset an I2C bus. + * + * Reset is accomplished by clocking out pulses until any hung slaves + * release SDA and SCL, then generating a START condition, then a STOP + * condition. + * + * @param dev I2C device + */ +void i2c_bus_reset(const i2c_dev *dev) { + /* Release both lines */ + i2c_master_release_bus(dev); + + /* + * Make sure the bus is free by clocking it until any slaves release the + * bus. + */ + while (!gpio_read_bit(sda_port(dev), dev->sda_pin)) { + /* Wait for any clock stretching to finish */ + while (!gpio_read_bit(scl_port(dev), dev->scl_pin)) + ; + delay_us(10); + + /* Pull low */ + gpio_write_bit(scl_port(dev), dev->scl_pin, 0); + delay_us(10); + + /* Release high again */ + gpio_write_bit(scl_port(dev), dev->scl_pin, 1); + delay_us(10); + } + + /* Generate start then stop condition */ + gpio_write_bit(sda_port(dev), dev->sda_pin, 0); + delay_us(10); + gpio_write_bit(scl_port(dev), dev->scl_pin, 0); + delay_us(10); + gpio_write_bit(scl_port(dev), dev->scl_pin, 1); + delay_us(10); + gpio_write_bit(sda_port(dev), dev->sda_pin, 1); +} + +/** + * @brief Initialize an I2C device and reset its registers to their + * default values. + * @param dev Device to initialize. + */ +void i2c_init(i2c_dev *dev) { + rcc_reset_dev(dev->clk_id); + rcc_clk_enable(dev->clk_id); + _i2c_irq_priority_fixup(dev); +} + +/* Hack for deprecated bit of STM32F1 functionality */ +#ifndef _I2C_HAVE_DEPRECATED_I2C_REMAP +#define _i2c_handle_remap(dev, flags) ((void)0) +#endif + +/** + * @brief Initialize an I2C device as bus master + * @param dev Device to enable + * @param flags Bitwise or of the following I2C options: + * I2C_FAST_MODE: 400 khz operation, + * I2C_DUTY_16_9: 16/9 Tlow/Thigh duty cycle (only applicable for + * fast mode), + * I2C_BUS_RESET: Reset the bus and clock out any hung slaves on + * initialization, + * I2C_10BIT_ADDRESSING: Enable 10-bit addressing, + * I2C_REMAP: (deprecated, STM32F1 only) Remap I2C1 to SCL/PB8 + * SDA/PB9. + */ +void i2c_master_enable(i2c_dev *dev, uint32 flags) { + /* PE must be disabled to configure the device */ + ASSERT(!(dev->regs->CR1 & I2C_CR1_PE)); + + /* Ugh */ + _i2c_handle_remap(dev, flags); + + /* Reset the bus. Clock out any hung slaves. */ + if (flags & I2C_BUS_RESET) { + i2c_bus_reset(dev); + } + + /* Turn on clock and set GPIO modes */ + i2c_init(dev); + i2c_config_gpios(dev); + + /* Configure clock and rise time */ + set_ccr_trise(dev, flags); + + /* Enable event and buffer interrupts */ + nvic_irq_enable(dev->ev_nvic_line); + nvic_irq_enable(dev->er_nvic_line); + i2c_enable_irq(dev, I2C_IRQ_EVENT | I2C_IRQ_BUFFER | I2C_IRQ_ERROR); + + /* Configure the slave unit */ + if (flags & I2C_SLAVE_DUAL_ADDRESS) { + i2c_slave_dual_address_enable(dev); + } + + if (flags & I2C_SLAVE_GENERAL_CALL) { + i2c_slave_general_call_enable(dev); + } + + /* store all of the flags */ + dev->config_flags = flags; + + /* Make it go! */ + i2c_peripheral_enable(dev); + i2c_enable_ack(dev); + + dev->state = I2C_STATE_IDLE; +} + +/** + * @brief Initialize an I2C device as slave (and master) + * @param dev Device to enable + * @param flags Bitwise or of the following I2C options: + * I2C_FAST_MODE: 400 khz operation, + * I2C_DUTY_16_9: 16/9 Tlow/Thigh duty cycle (only applicable for + * fast mode), + * I2C_BUS_RESET: Reset the bus and clock out any hung slaves on + * initialization, + * I2C_10BIT_ADDRESSING: Enable 10-bit addressing, + * I2C_REMAP: (deprecated, STM32F1 only) Remap I2C1 to SCL/PB8 + * SDA/PB9. + * I2C_SLAVE_DUAL_ADDRESS: Slave can respond on 2 i2C addresses + * I2C_SLAVE_GENERAL_CALL: SLA+W broadcast to all general call + * listeners on bus. Addr 0x00 + * I2C_SLAVE_USE_RX_BUFFER: Use a buffer to receive the incoming + * data. Callback at end of recv + * I2C_SLAVE_USE_TX_BUFFER: Use a buffer to transmit data. + * Callback will be called before tx + */ +void i2c_slave_enable(i2c_dev *dev, uint32 flags) { + i2c_disable(dev); + i2c_master_enable(dev, dev->config_flags | flags); +} + +/** + * @brief Process an i2c transaction. + * + * Transactions are composed of one or more i2c_msg's, and may be read + * or write tranfers. Multiple i2c_msg's will generate a repeated + * start in between messages. + * + * @param dev I2C device + * @param msgs Messages to send/receive + * @param num Number of messages to send/receive + * @param timeout Bus idle timeout in milliseconds before aborting the + * transfer. 0 denotes no timeout. + * @return 0 on success, + * I2C_ERROR_PROTOCOL if there was a protocol error, + * I2C_ERROR_TIMEOUT if the transfer timed out. + */ +int32 i2c_master_xfer(i2c_dev *dev, + i2c_msg *msgs, + uint16 num, + uint32 timeout) { + int32 rc; + + ASSERT(dev->state == I2C_STATE_IDLE); + + dev->msg = msgs; + dev->msgs_left = num; + dev->timestamp = systick_uptime(); + dev->state = I2C_STATE_BUSY; + + i2c_enable_irq(dev, I2C_IRQ_EVENT); + i2c_start_condition(dev); + + rc = wait_for_state_change(dev, I2C_STATE_XFER_DONE, timeout); + if (rc < 0) { + goto out; + } + + dev->state = I2C_STATE_IDLE; +out: + return rc; +} + +/** + * @brief Wait for an I2C event, or time out in case of error. + * @param dev I2C device + * @param state I2C_state state to wait for + * @param timeout Timeout, in milliseconds + * @return 0 if target state is reached, a negative value on error. + */ +static inline int32 wait_for_state_change(i2c_dev *dev, + i2c_state state, + uint32 timeout) { + i2c_state tmp; + + while (1) { + tmp = dev->state; + + if (tmp == I2C_STATE_ERROR) { + return I2C_STATE_ERROR; + } + + if (tmp == state) { + return 0; + } + + if (timeout) { + if (systick_uptime() > (dev->timestamp + timeout)) { + /* TODO: overflow? */ + /* TODO: racy? */ + return I2C_ERROR_TIMEOUT; + } + } + } +} + +/* + * Private API + */ + +/* + * IRQ handler for I2C master. Handles transmission/reception. + */ +void _i2c_irq_handler(i2c_dev *dev) { + /* WTFs: + * - Where is I2C_MSG_10BIT_ADDR handled? + */ + i2c_msg *msg = dev->msg; + + uint8 read = msg->flags & I2C_MSG_READ; + + uint32 sr1 = dev->regs->SR1; + uint32 sr2 = dev->regs->SR2; + I2C_CRUMB(IRQ_ENTRY, sr1, sr2); + + /* + * Reset timeout counter + */ + dev->timestamp = systick_uptime(); + + /* + * Add Slave support + */ + + /* Check to see if MSL master slave bit is set */ + if ((sr2 & I2C_SR2_MSL) != I2C_SR2_MSL) { /* 0 = slave mode 1 = master */ + + /* Check for address match */ + if (sr1 & I2C_SR1_ADDR) { + /* Find out which address was matched */ + /* Check the general call address first */ + if (sr2 & I2C_SR2_GENCALL) { + dev->i2c_slave_msg->addr = 0; + } + /* We matched the secondary address */ + else if (sr2 & I2C_SR2_DUALF) { + dev->i2c_slave_msg->addr = dev->regs->OAR2 & 0xFE; + } + /* We matched the primary address */ + else if ((sr2 & I2C_SR2_DUALF) != I2C_SR2_DUALF) { + dev->i2c_slave_msg->addr = dev->regs->OAR1 & 0xFE; + } + /* Shouldn't get here */ + else { + dev->i2c_slave_msg->addr = -1; /* uh oh */ + } + + /* if we have buffered io */ + if ((dev->config_flags & I2C_SLAVE_USE_RX_BUFFER) || + (dev->config_flags & I2C_SLAVE_USE_TX_BUFFER)) { + + /* if receiving then this would be a repeated start + * + *if we have some bytes already + */ + if ((dev->state == I2C_STATE_SL_RX) && + (dev->i2c_slave_msg->xferred > 0) && + (dev->config_flags & I2C_SLAVE_USE_RX_BUFFER)) { + /* Call the callback with the contents of the data */ + if (dev->i2c_slave_recv_callback != NULL) { + (*(dev->i2c_slave_recv_callback))(dev->i2c_slave_msg); + } + } + + /* Reset the message back to defaults. + * We are starting a new message + */ + dev->i2c_slave_msg->flags = 0; + dev->i2c_slave_msg->length = 0; + dev->i2c_slave_msg->xferred = 0; + dev->msgs_left = 0; + dev->timestamp = systick_uptime(); + + /* We have been addressed with SLA+R so + * the master wants us to transmit + */ + if ((sr1 & I2C_SR1_TXE) && + (dev->config_flags & I2C_SLAVE_USE_TX_BUFFER)) { + /* Call the transmit callback so it can populate the msg + * data with the bytes to go + */ + if (dev->i2c_slave_transmit_callback != NULL) { + (*(dev->i2c_slave_transmit_callback))(dev->i2c_slave_msg); + } + } + dev->state = I2C_STATE_BUSY; + } + + sr1 = sr2 = 0; + } + + /* EV3: Master requesting data from slave. Transmit a byte*/ + if (sr1 & I2C_SR1_TXE) { + if (dev->config_flags & I2C_SLAVE_USE_TX_BUFFER) { + if (dev->i2c_slave_msg->xferred >= dev->i2c_slave_msg->length) { + /* End of the transmit buffer? If so we NACK */ + i2c_disable_ack(dev); + /* We have to either issue a STOP or write something here. + * STOP here seems to screw up some masters, + * For now padding with 0 + */ + i2c_write(dev, 0); + /*i2c_stop_condition(dev); // This is causing bus lockups way more than it should !? Seems some I2C master devices freak out here*/ + } + else + { + /* NACk the last byte */ + if (dev->i2c_slave_msg->xferred == dev->i2c_slave_msg->length-1) { + i2c_disable_ack(dev); + } + else { + i2c_enable_ack(dev); + } + i2c_write(dev, dev->i2c_slave_msg->data[dev->i2c_slave_msg->xferred++]); + } + } + else + { + /* Call the callback to get the data we need. + * The callback is expected to write using i2c_write(...) + * If the slave is going to terminate the transfer, this function should + * also do a NACK on the last byte! + */ + if (dev->i2c_slave_transmit_callback != NULL) (*(dev->i2c_slave_transmit_callback))(dev->i2c_slave_msg); + } + + dev->state = I2C_STATE_BUSY; + sr1 = sr2 = 0; + } + + /* EV2: Slave received data from a master. Get from DR */ + if (sr1 & I2C_SR1_RXNE) { + if (dev->config_flags & I2C_SLAVE_USE_RX_BUFFER) { + /* Fill the buffer with the contents of the data register */ + /* These is potential for buffer overflow here, so we should + * really store the size of the array. This is expensive in + * the ISR so left out for now. We must trust the implementor! + */ + dev->i2c_slave_msg->data[dev->i2c_slave_msg->xferred++] = dev->regs->DR; + dev->i2c_slave_msg->length++; + } + else { + /* Call the callback with the contents of the data */ + dev->i2c_slave_msg->data[0] = dev->regs->DR; + if (dev->i2c_slave_recv_callback != NULL) (*(dev->i2c_slave_recv_callback))(dev->i2c_slave_msg); + } + dev->state = I2C_STATE_SL_RX; + sr1 = sr2 = 0; + } + + /* EV4: Slave has detected a STOP condition on the bus */ + if (sr1 & I2C_SR1_STOPF) { + dev->regs->CR1 |= I2C_CR1_PE; + + if ((dev->config_flags & I2C_SLAVE_USE_RX_BUFFER) || + (dev->config_flags & I2C_SLAVE_USE_TX_BUFFER)) { + + /* The callback with the data will happen on a NACK of the last data byte. + * This is handled in the error IRQ (AF bit) + */ + /* Handle the case where the master misbehaves by sending no NACK */ + if (dev->state != I2C_STATE_IDLE) { + if (dev->state == I2C_STATE_SL_RX) { + if (dev->i2c_slave_recv_callback != NULL) (*(dev->i2c_slave_recv_callback))(dev->i2c_slave_msg); + } + else { + if (dev->i2c_slave_transmit_callback != NULL) (*(dev->i2c_slave_transmit_callback))(dev->i2c_slave_msg); + } + } + } + + sr1 = sr2 = 0; + dev->state = I2C_STATE_IDLE; + } + + return; + } + + /* + * EV5: Start condition sent + */ + if (sr1 & I2C_SR1_SB) { + msg->xferred = 0; + i2c_enable_irq(dev, I2C_IRQ_BUFFER); + + /* + * Master receiver + */ + if (read) { + i2c_enable_ack(dev); + } + + i2c_send_slave_addr(dev, msg->addr, read); + sr1 = sr2 = 0; + } + + /* + * EV6: Slave address sent + */ + if (sr1 & I2C_SR1_ADDR) { + /* + * Special case event EV6_1 for master receiver. + * Generate NACK and restart/stop condition after ADDR + * is cleared. + */ + if (read) { + if (msg->length == 1) { + i2c_disable_ack(dev); + if (dev->msgs_left > 1) { + i2c_start_condition(dev); + I2C_CRUMB(RX_ADDR_START, 0, 0); + } else { + i2c_stop_condition(dev); + I2C_CRUMB(RX_ADDR_STOP, 0, 0); + } + } + } else { + /* + * Master transmitter: write first byte to fill shift + * register. We should get another TXE interrupt + * immediately to fill DR again. + */ + if (msg->length > 1) { + i2c_write(dev, msg->data[msg->xferred++]); + } else if (msg->length == 0) { /* We're just sending an address */ + i2c_stop_condition(dev); + /* + * Turn off event interrupts to keep BTF from firing until + * the end of the stop condition. Why on earth they didn't + * have a start/stop condition request clear BTF is beyond + * me. + */ + i2c_disable_irq(dev, I2C_IRQ_EVENT); + I2C_CRUMB(STOP_SENT, 0, 0); + dev->state = I2C_STATE_XFER_DONE; + } /* else we're just sending one byte */ + } + sr1 = sr2 = 0; + } + + /* + * EV8: Master transmitter + * Transmit buffer empty, but we haven't finished transmitting the last + * byte written. + */ + if ((sr1 & I2C_SR1_TXE) && !(sr1 & I2C_SR1_BTF)) { + I2C_CRUMB(TXE_ONLY, 0, 0); + if (dev->msgs_left) { + i2c_write(dev, msg->data[msg->xferred++]); + if (msg->xferred == msg->length) { + /* + * End of this message. Turn off TXE/RXNE and wait for + * BTF to send repeated start or stop condition. + */ + i2c_disable_irq(dev, I2C_IRQ_BUFFER); + dev->msgs_left--; + } + } else { + /* + * This should be impossible... + */ + ASSERT(0); + } + sr1 = sr2 = 0; + } + + /* + * EV8_2: Master transmitter + * Last byte sent, program repeated start/stop + */ + if ((sr1 & I2C_SR1_TXE) && (sr1 & I2C_SR1_BTF)) { + I2C_CRUMB(TXE_BTF, 0, 0); + if (dev->msgs_left) { + I2C_CRUMB(TEST, 0, 0); + /* + * Repeated start insanity: We can't disable ITEVTEN or else SB + * won't interrupt, but if we don't disable ITEVTEN, BTF will + * continually interrupt us. What the fuck ST? + */ + i2c_start_condition(dev); + while (!(dev->regs->SR1 & I2C_SR1_SB)) + ; + dev->msg++; + } else { + i2c_stop_condition(dev); + + /* + * Turn off event interrupts to keep BTF from firing until + * the end of the stop condition. Why on earth they didn't + * have a start/stop condition request clear BTF is beyond + * me. + */ + i2c_disable_irq(dev, I2C_IRQ_EVENT); + I2C_CRUMB(STOP_SENT, 0, 0); + dev->state = I2C_STATE_XFER_DONE; + } + sr1 = sr2 = 0; + } + + /* + * EV7: Master Receiver + */ + if (sr1 & I2C_SR1_RXNE) { + I2C_CRUMB(RXNE_ONLY, 0, 0); + msg->data[msg->xferred++] = dev->regs->DR; + + /* + * EV7_1: Second to last byte in the reception? Set NACK and generate + * stop/restart condition in time for the last byte. We'll get one more + * RXNE interrupt before shutting things down. + */ + if (msg->xferred == (msg->length - 1)) { + i2c_disable_ack(dev); + if (dev->msgs_left > 2) { + i2c_start_condition(dev); + I2C_CRUMB(RXNE_START_SENT, 0, 0); + } else { + i2c_stop_condition(dev); + I2C_CRUMB(RXNE_STOP_SENT, 0, 0); + } + } else if (msg->xferred == msg->length) { + dev->msgs_left--; + if (dev->msgs_left == 0) { + /* + * We're done. + */ + I2C_CRUMB(RXNE_DONE, 0, 0); + dev->state = I2C_STATE_XFER_DONE; + } else { + dev->msg++; + } + } + } +} + +/* + * Interrupt handler for I2C error conditions. Aborts any pending I2C + * transactions. + */ +void _i2c_irq_error_handler(i2c_dev *dev) { + I2C_CRUMB(ERROR_ENTRY, dev->regs->SR1, dev->regs->SR2); + + dev->error_flags = dev->regs->SR1 & (I2C_SR1_BERR | + I2C_SR1_ARLO | + I2C_SR1_AF | + I2C_SR1_OVR); + + /* Are we in slave mode? */ + if ((dev->regs->SR2 & I2C_SR2_MSL) != I2C_SR2_MSL) { + /* Check to see if the master device did a NAK on the last bit + * This is perfectly valid for a master to do this on the bus. + * We ignore this. Any further error processing takes us into dead + * loop waiting for the stop condition that will never arrive + */ + if (dev->regs->SR1 & I2C_SR1_AF) { + /* Clear flags */ + dev->regs->SR1 = 0; + dev->regs->SR2 = 0; + /* We need to write something to CR1 to clear the flag. + * This isn't really mentioned but seems important */ + i2c_enable_ack(dev); + + if (dev->state == I2C_STATE_SL_RX && + dev->config_flags & I2C_SLAVE_USE_RX_BUFFER && + dev->i2c_slave_msg->xferred > 0) { + /* Call the callback with the contents of the data */ + if (dev->i2c_slave_recv_callback != NULL) (*(dev->i2c_slave_recv_callback))(dev->i2c_slave_msg); + } + + dev->state = I2C_STATE_IDLE; + return; + } + /* Catch any other strange errors while in slave mode. + * I have seen BERR caused by an over fast master device + * as well as several overflows and arbitration failures. + * We are going to reset SR flags and carry on at this point which + * is not the best thing to do, but stops the bus locking up completely + * If we carry on below and send the stop bit, the code spins forever */ + /* Clear flags */ + dev->regs->SR1 = 0; + dev->regs->SR2 = 0; + dev->state = I2C_STATE_IDLE; + return; + } + + /* Clear flags */ + dev->regs->SR1 = 0; + dev->regs->SR2 = 0; + + i2c_stop_condition(dev); + i2c_disable_irq(dev, I2C_IRQ_BUFFER | I2C_IRQ_EVENT | I2C_IRQ_ERROR); + dev->state = I2C_STATE_ERROR; +} + +/* + * CCR/TRISE configuration helper + */ +static void set_ccr_trise(i2c_dev *dev, uint32 flags) { + uint32 ccr = 0; + uint32 trise = 0; + uint32 clk_mhz = _i2c_bus_clk(dev); + uint32 clk_hz = clk_mhz * (1000 * 1000); + + i2c_set_input_clk(dev, clk_mhz); + + if (flags & I2C_FAST_MODE) { + ccr |= I2C_CCR_FS; + + if (flags & I2C_DUTY_16_9) { + /* Tlow/Thigh = 16/9 */ + ccr |= I2C_CCR_DUTY_16_9; + ccr |= clk_hz / (400000 * 25); + } else { + /* Tlow/Thigh = 2 */ + ccr |= clk_hz / (400000 * 3); + } + + trise = (300 * clk_mhz / 1000) + 1; + } else { + /* Tlow/Thigh = 1 */ + ccr = clk_hz / (100000 * 2); + trise = clk_mhz + 1; + } + + /* Set minimum required value if CCR < 1*/ + if ((ccr & I2C_CCR_CCR) == 0) { + ccr |= 0x1; + } + + i2c_set_clk_control(dev, ccr); + i2c_set_trise(dev, trise); +} + + +/** + * @brief callback for when the device acts as a slave. If using an rx buffer, this is triggered + * after the last byte, otherwise it is called for every incoming packet. + * @param dev I2C device + * @param msg The dev_msg to pass to the slave init code + * @param func The function pointer to call + */ +void i2c_slave_attach_recv_handler(i2c_dev *dev, i2c_msg *msg, i2c_slave_recv_callback_func func) { + dev->i2c_slave_recv_callback = func; + dev->i2c_slave_msg = msg; + msg->xferred = 0; +} + + +/** + * @brief callback for when the device acts as a slave. If using a tx buffer, this is triggered + * after the device is successsfully addressed with SLA+R. + * @param dev I2C device + * @param msg The dev_msg to pass to the slave init code + * @param func The function pointer to call + */ +void i2c_slave_attach_transmit_handler(i2c_dev *dev, i2c_msg *msg, i2c_slave_transmit_callback_func func) { + dev->i2c_slave_transmit_callback = func; + dev->i2c_slave_msg = msg; + msg->xferred = 0; +} diff --git a/STM32F1/libraries/WireSlave/src/i2c_slave.h.gch b/STM32F1/libraries/WireSlave/src/i2c_slave.h.gch new file mode 100644 index 0000000000000000000000000000000000000000..5a6345078e7abad4b9211a296cfa52568e2ed238 GIT binary patch literal 9475 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 Y;dI<1)bAmJrq!61Ti)JEJwtc@2OMIdI{*Lx literal 0 HcmV?d00001 diff --git a/STM32F1/libraries/WireSlave/src/libmaple/i2c_common_slave.h b/STM32F1/libraries/WireSlave/src/libmaple/i2c_common_slave.h new file mode 100644 index 0000000..605c663 --- /dev/null +++ b/STM32F1/libraries/WireSlave/src/libmaple/i2c_common_slave.h @@ -0,0 +1,110 @@ +/****************************************************************************** + * The MIT License + * + * Copyright (c) 2010 Perry Hung (from ). + * Copyright (c) 2012 LeafLabs, LLC. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + *****************************************************************************/ + +/** + * @file libmaple/include/libmaple/i2c_common.h + * @author Marti Bolivar + * @brief This file is an implementation detail + * + * CONTENTS UNSTABLE. The existence of this file is an implementation + * detail. Never include it directly. If you need something from + * here, include instead. + * + * I2C slave support added 2012 by Barry Carter. barry.carter@gmail.com, headfuzz.co.uk + * + */ + +#ifndef _LIBMAPLE_I2C_COMMON_H_ +#define _LIBMAPLE_I2C_COMMON_H_ + +#include +#include +#include + +struct gpio_dev; +struct i2c_reg_map; +struct i2c_msg; + +/** I2C device states */ +typedef enum i2c_state { + I2C_STATE_DISABLED = 0, /**< Disabled */ + I2C_STATE_IDLE = 1, /**< Idle */ + I2C_STATE_XFER_DONE = 2, /**< Done with transfer */ + I2C_STATE_BUSY = 3, /**< Busy */ + I2C_STATE_SL_RX = 4, /**< Slave receiving */ + I2C_STATE_ERROR = -1 /**< Error occurred */ +} i2c_state; + +typedef void (*i2c_slave_recv_callback_func)(struct i2c_msg *); +typedef void (*i2c_slave_transmit_callback_func)(struct i2c_msg *); +/** + * @brief I2C device type. + */ +typedef struct i2c_dev { + struct i2c_reg_map *regs; /**< Register map */ + struct i2c_msg *msg; /**< Messages */ + uint32 error_flags; /**< Error flags, set on I2C error condition */ + volatile uint32 timestamp; /**< For internal use */ + + /** + * @brief Deprecated. Use .scl_port or .sda_port instead. + * If non-null, this will be used as SDA, SCL pins' GPIO port. If + * null, then .sda_port will be used for SDA, and .sda_port for + * SDA. */ + struct gpio_dev *gpio_port; + + /** + * @brief SDA GPIO device (but see .gpio_port). + */ + struct gpio_dev *sda_port; + + /** + * @brief SCL GPIO device (but see .gpio_port). + */ + struct gpio_dev *scl_port; + + uint16 msgs_left; /**< Messages left */ + uint8 sda_pin; /**< SDA bit on gpio_port */ + uint8 scl_pin; /**< SCL bit on gpio_port */ + rcc_clk_id clk_id; /**< RCC clock information */ + nvic_irq_num ev_nvic_line; /**< Event IRQ number */ + nvic_irq_num er_nvic_line; /**< Error IRQ number */ + volatile i2c_state state; /**< Device state */ + uint32 config_flags; /**< Configuration flags */ + + /* + * Slave implementation. Callback functions in this struct allow + * for a separate callback function for each I2C unit available onboard + */ + i2c_slave_transmit_callback_func i2c_slave_transmit_callback; + i2c_slave_recv_callback_func i2c_slave_recv_callback; + + struct i2c_msg *i2c_slave_msg; /* the message that the i2c slave will use */ + +} i2c_dev; + +#endif diff --git a/STM32F1/libraries/WireSlave/src/libmaple/i2c_slave.h b/STM32F1/libraries/WireSlave/src/libmaple/i2c_slave.h new file mode 100644 index 0000000..1f290c2 --- /dev/null +++ b/STM32F1/libraries/WireSlave/src/libmaple/i2c_slave.h @@ -0,0 +1,475 @@ +/****************************************************************************** + * The MIT License + * + * Copyright (c) 2010 Perry Hung. + * Copyright (c) 2012 LeafLabs, LLC. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + *****************************************************************************/ + +/** + * @file libmaple/include/libmaple/i2c.h + * @brief Inter-Integrated Circuit (I2C) peripheral support + * + * Supports Master and Slave. + * Master Usage notes: + * + * - Enable an I2C device with i2c_master_enable(). + * - Initialize an array of struct i2c_msg to suit the bus + * transactions (reads/writes) you wish to perform. + * - Call i2c_master_xfer() to do the work. + * + * Slave Usage notes: + * - Enable I2C slave by calling i2c_slave_enable(). + * Check flags for usage. Enabling master also enabled slave. + * - initialise the i2c_msg struct and the data buffer + * - initialise the callback functions + * + * I2C slave support added 2012 by Barry Carter. barry.carter@gmail.com, headfuzz.co.uk + */ + +#ifndef _LIBMAPLE_I2C_H_ +#define _LIBMAPLE_I2C_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Series header must provide: + * + * - uint32 _i2c_bus_clk(i2c_dev*): Clock frequency of dev's bus, in + * MHz. (This is for internal use only). + * + * - (optional) _I2C_HAVE_IRQ_FIXUP: Leave undefined, or define to 1. + * This is for internal use only. It's a hack to work around a + * silicon bug related to I2C IRQ pre-emption on some targets. If 1, + * the series header must also declare and implement a routine with + * this signature (it may also be provided as a macro): + * + * void _i2c_irq_priority_fixup(i2c_dev*) + * + * This will be called by i2c_enable_irq() before actually enabling + * I2C interrupts. + * + * - Reg. map base pointers, device pointer declarations. + */ + + /* Roger clark. Replaced with line below #include */ +#include "libmaple/i2c_common_slave.h" +#include "stm32f1/include/series/i2c.h" + +#include +#include +#include +#include + +/** I2C register map type */ +typedef struct i2c_reg_map { + __io uint32 CR1; /**< Control register 1 */ + __io uint32 CR2; /**< Control register 2 */ + __io uint32 OAR1; /**< Own address register 1 */ + __io uint32 OAR2; /**< Own address register 2 */ + __io uint32 DR; /**< Data register */ + __io uint32 SR1; /**< Status register 1 */ + __io uint32 SR2; /**< Status register 2 */ + __io uint32 CCR; /**< Clock control register */ + __io uint32 TRISE; /**< TRISE (rise time) register */ +} i2c_reg_map; + +/** + * @brief I2C message type + */ +typedef struct i2c_msg { + uint16 addr; /**< Address */ + +#define I2C_MSG_READ 0x1 +#define I2C_MSG_10BIT_ADDR 0x2 + /** + * Bitwise OR of: + * - I2C_MSG_READ (write is default) + * - I2C_MSG_10BIT_ADDR (7-bit is default) */ + uint16 flags; + + uint16 length; /**< Message length */ + uint16 xferred; /**< Messages transferred */ + uint8 *data; /**< Data */ +} i2c_msg; + +/* + * Register bit definitions + */ + +/* Control register 1 */ + +#define I2C_CR1_SWRST (1U << 15) // Software reset +#define I2C_CR1_ALERT (1U << 13) // SMBus alert +#define I2C_CR1_PEC (1U << 12) // Packet error checking +#define I2C_CR1_POS (1U << 11) // Acknowledge/PEC position +#define I2C_CR1_ACK (1U << 10) // Acknowledge enable +#define I2C_CR1_STOP (1U << 9) // Stop generation +#define I2C_CR1_START (1U << 8) // Start generation +#define I2C_CR1_NOSTRETCH (1U << 7) // Clock stretching disable +#define I2C_CR1_ENGC (1U << 6) // General call enable +#define I2C_CR1_ENPEC (1U << 5) // PEC enable +#define I2C_CR1_ENARP (1U << 4) // ARP enable +#define I2C_CR1_SMBTYPE (1U << 3) // SMBus type +#define I2C_CR1_SMBTYPE_DEVICE (0U << 3) // SMBus type: device +#define I2C_CR1_SMBTYPE_HOST (1U << 3) // SMBus type: host +#define I2C_CR1_SMBUS (1U << 1) // SMBus mode +#define I2C_CR1_SMBUS_I2C (0U << 1) // SMBus mode: I2C +#define I2C_CR1_SMBUS_SMBUS (1U << 1) // SMBus mode: SMBus +#define I2C_CR1_PE (1U << 0) // Peripheral Enable + +/* Control register 2 */ + +#define I2C_CR2_LAST (1U << 12) // DMA last transfer +#define I2C_CR2_DMAEN (1U << 11) // DMA requests enable +#define I2C_CR2_ITBUFEN (1U << 10) // Buffer interrupt enable +#define I2C_CR2_ITEVTEN (1U << 9) // Event interupt enable +#define I2C_CR2_ITERREN (1U << 8) // Error interupt enable +#define I2C_CR2_FREQ 0x3F // Peripheral input frequency + +/* Own address register 1 */ + +#define I2C_OAR1_ADDMODE (1U << 15) // Addressing mode +#define I2C_OAR1_ADDMODE_7_BIT (0U << 15) // Addressing mode: 7-bit +#define I2C_OAR1_ADDMODE_10_BIT (1U << 15) // Addressing mode: 10-bit +#define I2C_OAR1_ADD 0x3FF // Interface address + +/* Own address register 2 */ + +#define I2C_OAR2_ADD2 0xFE // Interface address +#define I2C_OAR2_ENDUAL 1U // Dual addressing mode enable + +/* Status register 1 */ + +#define I2C_SR1_SMBALERT (1U << 15) // SMBus alert +#define I2C_SR1_TIMEOUT (1U << 14) // Timeout or Tlow error +#define I2C_SR1_PECERR (1U << 12) // PEC Error in reception +#define I2C_SR1_OVR (1U << 11) // Overrun/underrun +#define I2C_SR1_AF (1U << 10) // Acknowledge failure +#define I2C_SR1_ARLO (1U << 9) // Arbitration lost +#define I2C_SR1_BERR (1U << 8) // Bus error +#define I2C_SR1_TXE (1U << 7) // Data register empty +#define I2C_SR1_RXNE (1U << 6) // Data register not empty +#define I2C_SR1_STOPF (1U << 4) // Stop detection +#define I2C_SR1_ADD10 (1U << 3) // 10-bit header sent +#define I2C_SR1_BTF (1U << 2) // Byte transfer finished +#define I2C_SR1_ADDR (1U << 1) // Address sent/matched +#define I2C_SR1_SB (1U << 0) // Start bit + +/* Status register 2 */ + +#define I2C_SR2_PEC 0xFF00 // Packet error checking register +#define I2C_SR2_DUALF (1U << 7) // Dual flag +#define I2C_SR2_SMBHOST (1U << 6) // SMBus host header +#define I2C_SR2_SMBDEFAULT (1U << 5) // SMBus device default address +#define I2C_SR2_GENCALL (1U << 4) // General call address +#define I2C_SR2_TRA (1U << 2) // Transmitter/receiver +#define I2C_SR2_BUSY (1U << 1) // Bus busy +#define I2C_SR2_MSL (1U << 0) // Master/slave + +/* Clock control register */ + +#define I2C_CCR_FS (1U << 15) // Fast mode selection +#define I2C_CCR_DUTY (1U << 14) // Fast mode duty cycle +#define I2C_CCR_DUTY_2_1 (0U << 14) // Fast mode duty: 2/1 +#define I2C_CCR_DUTY_16_9 (1U << 14) // Fast mode duty: 16/9 +#define I2C_CCR_CCR 0xFFF // Clock control bits + +/* + * Convenience routines + */ + +/* Main I2C API */ + +/* I2C enable options */ +#define I2C_FAST_MODE 0x1 // 400 khz +#define I2C_DUTY_16_9 0x2 // 16/9 duty ratio +/* Flag 0x4 is reserved; DO NOT USE. */ +#define I2C_BUS_RESET 0x8 // Perform a bus reset +#define I2C_SLAVE_USE_RX_BUFFER 0x10 // Use a buffered message when doing a slave recv +#define I2C_SLAVE_USE_TX_BUFFER 0x20 // Use a buffered message when doing a slave transmit +#define I2C_SLAVE_DUAL_ADDRESS 0x40 // Enable the dual slave address scheme +#define I2C_SLAVE_GENERAL_CALL 0x80 // Enable the general call on address 0x00 +void i2c_master_enable(i2c_dev *dev, uint32 flags); +void i2c_slave_enable(i2c_dev *dev, uint32 flags); + +#define I2C_ERROR_PROTOCOL (-1) +#define I2C_ERROR_TIMEOUT (-2) +int32 i2c_master_xfer(i2c_dev *dev, i2c_msg *msgs, uint16 num, uint32 timeout); + +void i2c_bus_reset(const i2c_dev *dev); + +/** + * @brief Disable an I2C device + * + * This function disables the corresponding peripheral and marks dev's + * state as I2C_STATE_DISABLED. + * + * @param dev Device to disable. + */ +static inline void i2c_disable(i2c_dev *dev) { + dev->regs->CR1 &= ~I2C_CR1_PE; + dev->state = I2C_STATE_DISABLED; +} + +/* Start/stop conditions */ + +/** + * @brief Generate a start condition on the bus. + * @param dev I2C device + */ +static inline void i2c_start_condition(i2c_dev *dev) { + uint32 cr1; + while ((cr1 = dev->regs->CR1) & (I2C_CR1_START | + I2C_CR1_STOP | + I2C_CR1_PEC)) { + ; + } + dev->regs->CR1 |= I2C_CR1_START; +} + +/** + * @brief Generate a stop condition on the bus + * @param dev I2C device + */ +static inline void i2c_stop_condition(i2c_dev *dev) { + uint32 cr1; + while ((cr1 = dev->regs->CR1) & (I2C_CR1_START | + I2C_CR1_STOP | + I2C_CR1_PEC)) { + ; + } + dev->regs->CR1 |= I2C_CR1_STOP; + while ((cr1 = dev->regs->CR1) & (I2C_CR1_START | + I2C_CR1_STOP | + I2C_CR1_PEC)) { + ; + } + +} + +/* IRQ enable/disable */ + +#ifndef _I2C_HAVE_IRQ_FIXUP +/* The series header provides this if _I2C_HAVE_IRQ_FIXUP is defined, + * but we need it either way. */ +#define _i2c_irq_priority_fixup(dev) ((void)0) +#endif + +#define I2C_IRQ_ERROR I2C_CR2_ITERREN +#define I2C_IRQ_EVENT I2C_CR2_ITEVTEN +#define I2C_IRQ_BUFFER I2C_CR2_ITBUFEN +/** + * @brief Enable one or more I2C interrupts + * @param dev I2C device + * @param irqs Bitwise or of: + * I2C_IRQ_ERROR (error interrupt), + * I2C_IRQ_EVENT (event interrupt), and + * I2C_IRQ_BUFFER (buffer interrupt). + */ +static inline void i2c_enable_irq(i2c_dev *dev, uint32 irqs) { + _i2c_irq_priority_fixup(dev); + dev->regs->CR2 |= irqs; +} + +/** + * @brief Disable one or more I2C interrupts + * @param dev I2C device + * @param irqs Bitwise or of: + * I2C_IRQ_ERROR (error interrupt), + * I2C_IRQ_EVENT (event interrupt), and + * I2C_IRQ_BUFFER (buffer interrupt). + */ +static inline void i2c_disable_irq(i2c_dev *dev, uint32 irqs) { + dev->regs->CR2 &= ~irqs; +} + +/* ACK/NACK */ + +/** + * @brief Enable I2C acknowledgment + * @param dev I2C device + */ +static inline void i2c_enable_ack(i2c_dev *dev) { + dev->regs->CR1 |= I2C_CR1_ACK; +} + +/** + * @brief Disable I2C acknowledgment + * @param dev I2C device + */ +static inline void i2c_disable_ack(i2c_dev *dev) { + dev->regs->CR1 &= ~I2C_CR1_ACK; +} + +/* GPIO control */ + +/** + * @brief Configure device GPIOs. + * + * Configure GPIO bits dev->sda_pin and dev->scl_pin on GPIO device + * dev->gpio_port for use with I2C device dev. + * + * @param dev I2C Device + * @see i2c_release_gpios() + */ +extern void i2c_config_gpios(const i2c_dev *dev); + +/** + * @brief Release GPIOs controlling an I2C bus + * + * Releases the I2C bus controlled by dev as master, and disconnects + * GPIO bits dev->sda_pin and dev->scl_pin on GPIO device + * dev->gpio_port from I2C device dev. + * + * @param dev I2C device + * @see i2c_config_gpios() + */ +extern void i2c_master_release_bus(const i2c_dev *dev); + +/* Miscellaneous low-level routines */ + +void i2c_init(i2c_dev *dev); + +/** + * @brief Turn on an I2C peripheral + * @param dev Device to enable + */ +static inline void i2c_peripheral_enable(i2c_dev *dev) { + dev->regs->CR1 |= I2C_CR1_PE; +} + +/** + * @brief Turn off an I2C peripheral + * @param dev Device to turn off + */ +static inline void i2c_peripheral_disable(i2c_dev *dev) { + dev->regs->CR1 &= ~I2C_CR1_PE; +} + +/** + * @brief Fill transmit register + * @param dev I2C device + * @param byte Byte to write + */ +static inline void i2c_write(i2c_dev *dev, uint8 byte) { + dev->regs->DR = byte; +} + +/** + * @brief Set input clock frequency, in MHz + * @param dev I2C device + * @param freq Frequency, in MHz. This must be at least 2, and at most + * the APB frequency of dev's bus. (For example, if + * rcc_dev_clk(dev) == RCC_APB1, freq must be at most + * PCLK1, in MHz). There is an additional limit of 46 MHz. + */ +static inline void i2c_set_input_clk(i2c_dev *dev, uint32 freq) { +#define I2C_MAX_FREQ_MHZ 46 + ASSERT(2 <= freq && freq <= _i2c_bus_clk(dev) && freq <= I2C_MAX_FREQ_MHZ); + uint32 cr2 = dev->regs->CR2; + cr2 &= ~I2C_CR2_FREQ; + cr2 |= freq; + dev->regs->CR2 = freq; +#undef I2C_MAX_FREQ_MHZ +} + +/** + * @brief Set I2C clock control register. + * + * See the chip reference manual for the details. + * + * @param dev I2C device + * @param val Value to use for clock control register (in + * Fast/Standard mode) + */ +static inline void i2c_set_clk_control(i2c_dev *dev, uint32 val) { + uint32 ccr = dev->regs->CCR; + ccr &= ~I2C_CCR_CCR; + ccr |= val; + dev->regs->CCR = ccr; +} + +/** + * @brief Set SCL rise time + * @param dev I2C device + * @param trise Maximum rise time in fast/standard mode (see chip + * reference manual for the relevant formulas). + */ +static inline void i2c_set_trise(i2c_dev *dev, uint32 trise) { + dev->regs->TRISE = trise; +} + +/* + * Slave support + */ + +/** + * @brief Enable Dual addressing mode to allow peripheral to have 2 addresses + * @param dev I2C device + */ +static inline void i2c_slave_dual_address_enable(i2c_dev *dev) { + dev->regs->OAR2 |= I2C_OAR2_ENDUAL; +} + +/** + * @brief Enable General Call to allow the unit to respond on addr 0x00 + * @param dev I2C device + */ +static inline void i2c_slave_general_call_enable(i2c_dev *dev) { + dev->regs->CR1 |= I2C_CR1_ENGC; +} + +/* callback functions */ +/* Callback handler for data received over the bus */ +void i2c_slave_attach_recv_handler(i2c_dev *dev, i2c_msg *msg, i2c_slave_recv_callback_func func); + +/* Callback handler for data being requested over the bus + * The callback function must call i2c_write to get the data over the bus + */ +void i2c_slave_attach_transmit_handler(i2c_dev *dev, i2c_msg *msg, i2c_slave_transmit_callback_func func); + +/** + * @brief Set the primary I2c slave address + * @param dev I2C device + * @param address the 8 or 10 bit i2c address + */ +static inline void i2c_slave_set_own_address(i2c_dev *dev, uint16 address) { + dev->regs->OAR1 = address <<1; +} + +/** + * @brief Set the secondary I2c slave address + * @param dev I2C device + * @param address the 8 or 10 bit i2c address + */ +static inline void i2c_slave_set_own_address2(i2c_dev *dev, uint16 address) { +dev->regs->OAR2 = (address <<1 ) | I2C_OAR2_ENDUAL; +} + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/STM32F1/libraries/WireSlave/src/libmaple/i2c_slave.h.gch b/STM32F1/libraries/WireSlave/src/libmaple/i2c_slave.h.gch new file mode 100644 index 0000000000000000000000000000000000000000..5a6345078e7abad4b9211a296cfa52568e2ed238 GIT binary patch literal 9475 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 Y;dI<1)bAmJrq!61Ti)JEJwtc@2OMIdI{*Lx literal 0 HcmV?d00001 diff --git a/STM32F1/libraries/WireSlave/src/utility/WireBase_slave.cpp b/STM32F1/libraries/WireSlave/src/utility/WireBase_slave.cpp new file mode 100644 index 0000000..a309211 --- /dev/null +++ b/STM32F1/libraries/WireSlave/src/utility/WireBase_slave.cpp @@ -0,0 +1,145 @@ +/****************************************************************************** + * The MIT License + * + * Copyright (c) 2010 LeafLabs LLC. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + *****************************************************************************/ + +/** + * @file WireBase.cpp + * @author Trystan Jones + * @brief Wire library, following the majority of the interface from Arduino. + * Provides a 'standard' interface to I2C (two-wire) communication for + * derived classes. + */ + +/* + * Library created by crenn to allow a system which would provide users the + * 'standardised' Arduino method for interfacing with I2C devices regardless of + * whether it is I2C hardware or emulating software. + */ + +#include "WireBase_slave.h" +#include "wirish.h" + +void WireBase::begin(uint8 self_addr) { + tx_buf_idx = 0; + tx_buf_overflow = false; + rx_buf_idx = 0; + rx_buf_len = 0; +} + +void WireBase::beginTransmission(uint8 slave_address) { + itc_msg.addr = slave_address; + itc_msg.data = &tx_buf[tx_buf_idx]; + itc_msg.length = 0; + itc_msg.flags = 0; +} + +void WireBase::beginTransmission(int slave_address) { + beginTransmission((uint8)slave_address); +} + +uint8 WireBase::endTransmission(bool stop) { + uint8 retVal; + if (tx_buf_overflow) { + return EDATA; + } + retVal = process(stop);// Changed so that the return value from process is returned by this function see also the return line below + tx_buf_idx = 0; + tx_buf_overflow = false; + return retVal;//SUCCESS; +} + +uint8 WireBase::endTransmission(){ + endTransmission(true); +} + +//TODO: Add the ability to queue messages (adding a boolean to end of function +// call, allows for the Arduino style to stay while also giving the flexibility +// to bulk send +uint8 WireBase::requestFrom(uint8 address, int num_bytes) { + if (num_bytes > BUFFER_LENGTH) { + num_bytes = BUFFER_LENGTH; + } + itc_msg.addr = address; + itc_msg.flags = I2C_MSG_READ; + itc_msg.length = num_bytes; + itc_msg.data = &rx_buf[rx_buf_idx]; + process(); + rx_buf_len += itc_msg.xferred; + itc_msg.flags = 0; + return rx_buf_len; +} + +uint8 WireBase::requestFrom(int address, int numBytes) { + return WireBase::requestFrom((uint8)address, numBytes); +} + +void WireBase::write(uint8 value) { + if (tx_buf_idx == BUFFER_LENGTH) { + tx_buf_overflow = true; + return; + } + tx_buf[tx_buf_idx++] = value; + itc_msg.length++; +} + +void WireBase::write(uint8* buf, int len) { + for (uint8 i = 0; i < len; i++) { + write(buf[i]); + } +} + +void WireBase::write(int value) { + write((uint8)value); +} + +void WireBase::write(int* buf, int len) { + write((uint8*)buf, (uint8)len); +} + +void WireBase::write(char* buf) { + uint8 *ptr = (uint8*)buf; + while (*ptr) { + write(*ptr); + ptr++; + } +} + +uint8 WireBase::available() { + return rx_buf_len - rx_buf_idx; +} + +uint8 WireBase::read() { + if (rx_buf_idx == rx_buf_len) { + rx_buf_idx = 0; + rx_buf_len = 0; + return 0; + } else if (rx_buf_idx == (rx_buf_len-1)) { + uint8 temp = rx_buf[rx_buf_idx]; + rx_buf_idx = 0; + rx_buf_len = 0; + return temp; + } + return rx_buf[rx_buf_idx++]; +} diff --git a/STM32F1/libraries/WireSlave/src/utility/WireBase_slave.h b/STM32F1/libraries/WireSlave/src/utility/WireBase_slave.h new file mode 100644 index 0000000..31f3f8c --- /dev/null +++ b/STM32F1/libraries/WireSlave/src/utility/WireBase_slave.h @@ -0,0 +1,145 @@ +/****************************************************************************** + * The MIT License + * + * Copyright (c) 2010 LeafLabs LLC. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + *****************************************************************************/ + +/** + * @file WireBase.h + * @author Trystan Jones + * @brief Wire library, following the majority of the interface from Arduino. + * Provides a 'standard' interface to I2C (two-wire) communication for + * derived classes. + */ + +/* + * Library created by crenn to allow a system which would provide users the + * 'standardised' Arduino method for interfacing with I2C devices regardless of + * whether it is I2C hardware or emulating software. + */ + +#ifndef _WIREBASE_H_ +#define _WIREBASE_H_ + +#include "wirish.h" +#include + +#define BUFFER_LENGTH 32 + +/* return codes from endTransmission() */ +#define SUCCESS 0 /* transmission was successful */ +#define EDATA 1 /* too much data */ +#define ENACKADDR 2 /* received nack on transmit of address */ +#define ENACKTRNS 3 /* received nack on transmit of data */ +#define EOTHER 4 /* other error */ + +class WireBase { // Abstraction is awesome! +protected: + i2c_msg itc_msg; + uint8 rx_buf[BUFFER_LENGTH]; /* receive buffer */ + uint8 rx_buf_idx; /* first unread idx in rx_buf */ + uint8 rx_buf_len; /* number of bytes read */ + + uint8 tx_buf[BUFFER_LENGTH]; /* transmit buffer */ + uint8 tx_buf_idx; // next idx available in tx_buf, -1 overflow + boolean tx_buf_overflow; + + // Force derived classes to define process function + virtual uint8 process(uint8) = 0; + virtual uint8 process() = 0; +public: + WireBase() {} + ~WireBase() {} + + /* + * Initialises the class interface + */ + // Allow derived classes to overwrite begin function + virtual void begin(uint8 = 0x00); + + /* + * Sets up the transmission message to be processed + */ + void beginTransmission(uint8); + + /* + * Allow only 8 bit addresses to be used + */ + void beginTransmission(int); + + /* + * Call the process function to process the message if the TX + * buffer has not overflowed. + */ + uint8 endTransmission(bool); + uint8 endTransmission(void); + + /* + * Request bytes from a slave device and process the request, + * storing into the receiving buffer. + */ + uint8 requestFrom(uint8, int); + + /* + * Allow only 8 bit addresses to be used when requesting bytes + */ + uint8 requestFrom(int, int); + + /* + * Stack up bytes to be sent when transmitting + */ + void write(uint8); + + /* + * Stack up bytes from the array to be sent when transmitting + */ + void write(uint8*, int); + + /* + * Ensure that a sending data will only be 8-bit bytes + */ + void write(int); + + /* + * Ensure that an array sending data will only be 8-bit bytes + */ + void write(int*, int); + + /* + * Stack up bytes from a string to be sent when transmitting + */ + void write(char*); + + /* + * Return the amount of bytes that is currently in the receiving buffer + */ + uint8 available(); + + /* + * Return the value of byte in the receiving buffer that is currently being + * pointed to + */ + uint8 read(); +}; + +#endif // _WIREBASE_H_ diff --git a/STM32F1/libraries/WireSlave/src/utility/WireBase_slave.h.gch b/STM32F1/libraries/WireSlave/src/utility/WireBase_slave.h.gch new file mode 100644 index 0000000000000000000000000000000000000000..5a6345078e7abad4b9211a296cfa52568e2ed238 GIT binary patch literal 9475 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 Y;dI<1)bAmJrq!61Ti)JEJwtc@2OMIdI{*Lx literal 0 HcmV?d00001 From 4157ef37a1ebbb8dd24560158074974663d3b189 Mon Sep 17 00:00:00 2001 From: lacklustrlabs Date: Thu, 14 Dec 2017 16:41:43 +0100 Subject: [PATCH 02/16] Removed some accidental adds --- STM32F1/libraries/Wire/Wire_slave.h | 2 +- STM32F1/libraries/WireSlave/src/Wire.h | 2 +- STM32F1/libraries/WireSlave/src/Wire.h.gch | Bin 1819056 -> 0 bytes .../libraries/WireSlave/src/Wire_slave.h.gch | Bin 9475 -> 0 bytes .../libraries/WireSlave/src/i2c_slave.h.gch | Bin 9475 -> 0 bytes .../WireSlave/src/libmaple/i2c_slave.h.gch | Bin 9475 -> 0 bytes .../src/utility/WireBase_slave.h.gch | Bin 9475 -> 0 bytes 7 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 STM32F1/libraries/WireSlave/src/Wire.h.gch delete mode 100644 STM32F1/libraries/WireSlave/src/Wire_slave.h.gch delete mode 100644 STM32F1/libraries/WireSlave/src/i2c_slave.h.gch delete mode 100644 STM32F1/libraries/WireSlave/src/libmaple/i2c_slave.h.gch delete mode 100644 STM32F1/libraries/WireSlave/src/utility/WireBase_slave.h.gch diff --git a/STM32F1/libraries/Wire/Wire_slave.h b/STM32F1/libraries/Wire/Wire_slave.h index 21b4102..ede963b 100644 --- a/STM32F1/libraries/Wire/Wire_slave.h +++ b/STM32F1/libraries/Wire/Wire_slave.h @@ -1 +1 @@ -#error "Something is trying to include Wire.h when Wire_Slave.h is already included, they are mutually exclusive" +#error "Something is trying to include Wire_slave.h when Wire.h is already included, they are mutually exclusive" diff --git a/STM32F1/libraries/WireSlave/src/Wire.h b/STM32F1/libraries/WireSlave/src/Wire.h index ede963b..2d3ce70 100644 --- a/STM32F1/libraries/WireSlave/src/Wire.h +++ b/STM32F1/libraries/WireSlave/src/Wire.h @@ -1 +1 @@ -#error "Something is trying to include Wire_slave.h when Wire.h is already included, they are mutually exclusive" +#error "Something is trying to include Wire.h when Wire_slave.h is already included, they are mutually exclusive" diff --git a/STM32F1/libraries/WireSlave/src/Wire.h.gch b/STM32F1/libraries/WireSlave/src/Wire.h.gch deleted file mode 100644 index b29a5ea9fd8851ea75533c42ff77077972caf5ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1819056 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 z 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≠!FX+RNj++pOJ3nHmv#KU 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