aboutsummaryrefslogtreecommitdiffstats
path: root/sw/README.rst
blob: e1b2f698111a69e4fad64f048dbe80f759001bdd (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
59
60
61
62
63
64
65
66
67
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
- Initialiser entrée numérique D4 pour mesurer contacts auxiliaires des dijoncteurs des trois phases de l'éolienne.

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                     |
| `CAPA`           | Une valeur en mAh                           |
| `RELAY`          | Etats des trois relais, `On` ou `Off`       |
| `VBAT+`          | Une valeur en mV                            |
| `VBAT-`          | Une valeur en mV                            |
| `DISJEOL`        | `On` ou `Off`, état du disjoncteur eolienne |
+--------------------+-------------------------------------------+

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

TODO
----

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


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`

Remarques
---------

- Le DS18B20 ne sera pas assemblé, l'entrée D4 et son footprint réutilisés pour brancher les auxiliaires des
  disjoncteurs de l'éolienne


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