From fc7786299e72bfbc2e6d484c5b51b083d8460456 Mon Sep 17 00:00:00 2001 From: Will Langford <langfordw@gmail.com> Date: Sat, 9 Dec 2017 15:39:22 -0500 Subject: [PATCH] init commit --- boards.txt | 147 ++++++++++++++++++ bootloaders/ATmegaBOOT_168_atmega328.hex | 125 +++++++++++++++ .../ATmegaBOOT_168_atmega328_pro_8MHz.hex | 124 +++++++++++++++ platform.txt | 11 ++ variants/tiny14/pins_arduino.h | 132 ++++++++++++++++ variants/tiny8/pins_arduino.h | 126 +++++++++++++++ 6 files changed, 665 insertions(+) create mode 100644 boards.txt create mode 100644 bootloaders/ATmegaBOOT_168_atmega328.hex create mode 100644 bootloaders/ATmegaBOOT_168_atmega328_pro_8MHz.hex create mode 100644 platform.txt create mode 100644 variants/tiny14/pins_arduino.h create mode 100644 variants/tiny8/pins_arduino.h diff --git a/boards.txt b/boards.txt new file mode 100644 index 0000000..c07eb46 --- /dev/null +++ b/boards.txt @@ -0,0 +1,147 @@ +################################################### +####### ATmega Boards w/ Arduino Bootloader ####### +################################################### + +atmega328p8bl.name=ATmega328p (Internal 8MHz) w/ bootloader +atmega328p8bl.upload.protocol=arduino +atmega328p8bl.upload.speed=57600 +atmega328p8bl.bootloader.unlock_bits=0x3F +atmega328p8bl.bootloader.lock_bits=0x0F +atmega328p8bl.build.core=arduino:arduino +atmega328p8bl.upload.maximum_size=30720 +atmega328p8bl.build.mcu=atmega328p +atmega328p8bl.build.variant=arduino:standard +atmega328p8bl.bootloader.low_fuses=0xE2 +atmega328p8bl.bootloader.high_fuses=0xDA +atmega328p8bl.extended_fuses=0x07 +atmega328p8bl.build.f_cpu=8000000L +atmega328p8bl.bootloader.path=arduino:atmega +atmega328p8bl.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex +atmega328p8bl.build.board = AVR_ATMEGA328P8BL + +atmega328p16bl.name=ATmega328p (External 16MHz) w/ bootloader +atmega328p16bl.upload.protocol=arduino +atmega328p16bl.upload.speed=57600 +atmega328p16bl.bootloader.unlock_bits=0x3F +atmega328p16bl.bootloader.lock_bits=0x0F +atmega328p16bl.build.core=arduino:arduino +atmega328p16bl.upload.maximum_size=30720 +atmega328p16bl.build.mcu=atmega328p +atmega328p16bl.build.variant=arduino:standard +atmega328p16bl.bootloader.low_fuses=0xFF +atmega328p16bl.bootloader.high_fuses=0xDA +atmega328p16bl.extended_fuses=0xFD +atmega328p16bl.build.f_cpu=16000000L +atmega328p16bl.bootloader.path=arduino:atmega +atmega328p16bl.bootloader.file=ATmegaBOOT_168_atmega328.hex +atmega328p16bl.build.board = AVR_ATMEGA328P16BL + +############################################# +############### ATmega Boards ############### +############################################# + +menu.cpu=Processor +menu.clock=Clock + +fabatmega.name=ATmega +fabatmega.upload.protocol=arduino +fabatmega.upload.speed=57600 +fabatmega.bootloader.unlock_bits=0x3F +fabatmega.bootloader.lock_bits=0x0F +fabatmega.build.core=arduino:arduino +fabatmega.build.baord=AVR_FABATMEGA + +fabatmega.menu.cpu.atmega328p=ATmega328p +fabatmega.menu.cpu.atmega328p.upload.maximum_size=30720 +fabatmega.menu.cpu.atmega328p.build.mcu=atmega328p +fabatmega.menu.cpu.atmega328p.build.variant=arduino:standard + + +fabatmega.menu.clock.internal8=8 MHz (internal) +fabatmega.menu.clock.internal8.bootloader.low_fuses=0xE2 +fabatmega.menu.clock.internal8.bootloader.high_fuses=0xDA +fabatmega.menu.clock.internal8.bootloader.extended_fuses=0x07 +fabatmega.menu.clock.internal8.build.f_cpu=8000000L + +fabatmega.menu.clock.external8=8 MHz (external) +fabatmega.menu.clock.external8.bootloader.low_fuses=0xFF +fabatmega.menu.clock.external8.bootloader.high_fuses=0xDA +fabatmega.menu.clock.external8.bootloader.extended_fuses=0xFD +fabatmega.menu.clock.external8.build.f_cpu=8000000L + +fabatmega.menu.clock.external16=16 MHz (external) +fabatmega.menu.clock.external16.bootloader.low_fuses=0xFF +fabatmega.menu.clock.external16.bootloader.high_fuses=0xDA +fabatmega.menu.clock.external16.bootloader.extended_fuses=0xFD +fabatmega.menu.clock.external16.build.f_cpu=16000000L + +fabatmega.menu.clock.external20=20 MHz (external) +fabatmega.menu.clock.external20.bootloader.low_fuses=0xFF +fabatmega.menu.clock.external20.bootloader.high_fuses=0xDA +fabatmega.menu.clock.external20.bootloader.extended_fuses=0xFD +fabatmega.menu.clock.external20.build.f_cpu=20000000L + +############################################# +############### ATtiny Boards ############### +############################################# + +menu.cpu=Processor +menu.clock=Clock + +attiny.name=ATtiny +attiny.bootloader.tool=arduino:avrdude +attiny.bootloader.unlock_bits=0xff +attiny.bootloader.lock_bits=0xff +attiny.build.core=arduino:arduino +attiny.build.board=attiny +attiny.upload.tool=arduino:avrdude + +attiny.menu.cpu.attiny45=ATtiny45 +attiny.menu.cpu.attiny45.upload.maximum_size=4096 +attiny.menu.cpu.attiny45.build.mcu=attiny45 +attiny.menu.cpu.attiny45.build.variant=tiny8 + +attiny.menu.cpu.attiny85=ATtiny85 +attiny.menu.cpu.attiny85.upload.maximum_size=8192 +attiny.menu.cpu.attiny85.build.mcu=attiny85 +attiny.menu.cpu.attiny85.build.variant=tiny8 + +attiny.menu.cpu.attiny44=ATtiny44 +attiny.menu.cpu.attiny44.upload.maximum_size=4096 +attiny.menu.cpu.attiny44.build.mcu=attiny44 +attiny.menu.cpu.attiny44.build.variant=tiny14 + +attiny.menu.cpu.attiny84=ATtiny84 +attiny.menu.cpu.attiny84.upload.maximum_size=8192 +attiny.menu.cpu.attiny84.build.mcu=attiny84 +attiny.menu.cpu.attiny84.build.variant=tiny14 + +attiny.menu.clock.internal1=1 MHz (internal) +attiny.menu.clock.internal1.bootloader.low_fuses=0x62 +attiny.menu.clock.internal1.bootloader.high_fuses=0xdf +attiny.menu.clock.internal1.bootloader.extended_fuses=0xff +attiny.menu.clock.internal1.build.f_cpu=1000000L + +attiny.menu.clock.internal8=8 MHz (internal) +attiny.menu.clock.internal8.bootloader.low_fuses=0xe2 +attiny.menu.clock.internal8.bootloader.high_fuses=0xdf +attiny.menu.clock.internal8.bootloader.extended_fuses=0xff +attiny.menu.clock.internal8.build.f_cpu=8000000L + +attiny.menu.clock.external8=8 MHz (external) +attiny.menu.clock.external8.bootloader.low_fuses=0xfe +attiny.menu.clock.external8.bootloader.high_fuses=0xdf +attiny.menu.clock.external8.bootloader.extended_fuses=0xff +attiny.menu.clock.external8.build.f_cpu=8000000L + +attiny.menu.clock.external16=16 MHz (external) +attiny.menu.clock.external16.bootloader.low_fuses=0xfe +attiny.menu.clock.external16.bootloader.high_fuses=0xdf +attiny.menu.clock.external16.bootloader.extended_fuses=0xff +attiny.menu.clock.external16.build.f_cpu=16000000L + +attiny.menu.clock.external20=20 MHz (external) +attiny.menu.clock.external20.bootloader.low_fuses=0xfe +attiny.menu.clock.external20.bootloader.high_fuses=0xdf +attiny.menu.clock.external20.bootloader.extended_fuses=0xff +attiny.menu.clock.external20.build.f_cpu=20000000L diff --git a/bootloaders/ATmegaBOOT_168_atmega328.hex b/bootloaders/ATmegaBOOT_168_atmega328.hex new file mode 100644 index 0000000..43a8b30 --- /dev/null +++ b/bootloaders/ATmegaBOOT_168_atmega328.hex @@ -0,0 +1,125 @@ +:107800000C94343C0C94513C0C94513C0C94513CE1 +:107810000C94513C0C94513C0C94513C0C94513CB4 +:107820000C94513C0C94513C0C94513C0C94513CA4 +:107830000C94513C0C94513C0C94513C0C94513C94 +:107840000C94513C0C94513C0C94513C0C94513C84 +:107850000C94513C0C94513C0C94513C0C94513C74 +:107860000C94513C0C94513C11241FBECFEFD8E036 +:10787000DEBFCDBF11E0A0E0B1E0ECE9FFE702C060 +:1078800005900D92A230B107D9F712E0A2E0B1E065 +:1078900001C01D92AD30B107E1F70E942D3D0C945F +:1078A000CC3F0C94003C982F959595959595959582 +:1078B000905D8F708A307CF0282F295A8091C0000B +:1078C00085FFFCCF9093C6008091C00085FFFCCF60 +:1078D0002093C6000895282F205DF0CF982F809127 +:1078E000C00085FFFCCF9093C6000895EF92FF92F1 +:1078F0000F931F93EE24FF2487018091C00087FD22 +:1079000017C00894E11CF11C011D111D81E4E8164B +:1079100082E4F8068FE0080780E0180770F3E09132 +:107920000401F091050109958091C00087FFE9CF1E +:107930008091C6001F910F91FF90EF9008950E94D3 +:10794000763C982F8091C00085FFFCCF9093C600B5 +:1079500091362CF490330CF09053892F089597555D +:10796000892F08951F930E949F3C182F0E949F3CCF +:107970001295107F810F1F9108951F93182F882350 +:1079800021F00E94763C1150E1F71F9108951F935A +:10799000182F0E94763C803249F0809103018F5F5E +:1079A000809303018530C1F01F9108958091C0003C +:1079B00085FFFCCF84E18093C6008091C00085FFE5 +:1079C000FCCF1093C6008091C00085FFFCCF80E102 +:1079D0008093C6001F910895E0910401F091050184 +:1079E00009951F9108950E94763C803241F0809164 +:1079F00003018F5F80930301853081F008958091AA +:107A0000C00085FFFCCF84E18093C6008091C00058 +:107A100085FFFCCF80E18093C6000895E0910401CA +:107A2000F09105010995089540E951E08823A1F0FE +:107A30002D9A28EE33E0FA013197F1F721503040CA +:107A4000D1F72D9828EE33E0FA013197F1F7215064 +:107A50003040D1F7815061F708953F924F925F9285 +:107A60006F927F928F929F92AF92BF92CF92DF924E +:107A7000EF92FF920F931F93CF93DF93000080E16B +:107A80008093C4001092C50088E18093C10086E015 +:107A90008093C2005098589A259A81E00E94143D24 +:107AA00024E1F22E9EE1E92E85E9D82E0FE0C02ECA +:107AB00010E1B12EAA24A394B1E49B2EA6E58A2E50 +:107AC000F2E57F2EE0E26E2E79E4572E63E5462E36 +:107AD00050E5352E0E94763C8033B1F18133B9F107 +:107AE000803409F46FC0813409F476C0823409F41B +:107AF00085C0853409F488C0803531F1823521F1A3 +:107B0000813511F1853509F485C0863509F48DC0BC +:107B1000843609F496C0843709F403C1853709F423 +:107B200072C1863709F466C0809103018F5F80932C +:107B30000301853079F6E0910401F0910501099582 +:107B40000E94763C803351F60E94F33CC3CF0E94E2 +:107B5000763C803249F78091C00085FFFCCFF092DF +:107B6000C6008091C00085FFFCCF9092C600809136 +:107B7000C00085FFFCCF8092C6008091C00085FFC9 +:107B8000FCCF7092C6008091C00085FFFCCF609250 +:107B9000C6008091C00085FFFCCF5092C600809146 +:107BA000C00085FFFCCF4092C6008091C00085FFD9 +:107BB000FCCF3092C6008091C00085FFFCCFB09210 +:107BC000C60088CF0E94763C863808F4BDCF0E945C +:107BD000763C0E94F33C7ECF0E94763C803809F4CC +:107BE0009CC0813809F40BC1823809F43CC1883942 +:107BF00009F48FC080E00E94C73C6CCF84E10E94F2 +:107C0000BD3C0E94F33C66CF85E00E94BD3C0E94D3 +:107C1000F33C60CF0E94763C809306010E94763C44 +:107C2000809307010E94F33C55CF0E94763C80333D +:107C300009F41DC183E00E94BD3C80E00E94C73C66 +:107C400049CF0E94763C809309020E94763C809343 +:107C5000080280910C028E7F80930C020E94763C79 +:107C6000853409F415C18091080290910902892B8D +:107C700089F000E010E00E94763CF801E85FFE4FDA +:107C800080830F5F1F4F80910802909109020817AF +:107C9000190788F30E94763C803209F045CF809125 +:107CA0000C0280FF01C16091060170910701660F0F +:107CB000771F7093070160930601A0910802B091AD +:107CC00009021097C9F0E8E0F1E09B01AD014E0F09 +:107CD0005F1FF999FECF32BD21BD819180BDFA9A17 +:107CE000F99A2F5F3F4FE417F50799F76A0F7B1F4B +:107CF00070930701609306018091C00085FFFCCF5F +:107D0000F092C6008091C00085FFFCCFB092C60003 +:107D1000E1CE83E00E94C73CDDCE82E00E94C73CFA +:107D2000D9CE0E94763C809309020E94763C8093D3 +:107D300008028091060190910701880F991F909386 +:107D40000701809306010E94763C853409F4A6C0A1 +:107D500080910C028E7F80930C020E94763C8032D0 +:107D600009F0B8CE8091C00085FFFCCFF092C6002C +:107D7000609108027091090261157105B9F140E046 +:107D800050E080910C02A82FA170B82FB27011C0E2 +:107D9000BB2309F45CC0E0910601F0910701319624 +:107DA000F0930701E09306014F5F5F4F46175707B7 +:107DB000E8F4AA2369F3F999FECF209106013091E6 +:107DC000070132BD21BDF89A90B58091C00085FFB2 +:107DD000FCCF9093C6002F5F3F4F30930701209355 +:107DE00006014F5F5F4F4617570718F38091C00099 +:107DF00085FDE5CE8091C00085FFF8CFE0CE81E023 +:107E00000E94C73C67CE0E94763C803209F08CCE3F +:107E10008091C00085FFFCCFF092C6008091C00029 +:107E200085FFFCCFE092C6008091C00085FFFCCFAB +:107E3000D092C6008091C00085FFFCCFC092C600E2 +:107E40008091C00085FFFCCFB092C60043CEE09188 +:107E50000601F091070194918091C00085FFFCCF4D +:107E60009093C6009CCF80E10E94C73C33CE0E9415 +:107E7000763C0E94763C182F0E94763C112309F430 +:107E800083C0113009F484C08FE00E94C73C22CE29 +:107E900080910C02816080930C02E5CE80910C02EF +:107EA000816080930C0259CF809107018823880F4D +:107EB000880B8A2180930B02809106019091070123 +:107EC000880F991F90930701809306018091080203 +:107ED00080FF09C080910802909109020196909359 +:107EE000090280930802F894F999FECF1127E091D6 +:107EF0000601F0910701C8E0D1E08091080290915D +:107F00000902103091F40091570001700130D9F34B +:107F100003E000935700E89500915700017001308D +:107F2000D9F301E100935700E89509901990009169 +:107F3000570001700130D9F301E000935700E89534 +:107F40001395103498F011270091570001700130FB +:107F5000D9F305E000935700E895009157000170B0 +:107F60000130D9F301E100935700E895329602976A +:107F700009F0C7CF103011F00296E5CF112480919F +:107F8000C00085FFB9CEBCCE8EE10E94C73CA2CD19 +:0C7F900085E90E94C73C9ECDF894FFCF0D +:027F9C00800063 +:040000030000780081 +:00000001FF diff --git a/bootloaders/ATmegaBOOT_168_atmega328_pro_8MHz.hex b/bootloaders/ATmegaBOOT_168_atmega328_pro_8MHz.hex new file mode 100644 index 0000000..9753e2e --- /dev/null +++ b/bootloaders/ATmegaBOOT_168_atmega328_pro_8MHz.hex @@ -0,0 +1,124 @@ +:107800000C94343C0C94513C0C94513C0C94513CE1 +:107810000C94513C0C94513C0C94513C0C94513CB4 +:107820000C94513C0C94513C0C94513C0C94513CA4 +:107830000C94513C0C94513C0C94513C0C94513C94 +:107840000C94513C0C94513C0C94513C0C94513C84 +:107850000C94513C0C94513C0C94513C0C94513C74 +:107860000C94513C0C94513C11241FBECFEFD8E036 +:10787000DEBFCDBF11E0A0E0B1E0EAE8FFE702C063 +:1078800005900D92A230B107D9F712E0A2E0B1E065 +:1078900001C01D92AD30B107E1F70E942D3D0C945F +:1078A000C33F0C94003C982F95959595959595958B +:1078B000905D8F708A307CF0282F295A8091C0000B +:1078C00085FFFCCF9093C6008091C00085FFFCCF60 +:1078D0002093C6000895282F205DF0CF982F809127 +:1078E000C00085FFFCCF9093C6000895EF92FF92F1 +:1078F0000F931F93EE24FF2487018091C00087FD22 +:1079000017C00894E11CF11C011D111D81E2E8164D +:1079100081EAF80687E0080780E0180770F3E09135 +:107920000401F091050109958091C00087FFE9CF1E +:107930008091C6001F910F91FF90EF9008950E94D3 +:10794000763C982F8091C00085FFFCCF9093C600B5 +:1079500091362CF490330CF09053892F089597555D +:10796000892F08951F930E949F3C182F0E949F3CCF +:107970001295107F810F1F9108951F93182F882350 +:1079800021F00E94763C1150E1F71F9108951F935A +:10799000182F0E94763C803249F0809103018F5F5E +:1079A000809303018530C1F01F9108958091C0003C +:1079B00085FFFCCF84E18093C6008091C00085FFE5 +:1079C000FCCF1093C6008091C00085FFFCCF80E102 +:1079D0008093C6001F910895E0910401F091050184 +:1079E00009951F9108950E94763C803241F0809164 +:1079F00003018F5F80930301853081F008958091AA +:107A0000C00085FFFCCF84E18093C6008091C00058 +:107A100085FFFCCF80E18093C6000895E0910401CA +:107A2000F09105010995089548EC50E08823A1F0F4 +:107A30002D9A28EE33E0FA013197F1F721503040CA +:107A4000D1F72D9828EE33E0FA013197F1F7215064 +:107A50003040D1F7815061F708953F924F925F9285 +:107A60006F927F928F929F92AF92BF92CF92DF924E +:107A7000EF92FF920F931F93CF93DF93000082E06A +:107A80008093C00080E18093C4001092C50088E11B +:107A90008093C10086E08093C2005098589A259A3E +:107AA00081E00E94143D24E1F22E9EE1E92E85E959 +:107AB000D82E0FE0C02E10E1B12EAA24A394B1E479 +:107AC0009B2EA6E58A2EF2E57F2EE0E26E2E79E46B +:107AD000572E63E5462E50E5352E0E94763C8033C6 +:107AE000B1F18133B9F1803409F46FC0813409F404 +:107AF00076C0823409F485C0853409F488C08035A5 +:107B000031F1823521F1813511F1853509F485C0D6 +:107B1000863509F48DC0843609F496C0843709F49B +:107B200003C1853709F472C1863709F466C08091B4 +:107B300003018F5F80930301853079F6E0910401A2 +:107B4000F091050109950E94763C803351F60E9420 +:107B5000F33CC3CF0E94763C803249F78091C0004D +:107B600085FFFCCFF092C6008091C00085FFFCCF5E +:107B70009092C6008091C00085FFFCCF8092C60025 +:107B80008091C00085FFFCCF7092C6008091C0003C +:107B900085FFFCCF6092C6008091C00085FFFCCFBE +:107BA0005092C6008091C00085FFFCCF4092C60075 +:107BB0008091C00085FFFCCF3092C6008091C0004C +:107BC00085FFFCCFB092C60088CF0E94763C8638F5 +:107BD00008F4BDCF0E94763C0E94F33C7ECF0E9409 +:107BE000763C803809F49CC0813809F40BC1823896 +:107BF00009F430C1883909F48FC080E00E94C73C85 +:107C00006CCF84E10E94BD3C0E94F33C66CF85E0CE +:107C10000E94BD3C0E94F33C60CF0E94763C809362 +:107C200006010E94763C809307010E94F33C55CFE9 +:107C30000E94763C803309F411C183E00E94BD3C70 +:107C400080E00E94C73C49CF0E94763C80930902A5 +:107C50000E94763C8093080280910C028E7F809374 +:107C60000C020E94763C853409F409C18091080217 +:107C700090910902892B89F000E010E00E94763C87 +:107C8000F801E85FFE4F80830F5F1F4F809108026D +:107C9000909109020817190788F30E94763C8032F8 +:107CA00009F045CF80910C0280FFF5C0609106017C +:107CB00070910701660F771F7093070160930601AB +:107CC000A0910802B09109021097C9F0E8E0F1E034 +:107CD0009B01AD014E0F5F1FF999FECF32BD21BD53 +:107CE000819180BDFA9AF99A2F5F3F4FE417F5070B +:107CF00099F76A0F7B1F70930701609306018091CB +:107D0000C00085FFFCCFF092C6008091C00085FFC7 +:107D1000FCCFB092C600E1CE83E00E94C73CDDCE2E +:107D200082E00E94C73CD9CE0E94763C8093090233 +:107D30000E94763C80930802809106019091070191 +:107D4000880F991F90930701809306010E94763C4B +:107D5000853409F49AC080910C028E7F80930C02C6 +:107D60000E94763C803209F0B8CE8091C00085FF39 +:107D7000FCCFF092C600A0910802B09109021097C2 +:107D8000C1F180910C02082F0170182F1695117007 +:107D9000E0910601F0910701AF014F5F5F4FBA011B +:107DA00020E030E00023B1F4112339F49491809164 +:107DB000C00085FFFCCF9093C6002F5F3F4FCB01E3 +:107DC0000196FA012A173B0780F4BC014F5F5F4F11 +:107DD000002351F3F999FECFF2BDE1BDF89A90B5B9 +:107DE0008091C00085FFFCCFE6CF709307016093C0 +:107DF00006018091C00085FDE5CE8091C00085FF21 +:107E0000F8CFE0CE81E00E94C73C67CE0E94763C6E +:107E1000803209F08CCE8091C00085FFFCCFF092BB +:107E2000C6008091C00085FFFCCFE092C600809123 +:107E3000C00085FFFCCFD092C6008091C00085FFB6 +:107E4000FCCFC092C6008091C00085FFFCCFB092ED +:107E5000C60043CE80E10E94C73C3FCE0E94763CE4 +:107E60000E94763C182F0E94763C112309F483C0AF +:107E7000113009F484C08FE00E94C73C2ECE80915F +:107E80000C02816080930C02F1CE80910C02816023 +:107E900080930C0265CF809107018823880F880B9F +:107EA0008A2180930B028091060190910701880F2F +:107EB000991F90930701809306018091080280FF2B +:107EC00009C08091080290910902019690930902DD +:107ED00080930802F894F999FECF1127E0910601EA +:107EE000F0910701C8E0D1E0809108029091090269 +:107EF000103091F40091570001700130D9F303E084 +:107F000000935700E8950091570001700130D9F3B4 +:107F100001E100935700E8950990199000915700EE +:107F200001700130D9F301E000935700E8951395F3 +:107F3000103498F011270091570001700130D9F3E7 +:107F400005E000935700E89500915700017001305B +:107F5000D9F301E100935700E8953296029709F0B2 +:107F6000C7CF103011F00296E5CF11248091C000E8 +:107F700085FFC5CEC8CE8EE10E94C73CAECD85E957 +:0A7F80000E94C73CAACDF894FFCF81 +:027F8A00800075 +:040000030000780081 +:00000001FF diff --git a/platform.txt b/platform.txt new file mode 100644 index 0000000..68860c8 --- /dev/null +++ b/platform.txt @@ -0,0 +1,11 @@ +name=Fab Boards +version=0.0.1 + +tools.avrdude.path={runtime.tools.avrdude.path} +tools.avrdude.erase.params.verbose=-v -v -v -v +tools.avrdude.erase.params.quiet=-q -q +tools.avrdude.erase.pattern="{cmd.path}" "-C{config.path}" {erase.verbose} -p{build.mcu} -c{protocol} {program.extra_params} -e -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:{bootloader.high_fuses}:m -Ulfuse:w:{bootloader.low_fuses}:m + +tools.avrdude.bootloader.params.verbose=-v -v -v -v +tools.avrdude.bootloader.params.quiet=-q -q +tools.avrdude.bootloader.pattern="{cmd.path}" "-C{config.path}" {bootloader.verbose} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{runtime.platform.path}/{bootloader.path}/{bootloader.file}:i" -Ulock:w:{bootloader.lock_bits}:m \ No newline at end of file diff --git a/variants/tiny14/pins_arduino.h b/variants/tiny14/pins_arduino.h new file mode 100644 index 0000000..1a5711d --- /dev/null +++ b/variants/tiny14/pins_arduino.h @@ -0,0 +1,132 @@ +/* + pins_arduino.c - pin definitions for the Arduino board + Part of Arduino / Wiring Lite + + Copyright (c) 2005 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: pins_arduino.c 565 2009-03-25 10:50:00Z dmellis $ + + Modified 28-08-2009 for attiny84 R.Wiersma + Modified 09-10-2009 for attiny45 A.Saporetti +*/ + +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include <avr/pgmspace.h> + +// ATMEL ATTINY84 / ARDUINO +// +// +-\/-+ +// VCC 1| |14 GND +// (D 10) PB0 2| |13 AREF (D 0) +// (D 9) PB1 3| |12 PA1 (D 1) +// PB3 4| |11 PA2 (D 2) +// PWM INT0 (D 8) PB2 5| |10 PA3 (D 3) +// PWM (D 7) PA7 6| |9 PA4 (D 4) +// PWM (D 6) PA6 7| |8 PA5 (D 5) PWM +// +----+ + +const static uint8_t A0 = 0; +const static uint8_t A1 = 1; +const static uint8_t A2 = 2; +const static uint8_t A3 = 3; +const static uint8_t A4 = 4; +const static uint8_t A5 = 5; +const static uint8_t A6 = 6; +const static uint8_t A7 = 7; + +#define digitalPinToPCICR(p) ( ((p) >= 0 && (p) <= 10) ? (&GIMSK) : ((uint8_t *)0) ) +#define digitalPinToPCICRbit(p) ( ((p) <= 7) ? PCIE0 : PCIE1 ) +#define digitalPinToPCMSK(p) ( ((p) <= 7) ? (&PCMSK0) : (((p) <= 10) ? (&PCMSK1) : ((uint8_t *)0)) ) +#define digitalPinToPCMSKbit(p) ( ((p) <= 7) ? (p) : (10 - (p)) ) + +#ifdef ARDUINO_MAIN + +// these arrays map port names (e.g. port B) to the +// appropriate addresses for various functions (e.g. reading +// and writing) +const uint16_t PROGMEM port_to_mode_PGM[] = +{ + NOT_A_PORT, + (uint16_t)&DDRA, + (uint16_t)&DDRB, +}; + +const uint16_t PROGMEM port_to_output_PGM[] = +{ + NOT_A_PORT, + (uint16_t)&PORTA, + (uint16_t)&PORTB, +}; + +const uint16_t PROGMEM port_to_input_PGM[] = +{ + NOT_A_PORT, + (uint16_t)&PINA, + (uint16_t)&PINB, +}; + +const uint8_t PROGMEM digital_pin_to_port_PGM[] = +{ + PA, /* 0 */ + PA, + PA, + PA, + PA, + PA, + PA, + PA, + PB, /* 8 */ + PB, + PB, +}; + +const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = +{ + _BV(0), /* port A */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), + _BV(6), + _BV(7), + _BV(2), /* port B */ + _BV(1), + _BV(0), +}; + +const uint8_t PROGMEM digital_pin_to_timer_PGM[] = +{ + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + TIMER1B, /* OC1B */ + TIMER1A, /* OC1A */ + TIMER0B, /* OC0B */ + TIMER0A, /* OC0A */ + NOT_ON_TIMER, + NOT_ON_TIMER, +}; + +#endif + +#endif diff --git a/variants/tiny8/pins_arduino.h b/variants/tiny8/pins_arduino.h new file mode 100644 index 0000000..09fd0aa --- /dev/null +++ b/variants/tiny8/pins_arduino.h @@ -0,0 +1,126 @@ +/* + pins_arduino.c - pin definitions for the Arduino board + Part of Arduino / Wiring Lite + + Copyright (c) 2005 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: pins_arduino.c 565 2009-03-25 10:50:00Z dmellis $ + + Modified 28-08-2009 for attiny84 R.Wiersma + Modified 09-10-2009 for attiny45 A.Saporetti +*/ + +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include <avr/pgmspace.h> + +// ATMEL ATTINY45 / ARDUINO +// +// +-\/-+ +// Ain0 (D 5) PB5 1| |8 Vcc +// Ain3 (D 3) PB3 2| |7 PB2 (D 2) Ain1 +// Ain2 (D 4) PB4 3| |6 PB1 (D 1) pwm1 +// GND 4| |5 PB0 (D 0) pwm0 +// +----+ + +static const uint8_t A0 = 6; +static const uint8_t A1 = 7; +static const uint8_t A2 = 8; +static const uint8_t A3 = 9; + +#define digitalPinToPCICR(p) ( ((p) >= 0 && (p) <= 4) ? (&GIMSK) : ((uint8_t *)0) ) +#define digitalPinToPCICRbit(p) ( PCIE ) +#define digitalPinToPCMSK(p) ( ((p) <= 4) ? (&PCMSK) : ((uint8_t *)0) ) +#define digitalPinToPCMSKbit(p) ( (p) ) + +#define analogPinToChannel(p) ( (p) < 6 ? (p) : (p) - 6 ) + +#define TCCR1A GTCCR + +#ifdef ARDUINO_MAIN + +void initVariant() +{ + GTCCR |= (1 << PWM1B); +} + +// these arrays map port names (e.g. port B) to the +// appropriate addresses for various functions (e.g. reading +// and writing) tiny45 only port B +const uint16_t PROGMEM port_to_mode_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &DDRB, +}; + +const uint16_t PROGMEM port_to_output_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &PORTB, +}; + +const uint16_t PROGMEM port_to_input_PGM[] = { + NOT_A_PIN, + NOT_A_PIN, + (uint16_t) &PINB, +}; + +const uint8_t PROGMEM digital_pin_to_port_PGM[] = { + PB, /* 0 */ + PB, + PB, + PB, + PB, + PB, // 5 + PB, // A0 + PB, + PB, + PB, // A4 + +}; + +const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { + _BV(0), /* 0, port B */ + _BV(1), + _BV(2), + _BV(3), /* 3 port B */ + _BV(4), + _BV(5), + _BV(5), + _BV(2), + _BV(4), + _BV(3), +}; + +const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { + TIMER0A, /* OC0A */ + TIMER0B, + NOT_ON_TIMER, + NOT_ON_TIMER, + TIMER1B, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, +}; + +#endif + +#endif \ No newline at end of file -- GitLab