Arduino for electric car instrumentation.

Good morning,

We are working on an Arduino Board designed specifically for the electric car conversion crowd. I posted a summary of the project a while back over at Adafruit

As we work on the schematic, we noticed a few things things that might make our board (based on the new Mega 2560) more compatible with existing shields. Namely: the moved SPI pins.

I thought we would run this past the community to ensure we are not missing something. Again, from Adafruit forum:

"We were initially planning on sticking pretty close to the original header pinout. The Mega pinout, however, shows the SPI signals on header pins # 51, 52, 53 while the corresponding UNO SPI pins are on 12, 11, 13.

Unless there is a good reason that the Mega SPI pins are moved, I think we will put them in the same place as the UNO. Doing so will hopefully allow for more shield compatibility with our board."

Thank you for the insight.

Josh
RechargeCar Inc.

Link to project summary:

http://forums.adafruit.com/viewtopic.php?f=26&t=16528

SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). These pins support SPI communication using the SPI library. The SPI pins are also broken out on the ICSP header, which is physically compatible with the Uno, Duemilanove and Diecimila.

The pins are not arbitrary...

I understand that the pins are not arbitrary, but is there any reason why we shouldn't re-map them to the corresponding UNO header pinout as this discussion suggests:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1286873309

Note: I just noticed that I wrote the wrong pin assignments above: 50, 51, 52, 53 on Mega corresponds to 12, 11, 13, 10 on UNO.

This would ensure that Duemilanove and UNO shields would be pin-compatible. There just seems to be a lot of shields out there that expect SPI on pins D11-13 still. Of course we will still have SPI on the ICSP header.

I understand that the pins are not arbitrary,

The pins for SPI are fixed by the hardware in the processor, you can't remap them.
You can use any pin for SPI if you bit bang the SPI bus, but this is slower than using the built in hardware.

Sorry, I really need to explain myself better it seems. The idea would be to connect the SPI pins from the ATmega2560 to the same header pins where SPI lines are on the UNO.

PB3 (MISO) to header Pin 12
PB2 (MOSI) to header Pin 11
PB1 (SCK) to header Pin 13
PB0 (SS) to header Pin 10

We are ready to post a schematic of our board, check it out:

http://www.rechargecar.com/macchina

We were hoping you Arduino guys would get a kick out of the name we chose to call our board: "Macchina". Italians use it as a slang word for "car" (hopefully).

  • Based on Arduino Mega
  • closer to Automotive specs, 4 layers, EMI protection, more fuses
  • on-board OBD2 interface with many protocols supported - including CANbus
  • can be hooked right up to car battery.

If anyone has some feedback, we would be happy to hear it.

Thanks!

I can't comment on the analogue part but I see no obvious bloopers with the rest with one possible exception, Atmel suggest 10uH/0.1uF for the AVCC filter.

BTW, what chip is TVS102, there's no component name.


Rob

TVS = Transient Voltage Suppressor. High energy zener to deal with heavy EMI in electric vehicle.

Yeah I know what TVS is but that particular chip looks interesting and there's no component name.


Rob

Sorry, I really need to explain myself better it seems. The idea would be to connect the SPI pins from the ATmega2560 to the same header pins where SPI lines are on the UNO.

PB3 (MISO) to header Pin 12
PB2 (MOSI) to header Pin 11
PB1 (SCK) to header Pin 13
PB0 (SS) to header Pin 10

Down side is you would lose the use of arduino pins 10-13?

Graynomad:
TVS102 is part number: USB6B1
Good catch on the inductor value feeding AVCC.

retrofly:
If you look at the schematic, there are solder jumpers to allow swapping of pins 10-13 and 50-53. That way there isn't any lost pins.