From: Peter Henn Date: Sat, 29 Mar 2014 20:58:41 +0000 (+0100) Subject: USBasp 2011.05.28. for Atmega328p 16 MHz X-Git-Url: http://git.linex4red.de/pub/USBasp.git/commitdiff_plain/00bb9c112fa6dfa84d3571659527c13af7170279?ds=inline USBasp 2011.05.28. for Atmega328p 16 MHz - add F_CPU parameter in Makefile328 - add F_CPU parameter in Makefile and use it as pre-define - allow predefined F_CPU define in clock.h and calculate CLOCK_T_320us from given F_CPU frequency - allow predefined F_CPU define in usbconfig.h and calculate USB_CFG_CLOCK_KHZ from given F_CPU frequency - add precompiled atmega328 hex file for 16 MHz quartz --- diff --git a/bin/firmware/Makefile328 b/bin/firmware/Makefile328 index 8957fb37d..f08652806 100644 --- a/bin/firmware/Makefile328 +++ b/bin/firmware/Makefile328 @@ -1,8 +1,15 @@ MCU_TARGET = atmega328p +F_CPU = 16000000 FLASHER = avrdude -c usbasp -p $(MCU_TARGET) usbasp: fuses +ifeq ($(F_CPU), 12000000) $(FLASHER) -B 1 -U flash:w:usbasp.atmega328-12MHz.2011-05-28.hex +else ifeq ($(F_CPU), 16000000) + $(FLASHER) -B 1 -U flash:w:usbasp.atmega328-16MHz.2011-05-28.hex +else + $(error setting of F_CPU is not supported.) +endif fuses: $(FLASHER) -B 300 -U lfuse:w:0xef:m -U hfuse:w:0xd9:m -U efuse:w:0x05:m diff --git a/bin/firmware/usbasp.atmega328-16MHz.2011-05-28.hex b/bin/firmware/usbasp.atmega328-16MHz.2011-05-28.hex new file mode 100644 index 000000000..2f8c8cd0a --- /dev/null +++ b/bin/firmware/usbasp.atmega328-16MHz.2011-05-28.hex @@ -0,0 +1,285 @@ +:100000000C945D000C94CA010C947A000C947A0054 +:100010000C947A000C947A000C947A000C947A0078 +:100020000C947A000C947A000C947A000C947A0068 +:100030000C947A000C947A000C947A000C947A0058 +:100040000C947A000C947A000C947A000C947A0048 +:100050000C947A000C947A000C947A000C947A0038 +:100060000C947A000C947A000902120001010080BD +:100070001909040000000000000012011001FF0037 +:100080000008C016DC050401010200010E03550042 +:10009000530042006100730070001C03770077007A +:1000A00077002E00660069007300630068006C0032 +:1000B0002E00640065000403090411241FBECFEF65 +:1000C000D8E0DEBFCDBF11E0A0E0B1E0E6EAF1E1AB +:1000D00002C005900D92A230B107D9F711E0A2E05D +:1000E000B1E001C01D92AA34B107E1F70E94BF0838 +:1000F0000C94D1080C940000CF93DF9360912801F9 +:10010000635067FD13C080912501CCE0D0E0C81B8F +:10011000D109C45DDE4F809124018D3209F458C0AD +:100120008091020187FD9DC01092280180910001FD +:1001300084FF41C0609101016F3F09F43CC0693008 +:1001400008F470C06850609301018091180198E82C +:1001500089278093180168E08091020187FD1DC006 +:10016000409126015091270186FF72C0FA01862F27 +:10017000A9E1B1E094919D9331968150D9F7262F52 +:10018000215030E02F5F3F4F240F351F3093270160 +:1001900020932601C62FCC5F50C089E191E00E94D8 +:1001A0007F07682F893008F4A4C08FEF8093010186 +:1001B000CEE1C093000194E183B1837031F491509A +:1001C000D9F71092290110922301DF91CF91089560 +:1001D000683009F0A9CF83EC809318018AE58093F9 +:1001E0000001109202018881807609F045C09A8151 +:1001F00010922101898181114AC01092220121E2CD +:1002000031E082E030932701209326018F3FC1F136 +:100210009F81911104C09E81981708F4892F8093C3 +:10022000010182CF109201018091180198E889277D +:1002300080931801611190CFC4E089E191E00E94A0 +:10024000C601CC3009F4B5CF8FEF80930101B1CF57 +:10025000DA01862FE9E1F1E09D9191938150E1F778 +:100260008ECFCE010E94EF078F3FF9F0882309F46B +:100270005BCF1092010158CFCE010E94CB05C6CFB3 +:10028000988197FD16C090E890930201C8CF853001 +:1002900091F0863001F18830D1F0893091F021E27F +:1002A00031E08A3021F180E0ADCF8EE18093000112 +:1002B0003BCF8E81E8CF9093290121E231E080E0AD +:1002C000A1CF90932B0121E231E080E09BCF2BE284 +:1002D00031E081E097CF8B81813001F18230B1F044 +:1002E000833051F080E090E4909302018FCF81E061 +:1002F00089CFC82FCC5FA1CF911118C086EB90E0B9 +:10030000909327018093260184E0EDCF88E690E06A +:10031000909327018093260182E1E5CF8AE790E060 +:10032000909327018093260182E1DDCF913051F037 +:100330009230C1F68CE890E09093270180932601DB +:100340008EE0D1CF8AE990E0909327018093260137 +:100350008CE1C9CFE9E6F0E0808183608083E89A90 +:100360000895A82FB92F80E090E041E050EA609511 +:1003700030E009C02D9182279795879510F084274A +:100380009527305EC8F36F5FA8F30895EADF8D9379 +:100390009D930895CF93CFB7CF93DF93C395189BC9 +:1003A000E9F7189B0BC0189B09C0189B07C0189B46 +:1003B00005C0189B03C0189B01C089C06F93C091F2 +:1003C0002501DD27C45DDE4F2F9365E5189B03C033 +:1003D0002F916F91E6CF0F931F934F9320E040E151 +:1003E0005F9303B1037000FB27F93F9350E03BE0BC +:1003F00039C0137040642F77012F5F5F1EC04068C3 +:1004000013B113702F7752501FC0406403B12F7780 +:100410000370D1F15F5F00C023C0406213B12F773A +:10042000137091F15F5F00C025C003701027515019 +:1004300012F45D5F0000115027952C3F13B1C8F6F0 +:1004400013700127015027952C3FC8F64227499386 +:1004500003B1037010274F73115027952C3FA8F656 +:100460004695469513B1137079F0012701502795F1 +:100470002C3F98F66B5A60F3315003B1B0F600C0D0 +:1004800011E01CBB002717C03B503195C31BD04067 +:1004900011E01CBB0881033CF9F00B34E9F020911A +:1004A00023011981110F1213EDCF093651F10D32CD +:1004B00011F0013E39F700932A013F915F914F916E +:1004C0001F910F912F916F91CCB3C0FD67CFDF913A +:1004D000CF91CFBFCF91189520912A01222369F3A4 +:1004E00010912801112339F534303AF13093280165 +:1004F00020932401109125013BE0311B309325010D +:100500001CC0009128010130B4F40AE530910001CB +:1005100034FD14C000930001C8E1D1E013C00527E9 +:1005200010E000C0000005B91AC0052710E0221F26 +:100530001DC010E021C04AE502C032ED432FC4E1E6 +:10054000D0E032E014B11360289A05B114B953E039 +:1005500020E865E320FF052705B9279517951C3F7F +:10056000F0F66695B8F7B1F720FF052705B927958E +:1005700017951C3FD0F62795179517FF0527000004 +:100580001C3F05B9B0F629913A9519F70C7F1091E7 +:100590002901110FC651D04005B911F01093230164 +:1005A00011E01CBB016014B11C7F402F4C7F54E054 +:1005B0005A95F1F705B914B945B97FCF582F48E0DE +:1005C00080E02091470157FD14C02B98550F880FEC +:1005D0001C998F5F2D9A36B596B5931B9217E0F351 +:1005E0002D9836B596B5931B9217E0F3415059F705 +:1005F00008952B9AEBCF8EBD0DB407FEFDCF8EB5BF +:10060000089521E196958795779567952A95D1F775 +:10061000209146012617D9F060934601E0914301ED +:10062000F09144018DE40995E0914301F09144017A +:1006300080E00995E0914301F091440180914601E9 +:100640000995E0914301F091440180E009940895F7 +:10065000809145018CBD809142018DBD0895882314 +:10066000A1F08830D0F52EED32E030934401209394 +:100670004301843011F1C8F0863021F030F1873029 +:1006800001F180EC8093470108958BEF92E0909305 +:1006900044018093430181E08093470182E5809388 +:1006A000450181E0809342010895823091F08330CA +:1006B00041F780E380934701089588E180934701E3 +:1006C000089583E08093470108958CE0809347016B +:1006D000089580E68093470108952BEF32E0309330 +:1006E0004401209343011092420191E0909347010D +:1006F000893039F050F4883089F683E580934501DC +:10070000089582E58093450108958B3021F08C3067 +:1007100029F69093420181E580934501089526B51D +:100720009091470186B5821B8917E0F3089584B143 +:100730008C6284B92A982D9826B59091470186B588 +:10074000821B8917E0F32A9A26B586B5821B891782 +:10075000E0F32A9880914301909144018B5F92408D +:1007600019F0109246010895809145018CBD809149 +:1007700042018DBD10924601089584B1837D84B9F4 +:1007800085B1837D85B91CBC0895CF93DF93C0E20A +:10079000E0914301F09144018CEA0995E091430115 +:1007A000F091440183E50995E0914301F091440102 +:1007B00080E00995D82FE0914301F091440180E059 +:1007C0000995D33549F11CBC26B59091470186B5F2 +:1007D000821B8917E0F32A9A26B586B5821B8917F2 +:1007E000E0F32A9826B586B5821B8917E0F3E091DD +:1007F0004301F091440182E0EB3FF80731F0C15032 +:1008000059F681E0DF91CF910895809145018CBD2B +:10081000809142018DBDF3CF80E0DF91CF910895AB +:10082000CF92DF92EF92FF926B017C010E94010355 +:10083000D701C60181709927AA27BB27880F880F87 +:10084000880FE0914301F091440180620995D7013E +:10085000C60139E0B695A795979587953A95D1F752 +:10086000E0914301F09144010995D701C601B69585 +:10087000A79597958795E0914301F09144010995DB +:10088000E0914301F091440180E0FF90EF90DF9010 +:10089000CF900994CF92DF92EF92FF920F931F9324 +:1008A000CF93DF936B017C01C42FD22F0E940103F1 +:1008B000970186010170112722273327802F880F87 +:1008C000880F880FE0914301F091440180640995FD +:1008D000D701C60159E0B695A795979587955A9582 +:1008E000D1F7E0914301F09144010995D701C60188 +:1008F000B695A79597958795E0914301F0914401AE +:100900000995E0914301F09144018C2F0995DD2375 +:10091000B9F0CF3791F0D6B5CEE1C701B6010E944C +:1009200010048F3769F486B58D1B813510F0D6B56C +:10093000C150C111F2CF81E004C08FE00E94560582 +:1009400080E0DF91CF911F910F91FF90EF90DF90AA +:10095000CF900895CF92DF92EF92FF920F931F9363 +:10096000CF93DF931F92CDB7DEB76B017C01498334 +:100970000E940103E0914301F09144018CE4099548 +:10098000D701C60179E0B695A795979587957A9591 +:10099000D1F7E0914301F09144010995D701C601D7 +:1009A000B695A79597958795E0914301F0914401FD +:1009B0000995E0914301F091440180E00995498156 +:1009C0004F3FE9F006B51EE1C701B6010E941004D1 +:1009D0008F3F99F486B5801B813510F006B5115014 +:1009E0001111F2CF81E00F90DF91CF911F910F9104 +:1009F000FF90EF90DF90CF90089580E0F4CF8FE0EC +:100A00000E94560580E0EFCF1F93CF93DF931F9294 +:100A1000CDB7DEB7182FE0914301F091440180EA91 +:100A200099830995E0914301F09144019981892FBF +:100A30000995E0914301F0914401812F0995E091DE +:100A40004301F091440180E00F90DF91CF911F911D +:100A500009941F93CF93DF9300D0CDB7DEB7182F43 +:100A6000E0914301F091440180EC6A8399830995F8 +:100A7000E0914301F09144019981892F0995E0911A +:100A80004301F0914401812F0995E0914301F091D8 +:100A900044016A81862F09958EE10E94560580E007 +:100AA0000F900F90DF91CF911F910895882349F007 +:100AB00030E026B596B5921B9035E0F33F5F3813D2 +:100AC000F8CF0895259A23982B9A50E217D05A957B +:100AD000E9F70895AC0188E605D0842F03D089E6B4 +:100AE00001D0852F0FD028E030E0382780FB869595 +:100AF00006D02A95D1F730FB02D000D06894239815 +:100B00002B9A16F02B98239AE0914801F091490115 +:100B10003197F0F72D9AE3B1E3FBE0914801F091B2 +:100B200049013197F0F72D98089520ECE7DF46F45E +:100B30002A95E1F780E02AE1E5DF2A95E9F7DECFA3 +:100B400028E030E0DBDF869587F938272A95D1F752 +:100B5000D5DF27F9322772F3D1DFD0CFDB01742F35 +:100B6000B9DF84E2BFDFE1DF8D937A95D1F7089595 +:100B7000DB01742FAFDF83EFB5DF8DE1B3DF84E6F8 +:100B8000B1DF8D91AFDF82E7ADDFCFDF8078D9F7BE +:100B90007A9589F70895CF93DF93EC0189818130AD +:100BA00089F1823009F4ABC0833009F461C084302C +:100BB000B1F1873009F482C0853009F402C1863072 +:100BC00009F4A2C0883009F4D5C0893009F4FFC007 +:100BD0008A3009F42AC18B3009F456C18C3009F4EB +:100BE00069C18D3009F480C18E3009F483C18F3022 +:100BF00009F4FEC0803109F41FC18F3709F439C1EF +:100C000080E02DC0329B56C0809103010E942F03CB +:100C10001092040141980E94970380E020C08091C7 +:100C20000401811110C05B8140E08A81482B662756 +:100C300057FD6095762F40930D0150930E01609300 +:100C40000F01709310019F8180E02E81822B909381 +:100C500012018093110182E0809313018FEF25E050 +:100C600031E03093270120932601DF91CF91089541 +:100C7000E0914301F09144018A8109958093050137 +:100C8000E0914301F09144018B8109958093060125 +:100C9000E0914301F09144018C8109958093070113 +:100CA000E0914301F09144018D8109958093080101 +:100CB00084E0D5CF85E00E942F03AACF8091040164 +:100CC000811110C05B8140E08A81482B662757FD67 +:100CD0006095762F40930D0150930E0160930F01A4 +:100CE000709310019F8180E02E81822B90931201DE +:100CF0008093110183E0809313018FEFB0CF0E94A6 +:100D0000BD03419A80E0ABCF80910401811110C0F6 +:100D10009B8180E02A81822BAA2797FDA095BA2F7C +:100D200080930D0190930E01A0930F01B0931001D9 +:100D30003C812D81822F8F7080931601822F807FBE +:100D400040E1849FC0011124830F911D90931501F0 +:100D50008093140120FD809317019F8180E02E81F4 +:100D6000822B909312018093110181E080931301F3 +:100D70008FEF75CF80910401811110C09B8180E0BD +:100D80002A81822BAA2797FDA095BA2F80930D0167 +:100D900090930E01A0930F01B093100110921501D2 +:100DA00010921401109216019F8180E02E81822BF7 +:100DB000909312018093110184E0809313018FEFCF +:100DC0004ECF0E94C5038093050181E048CF81E0AA +:100DD000809304018A819B81AC81BD8180930D0148 +:100DE00090930E01A0930F01B093100180E037CFD4 +:100DF0009B8180E02A81822BAA2797FDA095BA2F9C +:100E000080930D0190930E01A0930F01B0931001F8 +:100E10009F8180E02E81822B90931201809311019B +:100E200085E0809313018FEF1ACF8A8180930301AD +:100E30001092050181E013CF9B8180E02A81822BF3 +:100E4000AA2797FDA095BA2F80930D0190930E01CC +:100E5000A0930F01B09310019F8180E02E81822B1F +:100E6000909312018093110186E0809313018FEF1C +:100E7000F6CE81E0809305011092060110920701E1 +:100E80001092080184E0EBCE9B8180E02A81822BC6 +:100E900090934901809348012A9A229A83E00E9404 +:100EA00056052A98419880E10E9456050E946205E5 +:100EB00080E0D5CE80EC0E94720580E00E94720531 +:100EC0008AE00E9456052A9A85E00E9456052A98D3 +:100ED00085E00E94560584B1837D84B985B1837D08 +:100EE00085B9419A80E0BBCE0E94950580930501AB +:100EF00081E0B5CE8A810E94720580E0B0CE0F936A +:100F00001F93CF93DF93582F792F062F2091130132 +:100F1000322F3250323050F0253009F443C00FEFF9 +:100F2000802FDF91CF911F910F910895662391F14A +:100F300080910D0190910E01A0910F01B0911001CF +:100F4000C52FD72F10E01CC00E9404058883809114 +:100F50000D0190910E01A0910F01B0911001019629 +:100F6000A11DB11D80930D0190930E01A0930F015F +:100F7000B09310011F5F2196101751F020911301BB +:100F8000223011F7BC01CD010E9410048883DFCF0D +:100F9000083030F610921301802FDF91CF911F910E +:100FA0000F910895462F682F80910D0190910E01A9 +:100FB0000E94AE0580910D0190910E01A0910F014C +:100FC000B0911001800F911DA11DB11D80930D01E5 +:100FD00090930E01A0930F01B0931001A1CFFF9247 +:100FE0000F931F93CF93DF93382F792F162F2091D4 +:100FF0001301213071F0243061F0263009F490C0E3 +:10100000FF24FA948F2DDF91CF911F910F91FF90C4 +:101010000895112309F4B1C080910D0190910E0142 +:10102000A0910F01B0911001C32FD72F00E0F12C38 +:1010300050C02091140130911501232B09F053C0A9 +:1010400021E04881BC01CD010E944A042091110198 +:101050003091120121503109309312012093110176 +:10106000232BE9F4109213018091160181FF38C0FF +:101070002091170130E080911401909115012817FB +:10108000390771F160910D0170910E0180910F018E +:101090009091100148810E94AA04FF24F39480914A +:1010A0000D0190910E01A0910F01B09110010196D8 +:1010B000A11DB11D80930D0190930E01A0930F010E +:1010C000B09310010F5F2196011709F49BCF209177 +:1010D0001301213009F4ADCF68810E942905B6CFF4 +:1010E000FF24F394DCCF20E04881BC01CD010E94B5 +:1010F0004A04809117018150809317018111A6CF76 +:1011000060910D0170910E0180910F01909110017D +:1011100048810E94AA04809114018093170196CF00 +:10112000462F682F80910D0190910E010E94B80505 +:1011300080910D0190910E01A0910F01B0911001CD +:10114000810F911DA11DB11D80930D0190930E0182 +:10115000A0930F01B09310018091110190911201A1 +:10116000811B91099093120180931101892B29F41D +:1011700010921301FF24F39445CFF12C43CF1BB8F9 +:1011800015B88BEF8AB98FEF84B914B883E087B9AB +:101190009EEF98B985BD0E94AA0178940E947C00B8 +:0611A000FDCFF894FFCF23 +:0211A6005AFFEE +:00000001FF diff --git a/firmware/Makefile b/firmware/Makefile index e57be2f75..fd422b165 100755 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -3,16 +3,19 @@ # 20061119 Thomas Fischl original # 20061120 Hanns-Konrad Unger help: and TARGET=atmega48 added # 20140308 Peter Henn TARGET=atmega328 added +# 20140329 Peter Henn F_CPU parameter added # # TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef # TARGET=atmega48 HFUSE=0xdd LFUSE=0xff -# TARGET=atmega328 HFUSE=0xd9 LFUSE=0xef EFUSE=0x05 +# TARGET=atmega328 HFUSE=0xd9 LFUSE=0xef EFUSE=0x05 F_CPU=12000000 +# TARGET=atmega328 HFUSE=0xd9 LFUSE=0xef EFUSE=0x05 F_CPU=16000000 # TARGET=at90s2313 TARGET=atmega328p HFUSE=0xd9 LFUSE=0xef EFUSE=0x05 +F_CPU=16000000 # ISP=bsd PORT=/dev/parport0 # ISP=ponyser PORT=/dev/ttyS1 @@ -38,11 +41,11 @@ help: ifdef EFUSE @echo " EFUSE=${EFUSE}" endif - @echo " CLOCK=12000000" + @echo " CLOCK=${F_CPU}" @echo " ISP=${ISP}" @echo " PORT=${PORT}" -COMPILE = avr-gcc -Wall -O2 -Iusbdrv -I. -mmcu=$(TARGET) # -DDEBUG_LEVEL=2 +COMPILE = avr-gcc -Wall -O2 -Iusbdrv -I. -mmcu=$(TARGET) -DF_CPU=$(F_CPU)L # -DDEBUG_LEVEL=2 OBJECTS = usbdrv/usbdrv.o usbdrv/usbdrvasm.o usbdrv/oddebug.o isp.o clock.o tpi.o main.o diff --git a/firmware/clock.h b/firmware/clock.h index 0183297a5..38e4331f8 100644 --- a/firmware/clock.h +++ b/firmware/clock.h @@ -11,9 +11,11 @@ #ifndef __clock_h_included__ #define __clock_h_included__ +#ifndef F_CPU #define F_CPU 12000000L /* 12MHz */ +#endif #define TIMERVALUE TCNT0 -#define CLOCK_T_320us 60 +#define CLOCK_T_320us (320 * (F_CPU/1000000L) / 64) #ifdef __AVR_ATmega8__ #define TCCR0B TCCR0 diff --git a/firmware/usbconfig.h b/firmware/usbconfig.h index 203239eaa..090349011 100644 --- a/firmware/usbconfig.h +++ b/firmware/usbconfig.h @@ -21,7 +21,6 @@ the newest features and options. */ /* ---------------------------- Hardware Config ---------------------------- */ - #define USB_CFG_IOPORTNAME B /* This is the port where the USB bus is connected. When you configure it to * "B", the registers PORTB, PINB and DDRB will be used. @@ -35,7 +34,11 @@ the newest features and options. * This may be any bit in the port. Please note that D+ must also be connected * to interrupt pin INT0! */ +#ifdef F_CPU +#define USB_CFG_CLOCK_KHZ (F_CPU/1000) +#else #define USB_CFG_CLOCK_KHZ 12000 +#endif /* Clock rate of the AVR in MHz. Legal values are 12000, 16000 or 16500. * The 16.5 MHz version of the code requires no crystal, it tolerates +/- 1% * deviation from the nominal frequency. All other rates require a precision