Benutzer:Rdiez/ArduinoDue: Unterschied zwischen den Versionen
Aus /dev/tal
Rdiez (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „= Why the Arduino Due = This was my selection criteria: * Popular platform, well supported, reasonably priced. * Open-source hardware. <br/> Hopefully this will…“) |
Rdiez (Diskussion | Beiträge) |
||
Zeile 32: | Zeile 32: | ||
* JTAG port | * JTAG port | ||
− | = | + | = Inadequate as a learning and hacking platform = |
The Arduino Due is surprisingly inadequate as a learning and hacking platform: | The Arduino Due is surprisingly inadequate as a learning and hacking platform: | ||
Zeile 41: | Zeile 41: | ||
* It can only interface at 3.3 V level. <br/> The Bus Pirate has a CD4066B analog switch that uses an external reference voltage. <br/> There are warnings all over the place that you can damage the board with a 5 V level, but why is there no protection circuitry? For hackers and learners such a safety feature would be a welcomed addition. How about some integrated 5 V capability too? With a small CPLD or FPGA you could probably choose your voltage level on a pin basis. | * It can only interface at 3.3 V level. <br/> The Bus Pirate has a CD4066B analog switch that uses an external reference voltage. <br/> There are warnings all over the place that you can damage the board with a 5 V level, but why is there no protection circuitry? For hackers and learners such a safety feature would be a welcomed addition. How about some integrated 5 V capability too? With a small CPLD or FPGA you could probably choose your voltage level on a pin basis. | ||
* The board has a single user LED and no user buttons whatsoever, let alone any kind of display or sound ability. <br/> You need extra hardware for the most simple of tests. | * The board has a single user LED and no user buttons whatsoever, let alone any kind of display or sound ability. <br/> You need extra hardware for the most simple of tests. | ||
+ | * Serious hackers will need a [http://en.wikipedia.org/wiki/In-circuit_emulator JTAG-based hardware debugger], which costs at least 50 €. <br/> There are some cheap USB-Blaster clones for 10 € in Ebay, but I haven't been able to make mine work properly yet. <br/> The Arduino designers added a separate 8-bit AVR CPU in order to update the main microcontroller firmware over the "programming" USB port. What a complete waste of time! They could have added some existing JTAG-over-USB chip, or they could have made one themselves by connecting that little AVR to the JTAG wires. | ||
* The JTAG header is smaller than usual, it has a 1.27 mm raster instead of the normal 2.54 mm. <br/> Most hackers will have to pay extra for an adapter. | * The JTAG header is smaller than usual, it has a 1.27 mm raster instead of the normal 2.54 mm. <br/> Most hackers will have to pay extra for an adapter. | ||
Version vom 4. März 2013, 21:26 Uhr
Inhaltsverzeichnis
Why the Arduino Due
This was my selection criteria:
- Popular platform, well supported, reasonably priced.
- Open-source hardware.
Hopefully this will lead to lower prices and longer availability. - 32-bit CPU with good toolchain support.
- High Speed (480 Mbps) USB tranfers (effective throughput up to 35 MB/s or 280 Mbit/s).
This is about time, the USB 2.0 spec was released in April 2000 (!).
Most ARM microcontrollers support only the 11 Mbit/s mode (as of 2013).
Other candidates:
- The Beagle Bone was mostly sold out at the time.
- The Raspeberry Pi is designed to act as an USB Host, and not as an USB Device.
Specs
The Arduino Due has an AT91SAM3X8E microcontroller with the following features:
- ARM Cortex-M3 core:
- Implements the ARMv7-M architecture, which is a 32-bit architecture.
- Supports all of the base Thumb-2 instruction set, where instructions can be 16-bit or 32-bit long.
- Supports only Thumb-2, does not support the original 32-bit ARM instruction set.
- Hardware multiplication and division.
- Memory Protection Unit with 8 regions.
- Limited support for unaligned memory accesses.
- Choice of several modes with different privilege levels (user, supervisor...).
- Support for single-bit atomic operations with (bit-banding)
- No floating point support.
- 84 MHz clock frequency.
- 2 x 256 KBytes Flash.
- 64 + 32 KBytes RAM.
- The "native" USB port and can do High Speed USB 2.0 (480 Mbit/s).
- JTAG port
Inadequate as a learning and hacking platform
The Arduino Due is surprisingly inadequate as a learning and hacking platform:
- It is relatively expensive compared to more powerful platforms like the Rasperry Pi, the Beagle Bone and many of the microcontroller evaluation boards.
Due to the low availability 4 months after release date I ended up paying 59 € for it, and that hurts if you manage to fry it during your experiments. - The development environment has no integrated debugger (!).
- Launching a program, however small, takes a few seconds.
That is quite a long time for such a modern board, it goes on your nerves. Maybe it is due to the beta development environment version 1.5.2 I tested, but why is it still beta? The release date was 22nd October 2012, more than 4 months ago. - It can only interface at 3.3 V level.
The Bus Pirate has a CD4066B analog switch that uses an external reference voltage.
There are warnings all over the place that you can damage the board with a 5 V level, but why is there no protection circuitry? For hackers and learners such a safety feature would be a welcomed addition. How about some integrated 5 V capability too? With a small CPLD or FPGA you could probably choose your voltage level on a pin basis. - The board has a single user LED and no user buttons whatsoever, let alone any kind of display or sound ability.
You need extra hardware for the most simple of tests. - Serious hackers will need a JTAG-based hardware debugger, which costs at least 50 €.
There are some cheap USB-Blaster clones for 10 € in Ebay, but I haven't been able to make mine work properly yet.
The Arduino designers added a separate 8-bit AVR CPU in order to update the main microcontroller firmware over the "programming" USB port. What a complete waste of time! They could have added some existing JTAG-over-USB chip, or they could have made one themselves by connecting that little AVR to the JTAG wires. - The JTAG header is smaller than usual, it has a 1.27 mm raster instead of the normal 2.54 mm.
Most hackers will have to pay extra for an adapter.
Connecting over JTAG
When connected to the Arduino Due, OpenOCD discovers a JTAG IDCODE of 0x4BA00477. The JTAG Instruction Register has a length of 4 bits.
The IDCODE breakdown, using my script to decode JTAG IDCODEs, is as follows:
Decoding of JTAG IDCODE 0x4BA00477 (1268778103, 0b01001011101000000000010001110111): Version: 0b0100 (0x4, 4) Part number: 0b1011101000000000 (0xBA00, 47616) Manufacturer: 0b01000111011 (0x23B, 571) # Name: ARM Ltd. Leading bit: 1 # Always set to 1 according to the IEEE standard 1149.1