Skip to content

Commit b2ee853

Browse files
committed
Activate and deactivate CS pin inside SPI transaction
1 parent 162628b commit b2ee853

File tree

1 file changed

+8
-16
lines changed

1 file changed

+8
-16
lines changed

src/MCP2515.cpp

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -418,13 +418,11 @@ void MCP2515Class::dumpRegisters(Stream& out)
418418

419419
void MCP2515Class::reset()
420420
{
421-
digitalWrite(_csPin, LOW);
422-
423421
SPI.beginTransaction(_spiSettings);
422+
digitalWrite(_csPin, LOW);
424423
SPI.transfer(0xc0);
425-
SPI.endTransaction();
426-
427424
digitalWrite(_csPin, HIGH);
425+
SPI.endTransaction();
428426

429427
delayMicroseconds(10);
430428
}
@@ -444,44 +442,38 @@ uint8_t MCP2515Class::readRegister(uint8_t address)
444442
{
445443
uint8_t value;
446444

447-
digitalWrite(_csPin, LOW);
448-
449445
SPI.beginTransaction(_spiSettings);
446+
digitalWrite(_csPin, LOW);
450447
SPI.transfer(0x03);
451448
SPI.transfer(address);
452449
value = SPI.transfer(0x00);
453-
SPI.endTransaction();
454-
455450
digitalWrite(_csPin, HIGH);
451+
SPI.endTransaction();
456452

457453
return value;
458454
}
459455

460456
void MCP2515Class::modifyRegister(uint8_t address, uint8_t mask, uint8_t value)
461457
{
462-
digitalWrite(_csPin, LOW);
463-
464458
SPI.beginTransaction(_spiSettings);
459+
digitalWrite(_csPin, LOW);
465460
SPI.transfer(0x05);
466461
SPI.transfer(address);
467462
SPI.transfer(mask);
468463
SPI.transfer(value);
469-
SPI.endTransaction();
470-
471464
digitalWrite(_csPin, HIGH);
465+
SPI.endTransaction();
472466
}
473467

474468
void MCP2515Class::writeRegister(uint8_t address, uint8_t value)
475469
{
476-
digitalWrite(_csPin, LOW);
477-
478470
SPI.beginTransaction(_spiSettings);
471+
digitalWrite(_csPin, LOW);
479472
SPI.transfer(0x02);
480473
SPI.transfer(address);
481474
SPI.transfer(value);
482-
SPI.endTransaction();
483-
484475
digitalWrite(_csPin, HIGH);
476+
SPI.endTransaction();
485477
}
486478

487479
void MCP2515Class::onInterrupt()

0 commit comments

Comments
 (0)