ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ: AVR ATMega. Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π·Π°Π΄Π°ΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°: ΠΡΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°Π½ΠΈΡ Π² Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅ ΠΠ AVR, ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ atmega328p, Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ ΠΈ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠΌ. Π‘Π°ΠΌΠ° Π·Π°Π΄Π°ΡΠ° Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½Π°Ρ Π½ΡΠΆΠ½ΠΎ ΠΈΠ· Π΄Π²ΡΡ
Π³ΠΎΡΠΎΠ²ΡΡ
Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΎΠ² ΡΠΎΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½. ΠΡΠΎ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ optiboot ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ https://github.com/arduino/ArduinoCore-avr ΠΈ CAN Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ, Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ Π·Π΄Π΅ΡΡ: http://www.kreatives-chaos.com/artikel/can-bootloader Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Ρ Π½ΠΈΠΌ Π²ΠΎΡ: https://github.com/dergraaf/bootloader-can ΠΈ https://github.com/ma-go/AtmegaCanBootloader . Π’.Π΅. Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎ UART (optiboot) ΡΠ΅ΡΠ΅Π· Arduino IDEA, ΡΠ°ΠΊ ΠΈ ΠΏΠΎ CAN ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΡΠ΅ΡΠ΅Π· ΠΌΠΎΠ΄ΡΠ»ΠΈ MCP-2515. ΠΠ°Π³ΡΡΠ·ΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ (ΡΡΠ»ΠΎΠ²Π½ΠΎ ΠΎΡΠΊΡΠ΄Π° ΡΠ°Π½ΡΡΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· UART ΠΈΠ»ΠΈ SPI (CAN - MCP-2515)). ΠΡΠΈ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π΅ ΠΊ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅ ΠΏΠΎ CAN, Π²ΠΈΠ΄ΠΈΠΌΠΎ Π»ΡΡΡΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ watchDog Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡ (ΠΎΠ½ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² optiboot-Π΅). ΠΡΡ Π² Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ΅ ΠΏΠΎ CAN Π½ΡΠΆΠ½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π±Π΅Π· ΠΎΡΠΎΠ±ΡΡ
ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΈΡ
ΡΠ΅ΡΠ΅Π· #define). ΠΠΎΠ΄ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ (ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅), ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½Π°Ρ ΡΠ°ΡΡΡ. Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ΄ΡΡΡΡ Π΄ΠΎΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈ makefile Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎΡΠ»Π΅ make, hex ΡΠ°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² arduino. Π―ΡΠ½ΠΎ, ΡΡΠΎ fuse-Π±ΠΈΡΡ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΌΠ΅Π½ΡΡΡ, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Ρ boot ΡΠ΅ΠΊΡΠΈΡ. Π’Π°ΠΊΠΆΠ΅ Π½ΡΠΆΠ΅Π½ ΠΊΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΠ΅ΡΠ΅Π· EXTRF, Ρ.ΠΊ. Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΡΠ°ΠΊΠΈΠΌ ΡΠΎΠ±ΡΡΠΈΡΠΌ, Π° ΠΏΠΎ CAN, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ½Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π²ΡΠ·Π²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π΅Ρ. Π’.Π΅. Π½ΡΠΆΠ½ΠΎ ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΈΠ½ΠΎΠ², Π²Π΅ΠΊΡΠΎΡΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΈ Ρ.ΠΏ. (Π΄Π΅Π»Π°ΡΡ ΡΠΎ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΏΠΎ ΠΏΠΈΠ½Ρ reset), ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ΅Π³ΠΈΡΡΡ MCUSR Π² Π½ΡΠΆΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° (ΡΡΠ»ΠΎΠ²Π½ΠΎ ΠΏΡΡΠ³Π°ΡΡ ΠΊ Π΅Π³ΠΎ ΠΊΠΎΠ΄Ρ).