Ok, all this talk about the RBBB has got me confused. I know you program the RBBB with a USB-Serial (or is it USB-TTL) cable (or using the Duemilanove w/ chip removed, which is essentially the same because the FTDI chip is a USB-Serial chip). I also know that the Duemilanove has an ICSP header on is, which stands of "In Circuit Serial Programming". My question is: Is ICSP and the USB-Serial cable you'd use to program a RBBB the same thing? They both have 6 pins (though arranged differently), but I can't seem to find the pinout for the Duemilanove's ICSP header.
Can you explain exactly what the difference is? I'm looking at the schematic, and I can see that it's different, but I thought the ICSP and Serial headers did the same thing ;D!
No, the RBBB usb interface is for programming a bootloaded AVR with a sketch. In use it looks exactly like a Duemilanove hooked up to the USB interface to the IDE. The ICSP interface is what you hook a seperate programmer to to program the AVR directly. You'd use the ICSP for example to burn a bootloader onto a blank AVR chip, something you can't do through the standard USB interface.
But the 6 pin USB-TTL cable is a way of Serial Programming, and the 6 pin ICSP is a "In Circuit Serial Programming"......so how do they differ, excluding pin configuration? :-/
You've followed some of my DIY arduino projects, I put the same interface as the RBBB on them, so I can put sketches onto them without removing the chip and putting it in a Duemilanove. I don't bother with the ICSP because burning a bootloader isn't something you need to do everyday.
But the 6 pin USB-TTL cable is a way of Serial Programming, and the 6 pin ICSP is a "In Circuit Serial Programming"......so how do they differ, excluding pin configuration? Undecided
The ICSP is the raw proramming interface which needs an external programmer which is how a raw AVR chip is programmed. The USB programming interface is what sets the arduino apart from a raw AVR. It provides a simple way for programming the AVR through a USB / serial interface and a bootloader program already programmed onto the ARduino chip.
Is it all a matter of where you send the data? I mean to say, if they're both a form of Serial, what's to stop you connecting a Serial cable correctly through the ICSP and burning the bootloader? :o
Is it all a matter of where you send the data? I mean to say, if they're both a form of Serial, what's to stop you connecting a Serial cable correctly through the ICSP and burning the bootloader?
On a similar subject, I'm looking at the diagram for the RBBB, and I'm a bit confused about the pinout:
Am I to take it that the 5th pin down on the programming header is not connected? I'm just curious, as the others are labeled or obvious (G for ground, and the one with the capacitor leads to reset).
Am I to take it that the 5th pin down on the programming header is not connected?
Correct, no connection. Also be sure your signals from your serial convertor are wired to the correct pins on the RBBB, There is no 'standard' connector line up for serial convertor cables, so the one you get my require you to move the pins around.
The USB ttl pinout for the RBBB is a semi standard, its a adaption of the standard FTDI cable which will also work with the RBBB with the exception of auto reset. A near identical FTDI breakout board is sold by Sparkfun amongst others with a compatible pinout (the unused pin is different to the Modern devices board)
Is it all a matter of where you send the data? I mean to say, if they're both a form of Serial, what's to stop you connecting a Serial cable correctly through the ICSP and burning the bootloader?
This is where I get out of my depth, you'd better ask one of the Arduino developers. I've used both the RBBB and its FTDI board and burned bootloaders using a seperate programmer through the ICSP, I just accept they're different........
Is it all a matter of where you send the data? I mean to say, if they're both a form of Serial, what's to stop you connecting a Serial cable correctly through the ICSP and burning the bootloader?
The ICSP uses a different protocol then the serial data link from the Arduino IDE. The ICSP requires discrete control signals, data in, data out, clock and reset. The data is clocked into the AVR chip one bit at a time and does not involve 8 bit data characters like the serial converter that uses the bootloader to program the chip via the Arduiono IDE.
Different methods to accomplish the same task. AVRDUDE is the programming software that accomplishes the task of loading your program, but the Arduino IDE only launches AVRDUDE, telling it to use the Arduino bootloader serial data method.
"Serial" in the computer industry has essentially two major definitions:
Compatible with the thing labeled "Serial Port" on my computer. I don't know offhand whether there is a name that defines the bit format of this without also going into other details like voltage levels and connector pinouts. The details date back to a day when such things were less "layered" in their definitions. The normal "Serial Port" is an "rs232 asynchronous serial communications port", but that's both too much and not enough to really describe it.
Any communications protocol where the bits are sent one at a time on a single wire ("serially") rather than many at one time ("in parallel.")
The Arduino Bootloader uses (1). Since real "serial ports" have been disappearing from modern PCs (they were heavily abused and prone to all sorts of errors), current generation Arduinos use an on-board USB/Serial translator chip. This chip is similar in cost and complexity to the main AVR, so several "cost reduced" Arduino-like clones "factor" the USB/Serial converter into an external cable, leaving the board itself with the "bare" serial interface output by the converter chip.
(2) encompasses a whole lot of different and mutually incompatible protocols. SPI, IIC, Ethernet, SATA, HDLC, FDDI, One-wire, RS232, USB, Firewire, V.35, and many more.
They differ from the "Serial Port" in speed, how speed is determined (clocking),
The "ISP" port on the arduino is actually based on the SPI protocol. Using an ISP port is more difficult than using a pc-style serial port (and there are no external SPI-style ports on any modern computers...)