aboutsummaryrefslogtreecommitdiffstats
path: root/sw/README.rst
blob: 9869c4d6f1388924e36b077417fa1d85be0bacfb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Description logiciel
====================

Au démarrage, avant de passer à la mesure régulière, le code doit:

- Initialiser les GPIO
- Mettre en place un timer 100Hz pour pouvoir faire dormir le CPU
- Lire l'EEPROM pour charger le compteur mAh
  - Attention au risque de problemes après 100000 écritures
  - Faire une vérification lecture après écriture et communiquer le problème
- Mettre en place un watchdog
- Initialiser UART (uniquement TX, on verra si on a besoin du RX plus tard)
- Configurer SPI pour le LTC2400
- Initialiser entrées analogiques et mesurer tension batterie

Protocole du port série
-----------------------

Chaque message commence par un identificateur, suivi d'une virgule, du temps en
secondes, une virgule, un champ de données, et termine par CR LF.

+--------------------+-----------------------------------+
| Identificateur     | Contenu du champ                  |
+--------------------+-----------------------------------+
| `TEXT`             | Un message informatif             |
| `ERROR`            | Erreur ou avertissement           |
| `CAPACITY`         | Une valeur en mAh                 |
| `VBAT+`            | Une valeur en mV                  |
| `VBAT-`            | Une valeur en mV                  |
+--------------------+-----------------------------------+

Par exemple: `TEXT,12,Startup\r\n`

TODO
----

- Definir le comportement par defaut au démarrage, pas de glitch!
- Initialiser DS18B20


Reglages eFuse
--------------

- Low: Horloge crystal 8MHz ou plus, Startup time PWRDWN/RESET 1K/14CK + 4.1ms, diviseur /8 actif
- High: tout par défaut
- Ext: Brownout detector: 4.3V

Commande AVRdude equivalente: `-U lfuse:w:0x7e:m -U hfuse:w:0xd9:m -U efuse:w:0xfc:m`

Acknowledgements
================

Le dossier `lib/` contient des fichiers des bibliotheques suivantes:

- OneWire https://github.com/PaulStoffregen/OneWire
- DallasTemperature https://github.com/milesburton/Arduino-Temperature-Control-Library.git
- avr-uart https://github.com/andygock/avr-uart
- Code exemple LTC2400 de l'application note correspondante