[FR] ADK de Google vs Arduino Mega 2560

Google a publié des informations et les schémas de sa plateforme matérielle basée sur un dérivé de l’ancien Arduino Mega.

Le chemin qu’ouvre Google au travers de ce produit est promoteur toutefois, on pourrait envisager de développer des shields pour rendre l’Arduino Mega 2560 officiel compatible avec les équipements Android.

Première étape en ce sens, l’analyse de l’ADK (*) de Google réalisée par l’équipe technique de Snootlab.

Micro-contrôleur

Le micro-contrôleur est un ATMega1280 pour ADK, un ATMega2560 pour l’Arduino Mega 2560, même famille, compatibles pin à pin.

Au delà de ce relevé, on notera deux différences principales :

  • Arduino Mega 2560 possède 256k de mémoire flash contre 128k pour ADK
  • Arduino Mega 2560 nécessitera une tension d’alimentation de 5V +/- 0.5V pour fonctionner tandis que l’ADK peut, sans toute fois pouvoir dépasser les 8MHz (contre 16 MHz), tourner avec un VCC de 2.7V

Connectique et alimentation

Sur l’ADK, le connecteur micro-USB est utilisé pour relier la carte au PC, et l’USB type B (modèle commun) gère la communication avec le téléphone portable.
Le convertisseur Step-down de l’ADK permet une dynamique de tension d’entrée sur la fiche femelle plus importante que sur l’Arduino Mega 2560.
Pour une alimentation en USB, le montage de l’Arduino Mega 2560 est préférable (pertes de tensions, micro-courants de fuites, rapport puissance transmise/puissance reçue) même si l’ADK reste fonctionnel lorsqu’alimenté de cette manière.

Communication

L’ADK intègre une fonction USB Host en full/low speed (12Mb/s max) pour y connecter un périphérique esclave.

Cette liaison est gérée par le micro-contrôleur via une liaison SPI, en passant par des adaptateurs de tension 3V3 <-> 5V. La liaison USB avec le PC est quand à elle assurée par un transducteur Série/USB (FT232), comme dans les premières versions de l’Arduino. Les problèmes se retrouvent donc ici, on est obligé d’avoir un bootloader dans l’Atmega de l’ADK, ce qui nous empêche de pouvoir en disposer pleinement.

Sur l’Arduino Mega 2560, le problème a été résolu en déportant la gestion du bootloader sur un micro-contrôleur dédié (ATMega8).

En guise de première conclusion :

  • L’ADK possède une fonction matérielle USB Host, mais elle implique d’implanter plus de composants sur la carte, ne fonctionne qu’en 3V3, utilise le bus SPI et les transferts de niveaux qu’elle impose restreignent certains usages plus poussés.
  • L’Arduino Mega 2560 semble plus efficace et plus riche en termes de possibilités et d’exploitation à fond des ressources présentes sur la carte.

(*) : Android Open Accessory Development Kit