Each LPC1768 is capable of controlling 2 CAN bus lines. Linking multiple chips together via SPI allows for more bus lines to be monitored simultaneously. Master unit.
spiMasterProtocol.cpp
- Committer:
- ggudgel
- Date:
- 2014-10-31
- Revision:
- 0:855b6e84e744
File content as of revision 0:855b6e84e744:
#include "spiMasterProtocol.h" spiMasterProtocol::spiMasterProtocol() { spiLine = new SPI(p5, p6, p7); spiLine->format(8,3); // Setup: bit data, high steady state clock, 2nd edge capture spiLine->frequency(1000000); // 1MHz chipSelect = new DigitalOut(p8); chipSelect->write(1); } int spiMasterProtocol::get42() { int temp = write(0x42); wait_us(5); int data = write(0x00); wait_us(5); int dataExtra = write(0x00); printf("get42():\n\r"); printf("temp = %d\n\r", temp); printf("data = %d\n\r", data); printf("dataExtra = %d\n\r", data); printf("\n"); return data; } int spiMasterProtocol::get84() { int temp = write(0x84); wait_us(5); int data1 = write(0x00); wait_us(5); int data2 = write(0x00); printf("get84():\n\r"); printf("temp = %d\n\r", temp); printf("data1 = %d\n\r", data1); printf("data2 = %d\n\r", data2); printf("\n"); return data2; } int spiMasterProtocol::write(int m) { chipSelect->write(0); int returnMess = spiLine->write(m); chipSelect->write(1); return returnMess; }