avrdude_macOS.conf 417 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272
  1. # $Id: avrdude.conf.in 916 2010-01-15 16:36:13Z joerg_wunsch $
  2. #
  3. # AVRDUDE Configuration File
  4. #
  5. # This file contains configuration data used by AVRDUDE which describes
  6. # the programming hardware pinouts and also provides part definitions.
  7. # AVRDUDE's "-C" command line option specifies the location of the
  8. # configuration file. The "-c" option names the programmer configuration
  9. # which must match one of the entry's "id" parameter. The "-p" option
  10. # identifies which part AVRDUDE is going to be programming and must match
  11. # one of the parts' "id" parameter.
  12. #
  13. # Possible entry formats are:
  14. #
  15. # programmer
  16. # id = <id1> [, <id2> [, <id3>] ...] ; # <idN> are quoted strings
  17. # desc = <description> ; # quoted string
  18. # type = par | stk500 | stk500v2 | stk500pp | stk500hvsp | stk500generic |
  19. # stk600 | stk600pp | stk600hvsp |
  20. # avr910 | butterfly | usbasp |
  21. # jtagmki | jtagmkii | jtagmkii_isp | jtagmkii_dw |
  22. # jtagmkII_avr32 | jtagmkii_pdi |
  23. # dragon_dw | dragon_jtag | dragon_isp | dragon_pp |
  24. # dragon_hvsp | dragon_pdi | arduino; # programmer type
  25. # baudrate = <num> ; # baudrate for avr910-programmer
  26. # vcc = <num1> [, <num2> ... ] ; # pin number(s)
  27. # reset = <num> ; # pin number
  28. # sck = <num> ; # pin number
  29. # mosi = <num> ; # pin number
  30. # miso = <num> ; # pin number
  31. # errled = <num> ; # pin number
  32. # rdyled = <num> ; # pin number
  33. # pgmled = <num> ; # pin number
  34. # vfyled = <num> ; # pin number
  35. # ;
  36. #
  37. # part
  38. # id = <id> ; # quoted string
  39. # desc = <description> ; # quoted string
  40. # has_jtag = <yes/no> ; # part has JTAG i/f
  41. # has_debugwire = <yes/no> ; # part has debugWire i/f
  42. # has_pdi = <yes/no> ; # part has PDI i/f
  43. # has_tpi = <yes/no> ; # part has TPI i/f
  44. # devicecode = <num> ; # deprecated, use stk500_devcode
  45. # stk500_devcode = <num> ; # numeric
  46. # avr910_devcode = <num> ; # numeric
  47. # signature = <num> <num> <num> ; # signature bytes
  48. # chip_erase_delay = <num> ; # micro-seconds
  49. # reset = dedicated | io;
  50. # retry_pulse = reset | sck;
  51. # pgm_enable = <instruction format> ;
  52. # chip_erase = <instruction format> ;
  53. # chip_erase_delay = <num> ; # chip erase delay (us)
  54. # # STK500 parameters (parallel programming IO lines)
  55. # pagel = <num> ; # pin name in hex, i.e., 0xD7
  56. # bs2 = <num> ; # pin name in hex, i.e., 0xA0
  57. # serial = <yes/no> ; # can use serial downloading
  58. # parallel = <yes/no/pseudo>; # can use par. programming
  59. # # STK500v2 parameters, to be taken from Atmel's XML files
  60. # timeout = <num> ;
  61. # stabdelay = <num> ;
  62. # cmdexedelay = <num> ;
  63. # synchloops = <num> ;
  64. # bytedelay = <num> ;
  65. # pollvalue = <num> ;
  66. # pollindex = <num> ;
  67. # predelay = <num> ;
  68. # postdelay = <num> ;
  69. # pollmethod = <num> ;
  70. # mode = <num> ;
  71. # delay = <num> ;
  72. # blocksize = <num> ;
  73. # readsize = <num> ;
  74. # hvspcmdexedelay = <num> ;
  75. # # STK500v2 HV programming parameters, from XML
  76. # pp_controlstack = <num>, <num>, ...; # PP only
  77. # hvsp_controlstack = <num>, <num>, ...; # HVSP only
  78. # hventerstabdelay = <num>;
  79. # progmodedelay = <num>; # PP only
  80. # latchcycles = <num>;
  81. # togglevtg = <num>;
  82. # poweroffdelay = <num>;
  83. # resetdelayms = <num>;
  84. # resetdelayus = <num>;
  85. # hvleavestabdelay = <num>;
  86. # resetdelay = <num>;
  87. # synchcycles = <num>; # HVSP only
  88. # chiperasepulsewidth = <num>; # PP only
  89. # chiperasepolltimeout = <num>;
  90. # chiperasetime = <num>; # HVSP only
  91. # programfusepulsewidth = <num>; # PP only
  92. # programfusepolltimeout = <num>;
  93. # programlockpulsewidth = <num>; # PP only
  94. # programlockpolltimeout = <num>;
  95. # # JTAG ICE mkII parameters, also from XML files
  96. # allowfullpagebitstream = <yes/no> ;
  97. # enablepageprogramming = <yes/no> ;
  98. # idr = <num> ; # IO addr of IDR (OCD) reg.
  99. # rampz = <num> ; # IO addr of RAMPZ reg.
  100. # spmcr = <num> ; # mem addr of SPMC[S]R reg.
  101. # eecr = <num> ; # mem addr of EECR reg.
  102. # # (only when != 0x3c)
  103. # is_avr32 = <yes/no> ; # AVR32 part
  104. #
  105. # memory <memtype>
  106. # paged = <yes/no> ; # yes / no
  107. # size = <num> ; # bytes
  108. # page_size = <num> ; # bytes
  109. # num_pages = <num> ; # numeric
  110. # min_write_delay = <num> ; # micro-seconds
  111. # max_write_delay = <num> ; # micro-seconds
  112. # readback_p1 = <num> ; # byte value
  113. # readback_p2 = <num> ; # byte value
  114. # pwroff_after_write = <yes/no> ; # yes / no
  115. # read = <instruction format> ;
  116. # write = <instruction format> ;
  117. # read_lo = <instruction format> ;
  118. # read_hi = <instruction format> ;
  119. # write_lo = <instruction format> ;
  120. # write_hi = <instruction format> ;
  121. # loadpage_lo = <instruction format> ;
  122. # loadpage_hi = <instruction format> ;
  123. # writepage = <instruction format> ;
  124. # ;
  125. # ;
  126. #
  127. # If any of the above parameters are not specified, the default value
  128. # of 0 is used for numerics or the empty string ("") for string
  129. # values. If a required parameter is left empty, AVRDUDE will
  130. # complain.
  131. #
  132. # NOTES:
  133. # * 'devicecode' is the device code used by the STK500 (see codes
  134. # listed below)
  135. # * Not all memory types will implement all instructions.
  136. # * AVR Fuse bits and Lock bits are implemented as a type of memory.
  137. # * Example memory types are:
  138. # "flash", "eeprom", "fuse", "lfuse" (low fuse), "hfuse" (high
  139. # fuse), "signature", "calibration", "lock"
  140. # * The memory type specified on the avrdude command line must match
  141. # one of the memory types defined for the specified chip.
  142. # * The pwroff_after_write flag causes avrdude to attempt to
  143. # power the device off and back on after an unsuccessful write to
  144. # the affected memory area if VCC programmer pins are defined. If
  145. # VCC pins are not defined for the programmer, a message
  146. # indicating that the device needs a power-cycle is printed out.
  147. # This flag was added to work around a problem with the
  148. # at90s4433/2333's; see the at90s4433 errata page 2 at:
  149. #
  150. # https://ww1.microchip.com/downloads/en/AppNotes/doc2574.pdf
  151. #
  152. # INSTRUCTION FORMATS
  153. #
  154. # Instruction formats are specified as a comma separated list of
  155. # string values containing information (bit specifiers) about each
  156. # of the 32 bits of the instruction. Bit specifiers may be one of
  157. # the following formats:
  158. #
  159. # '1' = the bit is always set on input as well as output
  160. #
  161. # '0' = the bit is always clear on input as well as output
  162. #
  163. # 'x' = the bit is ignored on input and output
  164. #
  165. # 'a' = the bit is an address bit, the bit-number matches this bit
  166. # specifier's position within the current instruction byte
  167. #
  168. # 'aN' = the bit is the Nth address bit, bit-number = N, i.e., a12
  169. # is address bit 12 on input, a0 is address bit 0.
  170. #
  171. # 'i' = the bit is an input data bit
  172. #
  173. # 'o' = the bit is an output data bit
  174. #
  175. # Each instruction must be composed of 32 bit specifiers. The
  176. # instruction specification closely follows the instruction data
  177. # provided in Atmel's data sheets for their parts.
  178. #
  179. # See below for some examples.
  180. #
  181. #
  182. # The following are STK500 part device codes to use for the
  183. # "devicecode" field of the part. These came from Atmel's software
  184. # section avr061.zip which accompanies the application note
  185. # AVR061 available from:
  186. #
  187. # https://www.microchip.com/en-us/application-notes/an2525
  188. #
  189. #define ATTINY10 0x10 /* the _old_ one that never existed! */
  190. #define ATTINY11 0x11
  191. #define ATTINY12 0x12
  192. #define ATTINY15 0x13
  193. #define ATTINY13 0x14
  194. #define ATTINY22 0x20
  195. #define ATTINY26 0x21
  196. #define ATTINY28 0x22
  197. #define ATTINY2313 0x23
  198. #define AT90S1200 0x33
  199. #define AT90S2313 0x40
  200. #define AT90S2323 0x41
  201. #define AT90S2333 0x42
  202. #define AT90S2343 0x43
  203. #define AT90S4414 0x50
  204. #define AT90S4433 0x51
  205. #define AT90S4434 0x52
  206. #define ATMEGA48 0x59
  207. #define AT90S8515 0x60
  208. #define AT90S8535 0x61
  209. #define AT90C8534 0x62
  210. #define ATMEGA8515 0x63
  211. #define ATMEGA8535 0x64
  212. #define ATMEGA8 0x70
  213. #define ATMEGA88 0x73
  214. #define ATMEGA168 0x86
  215. #define ATMEGA161 0x80
  216. #define ATMEGA163 0x81
  217. #define ATMEGA16 0x82
  218. #define ATMEGA162 0x83
  219. #define ATMEGA169 0x84
  220. #define ATMEGA323 0x90
  221. #define ATMEGA32 0x91
  222. #define ATMEGA64 0xA0
  223. #define ATMEGA103 0xB1
  224. #define ATMEGA128 0xB2
  225. #define AT90CAN128 0xB3
  226. #define AT90CAN64 0xB3
  227. #define AT90CAN32 0xB3
  228. #define AT86RF401 0xD0
  229. #define AT89START 0xE0
  230. #define AT89S51 0xE0
  231. #define AT89S52 0xE1
  232. # The following table lists the devices in the original AVR910
  233. # appnote:
  234. # |Device |Signature | Code |
  235. # +-------+----------+------+
  236. # |tiny12 | 1E 90 05 | 0x55 |
  237. # |tiny15 | 1E 90 06 | 0x56 |
  238. # | | | |
  239. # | S1200 | 1E 90 01 | 0x13 |
  240. # | | | |
  241. # | S2313 | 1E 91 01 | 0x20 |
  242. # | S2323 | 1E 91 02 | 0x48 |
  243. # | S2333 | 1E 91 05 | 0x34 |
  244. # | S2343 | 1E 91 03 | 0x4C |
  245. # | | | |
  246. # | S4414 | 1E 92 01 | 0x28 |
  247. # | S4433 | 1E 92 03 | 0x30 |
  248. # | S4434 | 1E 92 02 | 0x6C |
  249. # | | | |
  250. # | S8515 | 1E 93 01 | 0x38 |
  251. # | S8535 | 1E 93 03 | 0x68 |
  252. # | | | |
  253. # |mega32 | 1E 95 01 | 0x72 |
  254. # |mega83 | 1E 93 05 | 0x65 |
  255. # |mega103| 1E 97 01 | 0x41 |
  256. # |mega161| 1E 94 01 | 0x60 |
  257. # |mega163| 1E 94 02 | 0x64 |
  258. # Appnote AVR109 also has a table of AVR910 device codes, which
  259. # lists:
  260. # dev avr910 signature
  261. # ATmega8 0x77 0x1E 0x93 0x07
  262. # ATmega8515 0x3B 0x1E 0x93 0x06
  263. # ATmega8535 0x6A 0x1E 0x93 0x08
  264. # ATmega16 0x75 0x1E 0x94 0x03
  265. # ATmega162 0x63 0x1E 0x94 0x04
  266. # ATmega163 0x66 0x1E 0x94 0x02
  267. # ATmega169 0x79 0x1E 0x94 0x05
  268. # ATmega32 0x7F 0x1E 0x95 0x02
  269. # ATmega323 0x73 0x1E 0x95 0x01
  270. # ATmega64 0x46 0x1E 0x96 0x02
  271. # ATmega128 0x44 0x1E 0x97 0x02
  272. #
  273. # These codes refer to "BOOT" device codes which are apparently
  274. # different than standard device codes, for whatever reasons
  275. # (often one above the standard code).
  276. # There are several extended versions of AVR910 implementations around
  277. # in the Internet. These add the following codes (only devices that
  278. # actually exist are listed):
  279. # ATmega8515 0x3A
  280. # ATmega128 0x43
  281. # ATmega64 0x45
  282. # ATtiny26 0x5E
  283. # ATmega8535 0x69
  284. # ATmega32 0x72
  285. # ATmega16 0x74
  286. # ATmega8 0x76
  287. # ATmega169 0x78
  288. #
  289. # Overall avrdude defaults
  290. #
  291. default_parallel = "unknown";
  292. default_serial = "unknown";
  293. #
  294. # PROGRAMMER DEFINITIONS
  295. #
  296. programmer
  297. id = "arduino";
  298. desc = "Arduino";
  299. type = arduino;
  300. ;
  301. programmer
  302. id = "avrisp";
  303. desc = "Atmel AVR ISP";
  304. type = stk500;
  305. ;
  306. programmer
  307. id = "avrispv2";
  308. desc = "Atmel AVR ISP V2";
  309. type = stk500v2;
  310. ;
  311. programmer
  312. id = "avrispmkII";
  313. desc = "Atmel AVR ISP mkII";
  314. type = stk500v2;
  315. ;
  316. programmer
  317. id = "avrisp2";
  318. desc = "Atmel AVR ISP mkII";
  319. type = stk500v2;
  320. ;
  321. programmer
  322. id = "buspirate";
  323. desc = "The Bus Pirate";
  324. type = buspirate;
  325. ;
  326. # This is supposed to be the "default" STK500 entry.
  327. # Attempts to select the correct firmware version
  328. # by probing for it. Better use one of the entries
  329. # below instead.
  330. programmer
  331. id = "stk500";
  332. desc = "Atmel STK500";
  333. type = stk500generic;
  334. ;
  335. programmer
  336. id = "stk500v1";
  337. desc = "Atmel STK500 Version 1.x firmware";
  338. type = stk500;
  339. ;
  340. programmer
  341. id = "mib510";
  342. desc = "Crossbow MIB510 programming board";
  343. type = stk500;
  344. ;
  345. programmer
  346. id = "stk500v2";
  347. desc = "Atmel STK500 Version 2.x firmware";
  348. type = stk500v2;
  349. ;
  350. programmer
  351. id = "stk500pp";
  352. desc = "Atmel STK500 V2 in parallel programming mode";
  353. type = stk500pp;
  354. ;
  355. programmer
  356. id = "stk500hvsp";
  357. desc = "Atmel STK500 V2 in high-voltage serial programming mode";
  358. type = stk500hvsp;
  359. ;
  360. programmer
  361. id = "stk600";
  362. desc = "Atmel STK600";
  363. type = stk600;
  364. ;
  365. programmer
  366. id = "stk600pp";
  367. desc = "Atmel STK600 in parallel programming mode";
  368. type = stk600pp;
  369. ;
  370. programmer
  371. id = "stk600hvsp";
  372. desc = "Atmel STK600 in high-voltage serial programming mode";
  373. type = stk600hvsp;
  374. ;
  375. programmer
  376. id = "avr910";
  377. desc = "Atmel Low Cost Serial Programmer";
  378. type = avr910;
  379. ;
  380. programmer
  381. id = "usbasp";
  382. desc = "USBasp, https://www.fischl.de/usbasp/";
  383. type = usbasp;
  384. ;
  385. programmer
  386. id = "usbtiny";
  387. desc = "USBtiny simple USB programmer, https://learn.adafruit.com/usbtinyisp";
  388. type = usbtiny;
  389. ;
  390. programmer
  391. id = "butterfly";
  392. desc = "Atmel Butterfly Development Board";
  393. type = butterfly;
  394. ;
  395. programmer
  396. id = "avr109";
  397. desc = "Atmel AppNote AVR109 Boot Loader";
  398. type = butterfly;
  399. ;
  400. programmer
  401. id = "avr911";
  402. desc = "Atmel AppNote AVR911 AVROSP";
  403. type = butterfly;
  404. ;
  405. programmer
  406. id = "jtagmkI";
  407. desc = "Atmel JTAG ICE (mkI)";
  408. baudrate = 115200; # default is 115200
  409. type = jtagmki;
  410. ;
  411. # easier to type
  412. programmer
  413. id = "jtag1";
  414. desc = "Atmel JTAG ICE (mkI)";
  415. baudrate = 115200; # default is 115200
  416. type = jtagmki;
  417. ;
  418. # easier to type
  419. programmer
  420. id = "jtag1slow";
  421. desc = "Atmel JTAG ICE (mkI)";
  422. baudrate = 19200;
  423. type = jtagmki;
  424. ;
  425. programmer
  426. id = "jtagmkII";
  427. desc = "Atmel JTAG ICE mkII";
  428. baudrate = 19200; # default is 19200
  429. type = jtagmkii;
  430. ;
  431. # easier to type
  432. programmer
  433. id = "jtag2slow";
  434. desc = "Atmel JTAG ICE mkII";
  435. baudrate = 19200; # default is 19200
  436. type = jtagmkii;
  437. ;
  438. # JTAG ICE mkII @ 115200 Bd
  439. programmer
  440. id = "jtag2fast";
  441. desc = "Atmel JTAG ICE mkII";
  442. baudrate = 115200;
  443. type = jtagmkii;
  444. ;
  445. # make the fast one the default, people will love that
  446. programmer
  447. id = "jtag2";
  448. desc = "Atmel JTAG ICE mkII";
  449. baudrate = 115200;
  450. type = jtagmkii;
  451. ;
  452. # JTAG ICE mkII in ISP mode
  453. programmer
  454. id = "jtag2isp";
  455. desc = "Atmel JTAG ICE mkII in ISP mode";
  456. baudrate = 115200;
  457. type = jtagmkii_isp;
  458. ;
  459. # JTAG ICE mkII in debugWire mode
  460. programmer
  461. id = "jtag2dw";
  462. desc = "Atmel JTAG ICE mkII in debugWire mode";
  463. baudrate = 115200;
  464. type = jtagmkii_dw;
  465. ;
  466. # JTAG ICE mkII in AVR32 mode
  467. programmer
  468. id = "jtagmkII_avr32";
  469. desc = "Atmel JTAG ICE mkII im AVR32 mode";
  470. baudrate = 115200;
  471. type = jtagmkii_avr32;
  472. ;
  473. # JTAG ICE mkII in AVR32 mode
  474. programmer
  475. id = "jtag2avr32";
  476. desc = "Atmel JTAG ICE mkII im AVR32 mode";
  477. baudrate = 115200;
  478. type = jtagmkii_avr32;
  479. ;
  480. # JTAG ICE mkII in PDI mode
  481. programmer
  482. id = "jtag2pdi";
  483. desc = "Atmel JTAG ICE mkII PDI mode";
  484. baudrate = 115200;
  485. type = jtagmkii_pdi;
  486. ;
  487. # AVR Dragon in JTAG mode
  488. programmer
  489. id = "dragon_jtag";
  490. desc = "Atmel AVR Dragon in JTAG mode";
  491. baudrate = 115200;
  492. type = dragon_jtag;
  493. ;
  494. # AVR Dragon in ISP mode
  495. programmer
  496. id = "dragon_isp";
  497. desc = "Atmel AVR Dragon in ISP mode";
  498. baudrate = 115200;
  499. type = dragon_isp;
  500. ;
  501. # AVR Dragon in PP mode
  502. programmer
  503. id = "dragon_pp";
  504. desc = "Atmel AVR Dragon in PP mode";
  505. baudrate = 115200;
  506. type = dragon_pp;
  507. ;
  508. # AVR Dragon in HVSP mode
  509. programmer
  510. id = "dragon_hvsp";
  511. desc = "Atmel AVR Dragon in HVSP mode";
  512. baudrate = 115200;
  513. type = dragon_hvsp;
  514. ;
  515. # AVR Dragon in debugWire mode
  516. programmer
  517. id = "dragon_dw";
  518. desc = "Atmel AVR Dragon in debugWire mode";
  519. baudrate = 115200;
  520. type = dragon_dw;
  521. ;
  522. # AVR Dragon in PDI mode
  523. programmer
  524. id = "dragon_pdi";
  525. desc = "Atmel AVR Dragon in PDI mode";
  526. baudrate = 115200;
  527. type = dragon_pdi;
  528. ;
  529. programmer
  530. id = "pavr";
  531. desc = "Jason Kyle's pAVR Serial Programmer";
  532. type = avr910;
  533. ;
  534. #
  535. # some ultra cheap programmers use bitbanging on the
  536. # serialport.
  537. #
  538. # PC - DB9 - Pins for RS232:
  539. #
  540. # GND 5 -- |O
  541. # | O| <- 9 RI
  542. # DTR 4 <- |O |
  543. # | O| <- 8 CTS
  544. # TXD 3 <- |O |
  545. # | O| -> 7 RTS
  546. # RXD 2 -> |O |
  547. # | O| <- 6 DSR
  548. # DCD 1 -> |O
  549. #
  550. # Using RXD is currently not supported.
  551. # Using RI is not supported under Win32 but is supported under Posix.
  552. # serial ponyprog design (dasa2 in uisp)
  553. # reset=!txd sck=rts mosi=dtr miso=cts
  554. programmer
  555. id = "ponyser";
  556. desc = "design ponyprog serial, reset=!txd sck=rts mosi=dtr miso=cts";
  557. type = serbb;
  558. reset = ~3;
  559. sck = 7;
  560. mosi = 4;
  561. miso = 8;
  562. ;
  563. # Same as above, different name
  564. # reset=!txd sck=rts mosi=dtr miso=cts
  565. programmer
  566. id = "siprog";
  567. desc = "Lancos SI-Prog <http://www.lancos.com/siprogsch.html>";
  568. type = serbb;
  569. reset = ~3;
  570. sck = 7;
  571. mosi = 4;
  572. miso = 8;
  573. ;
  574. # unknown (dasa in uisp)
  575. # reset=rts sck=dtr mosi=txd miso=cts
  576. programmer
  577. id = "dasa";
  578. desc = "serial port banging, reset=rts sck=dtr mosi=txd miso=cts";
  579. type = serbb;
  580. reset = 7;
  581. sck = 4;
  582. mosi = 3;
  583. miso = 8;
  584. ;
  585. # unknown (dasa3 in uisp)
  586. # reset=!dtr sck=rts mosi=txd miso=cts
  587. programmer
  588. id = "dasa3";
  589. desc = "serial port banging, reset=!dtr sck=rts mosi=txd miso=cts";
  590. type = serbb;
  591. reset = ~4;
  592. sck = 7;
  593. mosi = 3;
  594. miso = 8;
  595. ;
  596. # C2N232i (jumper configuration "auto")
  597. # reset=dtr sck=!rts mosi=!txd miso=!cts
  598. programmer
  599. id = "c2n232i";
  600. desc = "serial port banging, reset=dtr sck=!rts mosi=!txd miso=!cts";
  601. type = serbb;
  602. reset = 4;
  603. sck = ~7;
  604. mosi = ~3;
  605. miso = ~8;
  606. ;
  607. #
  608. # PART DEFINITIONS
  609. #
  610. #------------------------------------------------------------
  611. # ATtiny11
  612. #------------------------------------------------------------
  613. # This is an HVSP-only device.
  614. part
  615. id = "t11";
  616. desc = "ATtiny11";
  617. stk500_devcode = 0x11;
  618. signature = 0x1e 0x90 0x04;
  619. chip_erase_delay = 20000;
  620. timeout = 200;
  621. hvsp_controlstack =
  622. 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00,
  623. 0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78,
  624. 0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
  625. 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
  626. hventerstabdelay = 100;
  627. progmodedelay = 0;
  628. hvspcmdexedelay = 0;
  629. synchcycles = 6;
  630. latchcycles = 1;
  631. togglevtg = 1;
  632. poweroffdelay = 25;
  633. resetdelayms = 0;
  634. resetdelayus = 50;
  635. hvleavestabdelay = 100;
  636. resetdelay = 25;
  637. chiperasepolltimeout = 40;
  638. chiperasetime = 0;
  639. programfusepolltimeout = 25;
  640. programlockpolltimeout = 25;
  641. memory "eeprom"
  642. size = 64;
  643. blocksize = 64;
  644. readsize = 256;
  645. delay = 5;
  646. ;
  647. memory "flash"
  648. size = 1024;
  649. blocksize = 128;
  650. readsize = 256;
  651. delay = 3;
  652. ;
  653. memory "signature"
  654. size = 3;
  655. ;
  656. memory "lock"
  657. size = 1;
  658. ;
  659. memory "calibration"
  660. size = 1;
  661. ;
  662. memory "fuse"
  663. size = 1;
  664. ;
  665. ;
  666. #------------------------------------------------------------
  667. # ATtiny12
  668. #------------------------------------------------------------
  669. part
  670. id = "t12";
  671. desc = "ATtiny12";
  672. stk500_devcode = 0x12;
  673. avr910_devcode = 0x55;
  674. signature = 0x1e 0x90 0x05;
  675. chip_erase_delay = 20000;
  676. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  677. "x x x x x x x x x x x x x x x x";
  678. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  679. "x x x x x x x x x x x x x x x x";
  680. timeout = 200;
  681. stabdelay = 100;
  682. cmdexedelay = 25;
  683. synchloops = 32;
  684. bytedelay = 0;
  685. pollindex = 3;
  686. pollvalue = 0x53;
  687. predelay = 1;
  688. postdelay = 1;
  689. pollmethod = 0;
  690. hvsp_controlstack =
  691. 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00,
  692. 0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78,
  693. 0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
  694. 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
  695. hventerstabdelay = 100;
  696. hvspcmdexedelay = 0;
  697. synchcycles = 6;
  698. latchcycles = 1;
  699. togglevtg = 1;
  700. poweroffdelay = 25;
  701. resetdelayms = 0;
  702. resetdelayus = 50;
  703. hvleavestabdelay = 100;
  704. resetdelay = 25;
  705. chiperasepolltimeout = 40;
  706. chiperasetime = 0;
  707. programfusepolltimeout = 25;
  708. programlockpolltimeout = 25;
  709. memory "eeprom"
  710. size = 64;
  711. min_write_delay = 9000;
  712. max_write_delay = 20000;
  713. readback_p1 = 0xff;
  714. readback_p2 = 0xff;
  715. read = "1 0 1 0 0 0 0 0 x x x x x x x x",
  716. "x x a5 a4 a3 a2 a1 a0 o o o o o o o o";
  717. write = "1 1 0 0 0 0 0 0 x x x x x x x x",
  718. "x x a5 a4 a3 a2 a1 a0 i i i i i i i i";
  719. mode = 0x04;
  720. delay = 8;
  721. blocksize = 64;
  722. readsize = 256;
  723. ;
  724. memory "flash"
  725. size = 1024;
  726. min_write_delay = 4500;
  727. max_write_delay = 20000;
  728. readback_p1 = 0xff;
  729. readback_p2 = 0xff;
  730. read_lo = " 0 0 1 0 0 0 0 0",
  731. " x x x x x x x a8",
  732. " a7 a6 a5 a4 a3 a2 a1 a0",
  733. " o o o o o o o o";
  734. read_hi = " 0 0 1 0 1 0 0 0",
  735. " x x x x x x x a8",
  736. " a7 a6 a5 a4 a3 a2 a1 a0",
  737. " o o o o o o o o";
  738. write_lo = " 0 1 0 0 0 0 0 0",
  739. " x x x x x x x a8",
  740. " a7 a6 a5 a4 a3 a2 a1 a0",
  741. " i i i i i i i i";
  742. write_hi = " 0 1 0 0 1 0 0 0",
  743. " x x x x x x x a8",
  744. " a7 a6 a5 a4 a3 a2 a1 a0",
  745. " i i i i i i i i";
  746. mode = 0x04;
  747. delay = 5;
  748. blocksize = 128;
  749. readsize = 256;
  750. ;
  751. memory "signature"
  752. size = 3;
  753. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  754. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  755. ;
  756. memory "lock"
  757. size = 1;
  758. read = "0 1 0 1 1 0 0 0 x x x x x x x x",
  759. "x x x x x x x x x x x x x o o x";
  760. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1",
  761. "x x x x x x x x x x x x x x x x";
  762. min_write_delay = 9000;
  763. max_write_delay = 9000;
  764. ;
  765. memory "calibration"
  766. size = 1;
  767. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  768. "0 0 0 0 0 0 0 0 o o o o o o o o";
  769. ;
  770. memory "fuse"
  771. size = 1;
  772. read = "0 1 0 1 0 0 0 0 x x x x x x x x",
  773. "x x x x x x x x o o o o o o o o";
  774. write = "1 0 1 0 1 1 0 0 1 0 1 x x x x x",
  775. "x x x x x x x x i i i i i i i i";
  776. min_write_delay = 9000;
  777. max_write_delay = 9000;
  778. ;
  779. ;
  780. #------------------------------------------------------------
  781. # ATtiny13
  782. #------------------------------------------------------------
  783. part
  784. id = "t13";
  785. desc = "ATtiny13";
  786. has_debugwire = yes;
  787. flash_instr = 0xB4, 0x0E, 0x1E;
  788. eeprom_instr = 0xBB, 0xFE, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
  789. 0xBC, 0x0E, 0xB4, 0x0E, 0xBA, 0x0D, 0xBB, 0xBC,
  790. 0x99, 0xE1, 0xBB, 0xAC;
  791. stk500_devcode = 0x14;
  792. signature = 0x1e 0x90 0x07;
  793. chip_erase_delay = 4000;
  794. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  795. "x x x x x x x x x x x x x x x x";
  796. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  797. "x x x x x x x x x x x x x x x x";
  798. timeout = 200;
  799. stabdelay = 100;
  800. cmdexedelay = 25;
  801. synchloops = 32;
  802. bytedelay = 0;
  803. pollindex = 3;
  804. pollvalue = 0x53;
  805. predelay = 1;
  806. postdelay = 1;
  807. pollmethod = 1;
  808. hvsp_controlstack =
  809. 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66,
  810. 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78,
  811. 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
  812. 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
  813. hventerstabdelay = 100;
  814. progmodedelay = 0;
  815. hvspcmdexedelay = 0;
  816. synchcycles = 6;
  817. latchcycles = 1;
  818. togglevtg = 1;
  819. poweroffdelay = 25;
  820. resetdelayms = 0;
  821. resetdelayus = 90;
  822. hvleavestabdelay = 100;
  823. resetdelay = 25;
  824. chiperasepolltimeout = 40;
  825. chiperasetime = 0;
  826. programfusepolltimeout = 25;
  827. programlockpolltimeout = 25;
  828. memory "eeprom"
  829. size = 64;
  830. page_size = 4;
  831. min_write_delay = 4000;
  832. max_write_delay = 4000;
  833. readback_p1 = 0xff;
  834. readback_p2 = 0xff;
  835. read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x",
  836. "x x a5 a4 a3 a2 a1 a0 o o o o o o o o";
  837. write = "1 1 0 0 0 0 0 0 0 0 0 x x x x x",
  838. "x x a5 a4 a3 a2 a1 a0 i i i i i i i i";
  839. loadpage_lo = " 1 1 0 0 0 0 0 1",
  840. " 0 0 0 0 0 0 0 0",
  841. " 0 0 0 0 0 0 a1 a0",
  842. " i i i i i i i i";
  843. writepage = " 1 1 0 0 0 0 1 0",
  844. " 0 0 x x x x x x",
  845. " x x a5 a4 a3 a2 0 0",
  846. " x x x x x x x x";
  847. mode = 0x41;
  848. delay = 5;
  849. blocksize = 4;
  850. readsize = 256;
  851. ;
  852. memory "flash"
  853. paged = yes;
  854. size = 1024;
  855. page_size = 32;
  856. num_pages = 32;
  857. min_write_delay = 4500;
  858. max_write_delay = 4500;
  859. readback_p1 = 0xff;
  860. readback_p2 = 0xff;
  861. read_lo = " 0 0 1 0 0 0 0 0",
  862. " 0 0 0 0 0 0 0 a8",
  863. " a7 a6 a5 a4 a3 a2 a1 a0",
  864. " o o o o o o o o";
  865. read_hi = " 0 0 1 0 1 0 0 0",
  866. " 0 0 0 0 0 0 0 a8",
  867. " a7 a6 a5 a4 a3 a2 a1 a0",
  868. " o o o o o o o o";
  869. loadpage_lo = " 0 1 0 0 0 0 0 0",
  870. " 0 0 0 x x x x x",
  871. " x x x x a3 a2 a1 a0",
  872. " i i i i i i i i";
  873. loadpage_hi = " 0 1 0 0 1 0 0 0",
  874. " 0 0 0 x x x x x",
  875. " x x x x a3 a2 a1 a0",
  876. " i i i i i i i i";
  877. writepage = " 0 1 0 0 1 1 0 0",
  878. " 0 0 0 0 0 0 0 a8",
  879. " a7 a6 a5 a4 x x x x",
  880. " x x x x x x x x";
  881. mode = 0x41;
  882. delay = 6;
  883. blocksize = 32;
  884. readsize = 256;
  885. ;
  886. memory "signature"
  887. size = 3;
  888. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  889. "x x x x x x a1 a0 o o o o o o o o";
  890. ;
  891. memory "lock"
  892. size = 1;
  893. min_write_delay = 4500;
  894. max_write_delay = 4500;
  895. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  896. "x x x x x x x x x x o o o o o o";
  897. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  898. "x x x x x x x x 1 1 i i i i i i";
  899. ;
  900. memory "calibration"
  901. size = 2;
  902. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  903. "0 0 0 0 0 0 0 a0 o o o o o o o o";
  904. ;
  905. memory "lfuse"
  906. size = 1;
  907. min_write_delay = 4500;
  908. max_write_delay = 4500;
  909. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  910. "x x x x x x x x i i i i i i i i";
  911. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  912. "x x x x x x x x o o o o o o o o";
  913. ;
  914. memory "hfuse"
  915. size = 1;
  916. min_write_delay = 4500;
  917. max_write_delay = 4500;
  918. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  919. "x x x x x x x x i i i i i i i i";
  920. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  921. "x x x x x x x x o o o o o o o o";
  922. ;
  923. ;
  924. #------------------------------------------------------------
  925. # ATtiny15
  926. #------------------------------------------------------------
  927. part
  928. id = "t15";
  929. desc = "ATtiny15";
  930. stk500_devcode = 0x13;
  931. avr910_devcode = 0x56;
  932. signature = 0x1e 0x90 0x06;
  933. chip_erase_delay = 8200;
  934. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  935. "x x x x x x x x x x x x x x x x";
  936. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  937. "x x x x x x x x x x x x x x x x";
  938. timeout = 200;
  939. stabdelay = 100;
  940. cmdexedelay = 25;
  941. synchloops = 32;
  942. bytedelay = 0;
  943. pollindex = 3;
  944. pollvalue = 0x53;
  945. predelay = 1;
  946. postdelay = 1;
  947. pollmethod = 0;
  948. hvsp_controlstack =
  949. 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00,
  950. 0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78,
  951. 0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
  952. 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
  953. hventerstabdelay = 100;
  954. hvspcmdexedelay = 5;
  955. synchcycles = 6;
  956. latchcycles = 16;
  957. togglevtg = 1;
  958. poweroffdelay = 25;
  959. resetdelayms = 0;
  960. resetdelayus = 50;
  961. hvleavestabdelay = 100;
  962. resetdelay = 25;
  963. chiperasepolltimeout = 40;
  964. chiperasetime = 0;
  965. programfusepolltimeout = 25;
  966. programlockpolltimeout = 25;
  967. memory "eeprom"
  968. size = 64;
  969. min_write_delay = 8200;
  970. max_write_delay = 8200;
  971. readback_p1 = 0xff;
  972. readback_p2 = 0xff;
  973. read = "1 0 1 0 0 0 0 0 x x x x x x x x",
  974. "x x a5 a4 a3 a2 a1 a0 o o o o o o o o";
  975. write = "1 1 0 0 0 0 0 0 x x x x x x x x",
  976. "x x a5 a4 a3 a2 a1 a0 i i i i i i i i";
  977. mode = 0x04;
  978. delay = 10;
  979. blocksize = 64;
  980. readsize = 256;
  981. ;
  982. memory "flash"
  983. size = 1024;
  984. min_write_delay = 4100;
  985. max_write_delay = 4100;
  986. readback_p1 = 0xff;
  987. readback_p2 = 0xff;
  988. read_lo = " 0 0 1 0 0 0 0 0",
  989. " x x x x x x x a8",
  990. " a7 a6 a5 a4 a3 a2 a1 a0",
  991. " o o o o o o o o";
  992. read_hi = " 0 0 1 0 1 0 0 0",
  993. " x x x x x x x a8",
  994. " a7 a6 a5 a4 a3 a2 a1 a0",
  995. " o o o o o o o o";
  996. write_lo = " 0 1 0 0 0 0 0 0",
  997. " x x x x x x x a8",
  998. " a7 a6 a5 a4 a3 a2 a1 a0",
  999. " i i i i i i i i";
  1000. write_hi = " 0 1 0 0 1 0 0 0",
  1001. " x x x x x x x a8",
  1002. " a7 a6 a5 a4 a3 a2 a1 a0",
  1003. " i i i i i i i i";
  1004. mode = 0x04;
  1005. delay = 5;
  1006. blocksize = 128;
  1007. readsize = 256;
  1008. ;
  1009. memory "signature"
  1010. size = 3;
  1011. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  1012. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  1013. ;
  1014. memory "lock"
  1015. size = 1;
  1016. read = "0 1 0 1 1 0 0 0 x x x x x x x x",
  1017. "x x x x x x x x x x x x x o o x";
  1018. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1",
  1019. "x x x x x x x x x x x x x x x x";
  1020. min_write_delay = 9000;
  1021. max_write_delay = 9000;
  1022. ;
  1023. memory "calibration"
  1024. size = 1;
  1025. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  1026. "0 0 0 0 0 0 0 0 o o o o o o o o";
  1027. ;
  1028. memory "fuse"
  1029. size = 1;
  1030. read = "0 1 0 1 0 0 0 0 x x x x x x x x",
  1031. "x x x x x x x x o o o o x x o o";
  1032. write = "1 0 1 0 1 1 0 0 1 0 1 x x x x x",
  1033. "x x x x x x x x i i i i 1 1 i i";
  1034. min_write_delay = 9000;
  1035. max_write_delay = 9000;
  1036. ;
  1037. ;
  1038. #------------------------------------------------------------
  1039. # AT90s1200
  1040. #------------------------------------------------------------
  1041. part
  1042. id = "1200";
  1043. desc = "AT90S1200";
  1044. stk500_devcode = 0x33;
  1045. avr910_devcode = 0x13;
  1046. signature = 0x1e 0x90 0x01;
  1047. pagel = 0xd7;
  1048. bs2 = 0xa0;
  1049. chip_erase_delay = 20000;
  1050. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  1051. "x x x x x x x x x x x x x x x x";
  1052. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  1053. "x x x x x x x x x x x x x x x x";
  1054. timeout = 200;
  1055. stabdelay = 100;
  1056. cmdexedelay = 25;
  1057. synchloops = 1;
  1058. bytedelay = 0;
  1059. pollindex = 0;
  1060. pollvalue = 0xFF;
  1061. predelay = 1;
  1062. postdelay = 1;
  1063. pollmethod = 0;
  1064. pp_controlstack =
  1065. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  1066. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  1067. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  1068. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  1069. hventerstabdelay = 100;
  1070. progmodedelay = 0;
  1071. latchcycles = 0;
  1072. togglevtg = 0;
  1073. poweroffdelay = 0;
  1074. resetdelayms = 0;
  1075. resetdelayus = 0;
  1076. hvleavestabdelay = 15;
  1077. chiperasepulsewidth = 15;
  1078. chiperasepolltimeout = 0;
  1079. programfusepulsewidth = 2;
  1080. programfusepolltimeout = 0;
  1081. programlockpulsewidth = 0;
  1082. programlockpolltimeout = 1;
  1083. memory "eeprom"
  1084. size = 64;
  1085. min_write_delay = 4000;
  1086. max_write_delay = 9000;
  1087. readback_p1 = 0x00;
  1088. readback_p2 = 0xff;
  1089. read = "1 0 1 0 0 0 0 0 x x x x x x x x",
  1090. "x x a5 a4 a3 a2 a1 a0 o o o o o o o o";
  1091. write = "1 1 0 0 0 0 0 0 x x x x x x x x",
  1092. "x x a5 a4 a3 a2 a1 a0 i i i i i i i i";
  1093. mode = 0x04;
  1094. delay = 20;
  1095. blocksize = 32;
  1096. readsize = 256;
  1097. ;
  1098. memory "flash"
  1099. size = 1024;
  1100. min_write_delay = 4000;
  1101. max_write_delay = 9000;
  1102. readback_p1 = 0xff;
  1103. readback_p2 = 0xff;
  1104. read_lo = " 0 0 1 0 0 0 0 0",
  1105. " x x x x x x x a8",
  1106. " a7 a6 a5 a4 a3 a2 a1 a0",
  1107. " o o o o o o o o";
  1108. read_hi = " 0 0 1 0 1 0 0 0",
  1109. " x x x x x x x a8",
  1110. " a7 a6 a5 a4 a3 a2 a1 a0",
  1111. " o o o o o o o o";
  1112. write_lo = " 0 1 0 0 0 0 0 0",
  1113. " x x x x x x x a8",
  1114. " a7 a6 a5 a4 a3 a2 a1 a0",
  1115. " i i i i i i i i";
  1116. write_hi = " 0 1 0 0 1 0 0 0",
  1117. " x x x x x x x a8",
  1118. " a7 a6 a5 a4 a3 a2 a1 a0",
  1119. " i i i i i i i i";
  1120. mode = 0x02;
  1121. delay = 15;
  1122. blocksize = 128;
  1123. readsize = 256;
  1124. ;
  1125. memory "signature"
  1126. size = 3;
  1127. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  1128. "x x x x x x a1 a0 o o o o o o o o";
  1129. ;
  1130. memory "fuse"
  1131. size = 1;
  1132. ;
  1133. memory "lock"
  1134. size = 1;
  1135. min_write_delay = 9000;
  1136. max_write_delay = 20000;
  1137. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1",
  1138. "x x x x x x x x x x x x x x x x";
  1139. ;
  1140. ;
  1141. #------------------------------------------------------------
  1142. # AT90s4414
  1143. #------------------------------------------------------------
  1144. part
  1145. id = "4414";
  1146. desc = "AT90S4414";
  1147. stk500_devcode = 0x50;
  1148. avr910_devcode = 0x28;
  1149. signature = 0x1e 0x92 0x01;
  1150. chip_erase_delay = 20000;
  1151. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  1152. "x x x x x x x x x x x x x x x x";
  1153. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  1154. "x x x x x x x x x x x x x x x x";
  1155. timeout = 200;
  1156. stabdelay = 100;
  1157. cmdexedelay = 25;
  1158. synchloops = 32;
  1159. bytedelay = 0;
  1160. pollindex = 3;
  1161. pollvalue = 0x53;
  1162. predelay = 1;
  1163. postdelay = 1;
  1164. pollmethod = 0;
  1165. pp_controlstack =
  1166. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  1167. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  1168. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  1169. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01;
  1170. hventerstabdelay = 100;
  1171. progmodedelay = 0;
  1172. latchcycles = 0;
  1173. togglevtg = 0;
  1174. poweroffdelay = 0;
  1175. resetdelayms = 0;
  1176. resetdelayus = 0;
  1177. hvleavestabdelay = 15;
  1178. chiperasepulsewidth = 15;
  1179. chiperasepolltimeout = 0;
  1180. programfusepulsewidth = 2;
  1181. programfusepolltimeout = 0;
  1182. programlockpulsewidth = 0;
  1183. programlockpolltimeout = 1;
  1184. memory "eeprom"
  1185. size = 256;
  1186. min_write_delay = 9000;
  1187. max_write_delay = 20000;
  1188. readback_p1 = 0x80;
  1189. readback_p2 = 0x7f;
  1190. read = " 1 0 1 0 0 0 0 0 x x x x x x x a8",
  1191. "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  1192. write = " 1 1 0 0 0 0 0 0 x x x x x x x a8",
  1193. "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  1194. mode = 0x04;
  1195. delay = 12;
  1196. blocksize = 64;
  1197. readsize = 256;
  1198. ;
  1199. memory "flash"
  1200. size = 4096;
  1201. min_write_delay = 9000;
  1202. max_write_delay = 20000;
  1203. readback_p1 = 0x7f;
  1204. readback_p2 = 0x7f;
  1205. read_lo = " 0 0 1 0 0 0 0 0",
  1206. " x x x x a11 a10 a9 a8",
  1207. " a7 a6 a5 a4 a3 a2 a1 a0",
  1208. " o o o o o o o o";
  1209. read_hi = " 0 0 1 0 1 0 0 0",
  1210. " x x x x a11 a10 a9 a8",
  1211. " a7 a6 a5 a4 a3 a2 a1 a0",
  1212. " o o o o o o o o";
  1213. write_lo = " 0 1 0 0 0 0 0 0",
  1214. " x x x x a11 a10 a9 a8",
  1215. " a7 a6 a5 a4 a3 a2 a1 a0",
  1216. " i i i i i i i i";
  1217. write_hi = " 0 1 0 0 1 0 0 0",
  1218. " x x x x a11 a10 a9 a8",
  1219. " a7 a6 a5 a4 a3 a2 a1 a0",
  1220. " i i i i i i i i";
  1221. mode = 0x04;
  1222. delay = 12;
  1223. blocksize = 64;
  1224. readsize = 256;
  1225. ;
  1226. memory "signature"
  1227. size = 3;
  1228. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  1229. "x x x x x x a1 a0 o o o o o o o o";
  1230. ;
  1231. memory "fuse"
  1232. size = 1;
  1233. ;
  1234. memory "lock"
  1235. size = 1;
  1236. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1",
  1237. "x x x x x x x x x x x x x x x x";
  1238. min_write_delay = 9000;
  1239. max_write_delay = 9000;
  1240. ;
  1241. ;
  1242. #------------------------------------------------------------
  1243. # AT90s2313
  1244. #------------------------------------------------------------
  1245. part
  1246. id = "2313";
  1247. desc = "AT90S2313";
  1248. stk500_devcode = 0x40;
  1249. avr910_devcode = 0x20;
  1250. signature = 0x1e 0x91 0x01;
  1251. chip_erase_delay = 20000;
  1252. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  1253. "x x x x x x x x x x x x x x x x";
  1254. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  1255. "x x x x x x x x x x x x x x x x";
  1256. timeout = 200;
  1257. stabdelay = 100;
  1258. cmdexedelay = 25;
  1259. synchloops = 32;
  1260. bytedelay = 0;
  1261. pollindex = 3;
  1262. pollvalue = 0x53;
  1263. predelay = 1;
  1264. postdelay = 1;
  1265. pollmethod = 0;
  1266. pp_controlstack =
  1267. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  1268. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  1269. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  1270. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  1271. hventerstabdelay = 100;
  1272. progmodedelay = 0;
  1273. latchcycles = 0;
  1274. togglevtg = 0;
  1275. poweroffdelay = 0;
  1276. resetdelayms = 0;
  1277. resetdelayus = 0;
  1278. hvleavestabdelay = 15;
  1279. chiperasepulsewidth = 15;
  1280. chiperasepolltimeout = 0;
  1281. programfusepulsewidth = 2;
  1282. programfusepolltimeout = 0;
  1283. programlockpulsewidth = 0;
  1284. programlockpolltimeout = 1;
  1285. memory "eeprom"
  1286. size = 128;
  1287. min_write_delay = 4000;
  1288. max_write_delay = 9000;
  1289. readback_p1 = 0x80;
  1290. readback_p2 = 0x7f;
  1291. read = "1 0 1 0 0 0 0 0 x x x x x x x x",
  1292. "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  1293. write = "1 1 0 0 0 0 0 0 x x x x x x x x",
  1294. "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  1295. mode = 0x04;
  1296. delay = 12;
  1297. blocksize = 64;
  1298. readsize = 256;
  1299. ;
  1300. memory "flash"
  1301. size = 2048;
  1302. min_write_delay = 4000;
  1303. max_write_delay = 9000;
  1304. readback_p1 = 0x7f;
  1305. readback_p2 = 0x7f;
  1306. read_lo = " 0 0 1 0 0 0 0 0",
  1307. " x x x x x x a9 a8",
  1308. " a7 a6 a5 a4 a3 a2 a1 a0",
  1309. " o o o o o o o o";
  1310. read_hi = " 0 0 1 0 1 0 0 0",
  1311. " x x x x x x a9 a8",
  1312. " a7 a6 a5 a4 a3 a2 a1 a0",
  1313. " o o o o o o o o";
  1314. write_lo = " 0 1 0 0 0 0 0 0",
  1315. " x x x x x x a9 a8",
  1316. " a7 a6 a5 a4 a3 a2 a1 a0",
  1317. " i i i i i i i i";
  1318. write_hi = " 0 1 0 0 1 0 0 0",
  1319. " x x x x x x a9 a8",
  1320. " a7 a6 a5 a4 a3 a2 a1 a0",
  1321. " i i i i i i i i";
  1322. mode = 0x04;
  1323. delay = 12;
  1324. blocksize = 128;
  1325. readsize = 256;
  1326. ;
  1327. memory "signature"
  1328. size = 3;
  1329. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  1330. "x x x x x x a1 a0 o o o o o o o o";
  1331. ;
  1332. memory "fuse"
  1333. size = 1;
  1334. ;
  1335. memory "lock"
  1336. size = 1;
  1337. write = "1 0 1 0 1 1 0 0 1 1 1 x x i i x",
  1338. "x x x x x x x x x x x x x x x x";
  1339. min_write_delay = 9000;
  1340. max_write_delay = 9000;
  1341. ;
  1342. ;
  1343. #------------------------------------------------------------
  1344. # AT90s2333
  1345. #------------------------------------------------------------
  1346. part
  1347. id = "2333";
  1348. ##### WARNING: No XML file for device 'AT90S2333'! #####
  1349. desc = "AT90S2333";
  1350. stk500_devcode = 0x42;
  1351. avr910_devcode = 0x34;
  1352. signature = 0x1e 0x91 0x05;
  1353. chip_erase_delay = 20000;
  1354. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  1355. "x x x x x x x x x x x x x x x x";
  1356. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  1357. "x x x x x x x x x x x x x x x x";
  1358. timeout = 200;
  1359. stabdelay = 100;
  1360. cmdexedelay = 25;
  1361. synchloops = 32;
  1362. bytedelay = 0;
  1363. pollindex = 3;
  1364. pollvalue = 0x53;
  1365. predelay = 1;
  1366. postdelay = 1;
  1367. pollmethod = 0;
  1368. pp_controlstack =
  1369. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  1370. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  1371. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  1372. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  1373. hventerstabdelay = 100;
  1374. progmodedelay = 0;
  1375. latchcycles = 0;
  1376. togglevtg = 0;
  1377. poweroffdelay = 0;
  1378. resetdelayms = 0;
  1379. resetdelayus = 0;
  1380. hvleavestabdelay = 15;
  1381. chiperasepulsewidth = 15;
  1382. chiperasepolltimeout = 0;
  1383. programfusepulsewidth = 2;
  1384. programfusepolltimeout = 0;
  1385. programlockpulsewidth = 0;
  1386. programlockpolltimeout = 1;
  1387. memory "eeprom"
  1388. size = 128;
  1389. min_write_delay = 9000;
  1390. max_write_delay = 20000;
  1391. readback_p1 = 0x00;
  1392. readback_p2 = 0xff;
  1393. read = "1 0 1 0 0 0 0 0 x x x x x x x x",
  1394. "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  1395. write = "1 1 0 0 0 0 0 0 x x x x x x x x",
  1396. "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  1397. mode = 0x04;
  1398. delay = 12;
  1399. blocksize = 128;
  1400. readsize = 256;
  1401. ;
  1402. memory "flash"
  1403. size = 2048;
  1404. min_write_delay = 9000;
  1405. max_write_delay = 20000;
  1406. readback_p1 = 0xff;
  1407. readback_p2 = 0xff;
  1408. read_lo = " 0 0 1 0 0 0 0 0",
  1409. " x x x x x x a9 a8",
  1410. " a7 a6 a5 a4 a3 a2 a1 a0",
  1411. " o o o o o o o o";
  1412. read_hi = " 0 0 1 0 1 0 0 0",
  1413. " x x x x x x a9 a8",
  1414. " a7 a6 a5 a4 a3 a2 a1 a0",
  1415. " o o o o o o o o";
  1416. write_lo = " 0 1 0 0 0 0 0 0",
  1417. " x x x x x x a9 a8",
  1418. " a7 a6 a5 a4 a3 a2 a1 a0",
  1419. " i i i i i i i i";
  1420. write_hi = " 0 1 0 0 1 0 0 0",
  1421. " x x x x x x a9 a8",
  1422. " a7 a6 a5 a4 a3 a2 a1 a0",
  1423. " i i i i i i i i";
  1424. mode = 0x04;
  1425. delay = 12;
  1426. blocksize = 128;
  1427. readsize = 256;
  1428. ;
  1429. memory "signature"
  1430. size = 3;
  1431. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  1432. "x x x x x x a1 a0 o o o o o o o o";
  1433. ;
  1434. memory "fuse"
  1435. size = 1;
  1436. min_write_delay = 9000;
  1437. max_write_delay = 20000;
  1438. pwroff_after_write = yes;
  1439. read = "0 1 0 1 0 0 0 0 x x x x x x x x",
  1440. "x x x x x x x x x x o o o o o o";
  1441. write = "1 0 1 0 1 1 0 0 1 0 1 i i i i i",
  1442. "x x x x x x x x x x x x x x x x";
  1443. ;
  1444. memory "lock"
  1445. size = 1;
  1446. min_write_delay = 9000;
  1447. max_write_delay = 20000;
  1448. read = "0 1 0 1 1 0 0 0 x x x x x x x x",
  1449. "x x x x x x x x x x x x x o o x";
  1450. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1",
  1451. "x x x x x x x x x x x x x x x x";
  1452. ;
  1453. ;
  1454. #------------------------------------------------------------
  1455. # AT90s2343 (also AT90s2323 and ATtiny22)
  1456. #------------------------------------------------------------
  1457. part
  1458. id = "2343";
  1459. desc = "AT90S2343";
  1460. stk500_devcode = 0x43;
  1461. avr910_devcode = 0x4c;
  1462. signature = 0x1e 0x91 0x03;
  1463. chip_erase_delay = 18000;
  1464. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  1465. "x x x x x x x x x x x x x x x x";
  1466. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  1467. "x x x x x x x x x x x x x x x x";
  1468. timeout = 200;
  1469. stabdelay = 100;
  1470. cmdexedelay = 25;
  1471. synchloops = 32;
  1472. bytedelay = 0;
  1473. pollindex = 3;
  1474. pollvalue = 0x53;
  1475. predelay = 1;
  1476. postdelay = 1;
  1477. pollmethod = 0;
  1478. hvsp_controlstack =
  1479. 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00,
  1480. 0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78,
  1481. 0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
  1482. 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
  1483. hventerstabdelay = 100;
  1484. hvspcmdexedelay = 0;
  1485. synchcycles = 6;
  1486. latchcycles = 1;
  1487. togglevtg = 0;
  1488. poweroffdelay = 25;
  1489. resetdelayms = 0;
  1490. resetdelayus = 50;
  1491. hvleavestabdelay = 100;
  1492. resetdelay = 25;
  1493. chiperasepolltimeout = 40;
  1494. chiperasetime = 0;
  1495. programfusepolltimeout = 25;
  1496. programlockpolltimeout = 25;
  1497. memory "eeprom"
  1498. size = 128;
  1499. min_write_delay = 9000;
  1500. max_write_delay = 20000;
  1501. readback_p1 = 0x00;
  1502. readback_p2 = 0xff;
  1503. read = "1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0",
  1504. "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  1505. write = "1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0",
  1506. "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  1507. mode = 0x04;
  1508. delay = 12;
  1509. blocksize = 64;
  1510. readsize = 256;
  1511. ;
  1512. memory "flash"
  1513. size = 2048;
  1514. min_write_delay = 9000;
  1515. max_write_delay = 20000;
  1516. readback_p1 = 0xff;
  1517. readback_p2 = 0xff;
  1518. read_lo = " 0 0 1 0 0 0 0 0",
  1519. " x x x x x x a9 a8",
  1520. " a7 a6 a5 a4 a3 a2 a1 a0",
  1521. " o o o o o o o o";
  1522. read_hi = " 0 0 1 0 1 0 0 0",
  1523. " x x x x x x a9 a8",
  1524. " a7 a6 a5 a4 a3 a2 a1 a0",
  1525. " o o o o o o o o";
  1526. write_lo = " 0 1 0 0 0 0 0 0",
  1527. " x x x x x x a9 a8",
  1528. " a7 a6 a5 a4 a3 a2 a1 a0",
  1529. " i i i i i i i i";
  1530. write_hi = " 0 1 0 0 1 0 0 0",
  1531. " x x x x x x a9 a8",
  1532. " a7 a6 a5 a4 a3 a2 a1 a0",
  1533. " i i i i i i i i";
  1534. mode = 0x04;
  1535. delay = 12;
  1536. blocksize = 128;
  1537. readsize = 128;
  1538. ;
  1539. memory "signature"
  1540. size = 3;
  1541. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  1542. "x x x x x x a1 a0 o o o o o o o o";
  1543. ;
  1544. memory "fuse"
  1545. size = 1;
  1546. min_write_delay = 9000;
  1547. max_write_delay = 20000;
  1548. read = "0 1 0 1 1 0 0 0 x x x x x x x x",
  1549. "x x x x x x x x o o o x x x x o";
  1550. write = "1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 i",
  1551. "x x x x x x x x x x x x x x x x";
  1552. ;
  1553. memory "lock"
  1554. size = 1;
  1555. min_write_delay = 9000;
  1556. max_write_delay = 20000;
  1557. read = "0 1 0 1 1 0 0 0 x x x x x x x x",
  1558. "x x x x x x x x o o o x x x x o";
  1559. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1",
  1560. "x x x x x x x x x x x x x x x x";
  1561. ;
  1562. ;
  1563. #------------------------------------------------------------
  1564. # AT90s4433
  1565. #------------------------------------------------------------
  1566. part
  1567. id = "4433";
  1568. desc = "AT90S4433";
  1569. stk500_devcode = 0x51;
  1570. avr910_devcode = 0x30;
  1571. signature = 0x1e 0x92 0x03;
  1572. chip_erase_delay = 20000;
  1573. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  1574. "x x x x x x x x x x x x x x x x";
  1575. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  1576. "x x x x x x x x x x x x x x x x";
  1577. timeout = 200;
  1578. stabdelay = 100;
  1579. cmdexedelay = 25;
  1580. synchloops = 32;
  1581. bytedelay = 0;
  1582. pollindex = 3;
  1583. pollvalue = 0x53;
  1584. predelay = 1;
  1585. postdelay = 1;
  1586. pollmethod = 0;
  1587. pp_controlstack =
  1588. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  1589. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  1590. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  1591. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  1592. hventerstabdelay = 100;
  1593. progmodedelay = 0;
  1594. latchcycles = 0;
  1595. togglevtg = 0;
  1596. poweroffdelay = 0;
  1597. resetdelayms = 0;
  1598. resetdelayus = 0;
  1599. hvleavestabdelay = 15;
  1600. chiperasepulsewidth = 15;
  1601. chiperasepolltimeout = 0;
  1602. programfusepulsewidth = 2;
  1603. programfusepolltimeout = 0;
  1604. programlockpulsewidth = 0;
  1605. programlockpolltimeout = 1;
  1606. memory "eeprom"
  1607. size = 256;
  1608. min_write_delay = 9000;
  1609. max_write_delay = 20000;
  1610. readback_p1 = 0x00;
  1611. readback_p2 = 0xff;
  1612. read = " 1 0 1 0 0 0 0 0 x x x x x x x x",
  1613. "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  1614. write = " 1 1 0 0 0 0 0 0 x x x x x x x x",
  1615. "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  1616. mode = 0x04;
  1617. delay = 12;
  1618. blocksize = 128;
  1619. readsize = 256;
  1620. ;
  1621. memory "flash"
  1622. size = 4096;
  1623. min_write_delay = 9000;
  1624. max_write_delay = 20000;
  1625. readback_p1 = 0xff;
  1626. readback_p2 = 0xff;
  1627. read_lo = " 0 0 1 0 0 0 0 0",
  1628. " x x x x x a10 a9 a8",
  1629. " a7 a6 a5 a4 a3 a2 a1 a0",
  1630. " o o o o o o o o";
  1631. read_hi = " 0 0 1 0 1 0 0 0",
  1632. " x x x x x a10 a9 a8",
  1633. " a7 a6 a5 a4 a3 a2 a1 a0",
  1634. " o o o o o o o o";
  1635. write_lo = " 0 1 0 0 0 0 0 0",
  1636. " x x x x x a10 a9 a8",
  1637. " a7 a6 a5 a4 a3 a2 a1 a0",
  1638. " i i i i i i i i";
  1639. write_hi = " 0 1 0 0 1 0 0 0",
  1640. " x x x x x a10 a9 a8",
  1641. " a7 a6 a5 a4 a3 a2 a1 a0",
  1642. " i i i i i i i i";
  1643. mode = 0x04;
  1644. delay = 12;
  1645. blocksize = 128;
  1646. readsize = 256;
  1647. ;
  1648. memory "signature"
  1649. size = 3;
  1650. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  1651. "x x x x x x a1 a0 o o o o o o o o";
  1652. ;
  1653. memory "fuse"
  1654. size = 1;
  1655. min_write_delay = 9000;
  1656. max_write_delay = 20000;
  1657. pwroff_after_write = yes;
  1658. read = "0 1 0 1 0 0 0 0 x x x x x x x x",
  1659. "x x x x x x x x x x o o o o o o";
  1660. write = "1 0 1 0 1 1 0 0 1 0 1 i i i i i",
  1661. "x x x x x x x x x x x x x x x x";
  1662. ;
  1663. memory "lock"
  1664. size = 1;
  1665. min_write_delay = 9000;
  1666. max_write_delay = 20000;
  1667. read = "0 1 0 1 1 0 0 0 x x x x x x x x",
  1668. "x x x x x x x x x x x x x o o x";
  1669. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1",
  1670. "x x x x x x x x x x x x x x x x";
  1671. ;
  1672. ;
  1673. #------------------------------------------------------------
  1674. # AT90s4434
  1675. #------------------------------------------------------------
  1676. part
  1677. id = "4434";
  1678. ##### WARNING: No XML file for device 'AT90S4434'! #####
  1679. desc = "AT90S4434";
  1680. stk500_devcode = 0x52;
  1681. avr910_devcode = 0x6c;
  1682. signature = 0x1e 0x92 0x02;
  1683. chip_erase_delay = 20000;
  1684. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  1685. "x x x x x x x x x x x x x x x x";
  1686. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  1687. "x x x x x x x x x x x x x x x x";
  1688. memory "eeprom"
  1689. size = 256;
  1690. min_write_delay = 9000;
  1691. max_write_delay = 20000;
  1692. readback_p1 = 0x00;
  1693. readback_p2 = 0xff;
  1694. read = " 1 0 1 0 0 0 0 0 x x x x x x x x",
  1695. "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  1696. write = " 1 1 0 0 0 0 0 0 x x x x x x x x",
  1697. "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  1698. ;
  1699. memory "flash"
  1700. size = 4096;
  1701. min_write_delay = 9000;
  1702. max_write_delay = 20000;
  1703. readback_p1 = 0xff;
  1704. readback_p2 = 0xff;
  1705. read_lo = " 0 0 1 0 0 0 0 0",
  1706. " x x x x x a10 a9 a8",
  1707. " a7 a6 a5 a4 a3 a2 a1 a0",
  1708. " o o o o o o o o";
  1709. read_hi = " 0 0 1 0 1 0 0 0",
  1710. " x x x x x a10 a9 a8",
  1711. " a7 a6 a5 a4 a3 a2 a1 a0",
  1712. " o o o o o o o o";
  1713. write_lo = " 0 1 0 0 0 0 0 0",
  1714. " x x x x x a10 a9 a8",
  1715. " a7 a6 a5 a4 a3 a2 a1 a0",
  1716. " i i i i i i i i";
  1717. write_hi = " 0 1 0 0 1 0 0 0",
  1718. " x x x x x a10 a9 a8",
  1719. " a7 a6 a5 a4 a3 a2 a1 a0",
  1720. " i i i i i i i i";
  1721. ;
  1722. memory "signature"
  1723. size = 3;
  1724. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  1725. "x x x x x x a1 a0 o o o o o o o o";
  1726. ;
  1727. memory "fuse"
  1728. size = 1;
  1729. min_write_delay = 9000;
  1730. max_write_delay = 20000;
  1731. read = "0 1 0 1 0 0 0 0 x x x x x x x x",
  1732. "x x x x x x x x x x o o o o o o";
  1733. write = "1 0 1 0 1 1 0 0 1 0 1 i i i i i",
  1734. "x x x x x x x x x x x x x x x x";
  1735. ;
  1736. memory "lock"
  1737. size = 1;
  1738. min_write_delay = 9000;
  1739. max_write_delay = 20000;
  1740. read = "0 1 0 1 1 0 0 0 x x x x x x x x",
  1741. "x x x x x x x x x x x x x o o x";
  1742. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1",
  1743. "x x x x x x x x x x x x x x x x";
  1744. ;
  1745. ;
  1746. #------------------------------------------------------------
  1747. # AT90s8515
  1748. #------------------------------------------------------------
  1749. part
  1750. id = "8515";
  1751. desc = "AT90S8515";
  1752. stk500_devcode = 0x60;
  1753. avr910_devcode = 0x38;
  1754. signature = 0x1e 0x93 0x01;
  1755. chip_erase_delay = 20000;
  1756. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  1757. "x x x x x x x x x x x x x x x x";
  1758. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  1759. "x x x x x x x x x x x x x x x x";
  1760. timeout = 200;
  1761. stabdelay = 100;
  1762. cmdexedelay = 25;
  1763. synchloops = 32;
  1764. bytedelay = 0;
  1765. pollindex = 3;
  1766. pollvalue = 0x53;
  1767. predelay = 1;
  1768. postdelay = 1;
  1769. pollmethod = 0;
  1770. pp_controlstack =
  1771. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  1772. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  1773. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  1774. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  1775. hventerstabdelay = 100;
  1776. progmodedelay = 0;
  1777. latchcycles = 0;
  1778. togglevtg = 0;
  1779. poweroffdelay = 0;
  1780. resetdelayms = 0;
  1781. resetdelayus = 0;
  1782. hvleavestabdelay = 15;
  1783. resetdelay = 15;
  1784. chiperasepulsewidth = 15;
  1785. chiperasepolltimeout = 0;
  1786. programfusepulsewidth = 2;
  1787. programfusepolltimeout = 0;
  1788. programlockpulsewidth = 0;
  1789. programlockpolltimeout = 1;
  1790. memory "eeprom"
  1791. size = 512;
  1792. min_write_delay = 4000;
  1793. max_write_delay = 9000;
  1794. readback_p1 = 0x80;
  1795. readback_p2 = 0x7f;
  1796. read = " 1 0 1 0 0 0 0 0 x x x x x x x a8",
  1797. "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  1798. write = " 1 1 0 0 0 0 0 0 x x x x x x x a8",
  1799. "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  1800. mode = 0x04;
  1801. delay = 12;
  1802. blocksize = 128;
  1803. readsize = 256;
  1804. ;
  1805. memory "flash"
  1806. size = 8192;
  1807. min_write_delay = 4000;
  1808. max_write_delay = 9000;
  1809. readback_p1 = 0x7f;
  1810. readback_p2 = 0x7f;
  1811. read_lo = " 0 0 1 0 0 0 0 0",
  1812. " x x x x a11 a10 a9 a8",
  1813. " a7 a6 a5 a4 a3 a2 a1 a0",
  1814. " o o o o o o o o";
  1815. read_hi = " 0 0 1 0 1 0 0 0",
  1816. " x x x x a11 a10 a9 a8",
  1817. " a7 a6 a5 a4 a3 a2 a1 a0",
  1818. " o o o o o o o o";
  1819. write_lo = " 0 1 0 0 0 0 0 0",
  1820. " x x x x a11 a10 a9 a8",
  1821. " a7 a6 a5 a4 a3 a2 a1 a0",
  1822. " i i i i i i i i";
  1823. write_hi = " 0 1 0 0 1 0 0 0",
  1824. " x x x x a11 a10 a9 a8",
  1825. " a7 a6 a5 a4 a3 a2 a1 a0",
  1826. " i i i i i i i i";
  1827. mode = 0x04;
  1828. delay = 12;
  1829. blocksize = 128;
  1830. readsize = 256;
  1831. ;
  1832. memory "signature"
  1833. size = 3;
  1834. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  1835. "x x x x x x a1 a0 o o o o o o o o";
  1836. ;
  1837. memory "fuse"
  1838. size = 1;
  1839. ;
  1840. memory "lock"
  1841. size = 1;
  1842. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1",
  1843. "x x x x x x x x x x x x x x x x";
  1844. min_write_delay = 9000;
  1845. max_write_delay = 9000;
  1846. ;
  1847. ;
  1848. #------------------------------------------------------------
  1849. # AT90s8535
  1850. #------------------------------------------------------------
  1851. part
  1852. id = "8535";
  1853. desc = "AT90S8535";
  1854. stk500_devcode = 0x61;
  1855. avr910_devcode = 0x68;
  1856. signature = 0x1e 0x93 0x03;
  1857. chip_erase_delay = 20000;
  1858. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  1859. "x x x x x x x x x x x x x x x x";
  1860. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  1861. "x x x x x x x x x x x x x x x x";
  1862. timeout = 200;
  1863. stabdelay = 100;
  1864. cmdexedelay = 25;
  1865. synchloops = 32;
  1866. bytedelay = 0;
  1867. pollindex = 3;
  1868. pollvalue = 0x53;
  1869. predelay = 1;
  1870. postdelay = 1;
  1871. pollmethod = 0;
  1872. pp_controlstack =
  1873. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  1874. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  1875. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  1876. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  1877. hventerstabdelay = 100;
  1878. progmodedelay = 0;
  1879. latchcycles = 0;
  1880. togglevtg = 0;
  1881. poweroffdelay = 0;
  1882. resetdelayms = 0;
  1883. resetdelayus = 0;
  1884. hvleavestabdelay = 15;
  1885. chiperasepulsewidth = 15;
  1886. chiperasepolltimeout = 0;
  1887. programfusepulsewidth = 2;
  1888. programfusepolltimeout = 0;
  1889. programlockpulsewidth = 0;
  1890. programlockpolltimeout = 1;
  1891. memory "eeprom"
  1892. size = 512;
  1893. min_write_delay = 9000;
  1894. max_write_delay = 20000;
  1895. readback_p1 = 0x00;
  1896. readback_p2 = 0xff;
  1897. read = " 1 0 1 0 0 0 0 0 x x x x x x x a8",
  1898. "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  1899. write = " 1 1 0 0 0 0 0 0 x x x x x x x a8",
  1900. "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  1901. mode = 0x04;
  1902. delay = 12;
  1903. blocksize = 128;
  1904. readsize = 256;
  1905. ;
  1906. memory "flash"
  1907. size = 8192;
  1908. min_write_delay = 9000;
  1909. max_write_delay = 20000;
  1910. readback_p1 = 0xff;
  1911. readback_p2 = 0xff;
  1912. read_lo = " 0 0 1 0 0 0 0 0",
  1913. " x x x x a11 a10 a9 a8",
  1914. " a7 a6 a5 a4 a3 a2 a1 a0",
  1915. " o o o o o o o o";
  1916. read_hi = " 0 0 1 0 1 0 0 0",
  1917. " x x x x a11 a10 a9 a8",
  1918. " a7 a6 a5 a4 a3 a2 a1 a0",
  1919. " o o o o o o o o";
  1920. write_lo = " 0 1 0 0 0 0 0 0",
  1921. " x x x x a11 a10 a9 a8",
  1922. " a7 a6 a5 a4 a3 a2 a1 a0",
  1923. " i i i i i i i i";
  1924. write_hi = " 0 1 0 0 1 0 0 0",
  1925. " x x x x a11 a10 a9 a8",
  1926. " a7 a6 a5 a4 a3 a2 a1 a0",
  1927. " i i i i i i i i";
  1928. mode = 0x04;
  1929. delay = 12;
  1930. blocksize = 128;
  1931. readsize = 256;
  1932. ;
  1933. memory "signature"
  1934. size = 3;
  1935. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  1936. "x x x x x x a1 a0 o o o o o o o o";
  1937. ;
  1938. memory "fuse"
  1939. size = 1;
  1940. read = "0 1 0 1 1 0 0 0 x x x x x x x x",
  1941. "x x x x x x x x x x x x x x x o";
  1942. write = "1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 i",
  1943. "x x x x x x x x x x x x x x x x";
  1944. min_write_delay = 9000;
  1945. max_write_delay = 9000;
  1946. ;
  1947. memory "lock"
  1948. size = 1;
  1949. read = "0 1 0 1 1 0 0 0 x x x x x x x x",
  1950. "x x x x x x x x o o x x x x x x";
  1951. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1",
  1952. "x x x x x x x x x x x x x x x x";
  1953. min_write_delay = 9000;
  1954. max_write_delay = 9000;
  1955. ;
  1956. ;
  1957. #------------------------------------------------------------
  1958. # ATmega103
  1959. #------------------------------------------------------------
  1960. part
  1961. id = "m103";
  1962. desc = "ATMEGA103";
  1963. stk500_devcode = 0xB1;
  1964. avr910_devcode = 0x41;
  1965. signature = 0x1e 0x97 0x01;
  1966. chip_erase_delay = 112000;
  1967. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  1968. "x x x x x x x x x x x x x x x x";
  1969. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  1970. "x x x x x x x x x x x x x x x x";
  1971. timeout = 200;
  1972. stabdelay = 100;
  1973. cmdexedelay = 25;
  1974. synchloops = 32;
  1975. bytedelay = 0;
  1976. pollindex = 3;
  1977. pollvalue = 0x53;
  1978. predelay = 1;
  1979. postdelay = 1;
  1980. pollmethod = 0;
  1981. pp_controlstack =
  1982. 0x0E, 0x1E, 0x8E, 0x9E, 0x2E, 0x3E, 0xAE, 0xBE,
  1983. 0x4E, 0x5E, 0xCE, 0xDE, 0x6E, 0x7E, 0xEE, 0xDE,
  1984. 0x66, 0x76, 0xE6, 0xF6, 0x6A, 0x7A, 0xEA, 0x7A,
  1985. 0x7F, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  1986. hventerstabdelay = 100;
  1987. progmodedelay = 0;
  1988. latchcycles = 0;
  1989. togglevtg = 0;
  1990. poweroffdelay = 0;
  1991. resetdelayms = 0;
  1992. resetdelayus = 0;
  1993. hvleavestabdelay = 15;
  1994. chiperasepulsewidth = 15;
  1995. chiperasepolltimeout = 0;
  1996. programfusepulsewidth = 2;
  1997. programfusepolltimeout = 0;
  1998. programlockpulsewidth = 0;
  1999. programlockpolltimeout = 10;
  2000. memory "eeprom"
  2001. size = 4096;
  2002. min_write_delay = 4000;
  2003. max_write_delay = 9000;
  2004. readback_p1 = 0x80;
  2005. readback_p2 = 0x7f;
  2006. read = " 1 0 1 0 0 0 0 0",
  2007. " x x x x a11 a10 a9 a8",
  2008. " a7 a6 a5 a4 a3 a2 a1 a0",
  2009. " o o o o o o o o";
  2010. write = " 1 1 0 0 0 0 0 0",
  2011. " x x x x a11 a10 a9 a8",
  2012. " a7 a6 a5 a4 a3 a2 a1 a0",
  2013. " i i i i i i i i";
  2014. mode = 0x04;
  2015. delay = 12;
  2016. blocksize = 64;
  2017. readsize = 256;
  2018. ;
  2019. memory "flash"
  2020. paged = yes;
  2021. size = 131072;
  2022. page_size = 256;
  2023. num_pages = 512;
  2024. min_write_delay = 22000;
  2025. max_write_delay = 56000;
  2026. readback_p1 = 0xff;
  2027. readback_p2 = 0xff;
  2028. read_lo = " 0 0 1 0 0 0 0 0",
  2029. "a15 a14 a13 a12 a11 a10 a9 a8",
  2030. " a7 a6 a5 a4 a3 a2 a1 a0",
  2031. " o o o o o o o o";
  2032. read_hi = " 0 0 1 0 1 0 0 0",
  2033. "a15 a14 a13 a12 a11 a10 a9 a8",
  2034. " a7 a6 a5 a4 a3 a2 a1 a0",
  2035. " o o o o o o o o";
  2036. loadpage_lo = " 0 1 0 0 0 0 0 0",
  2037. " x x x x x x x x",
  2038. " x a6 a5 a4 a3 a2 a1 a0",
  2039. " i i i i i i i i";
  2040. loadpage_hi = " 0 1 0 0 1 0 0 0",
  2041. " x x x x x x x x",
  2042. " x a6 a5 a4 a3 a2 a1 a0",
  2043. " i i i i i i i i";
  2044. writepage = " 0 1 0 0 1 1 0 0",
  2045. "a15 a14 a13 a12 a11 a10 a9 a8",
  2046. " a7 x x x x x x x",
  2047. " x x x x x x x x";
  2048. mode = 0x11;
  2049. delay = 70;
  2050. blocksize = 256;
  2051. readsize = 256;
  2052. ;
  2053. memory "fuse"
  2054. size = 1;
  2055. read = "0 1 0 1 0 0 0 0 x x x x x x x x",
  2056. "x x x x x x x x x x o x o 1 o o";
  2057. write = "1 0 1 0 1 1 0 0 1 0 1 1 i 1 i i",
  2058. "x x x x x x x x x x x x x x x x";
  2059. min_write_delay = 9000;
  2060. max_write_delay = 9000;
  2061. ;
  2062. memory "lock"
  2063. size = 1;
  2064. read = "0 1 0 1 1 0 0 0 x x x x x x x x",
  2065. "x x x x x x x x x x x x x o o x";
  2066. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1",
  2067. "x x x x x x x x x x x x x x x x";
  2068. min_write_delay = 9000;
  2069. max_write_delay = 9000;
  2070. ;
  2071. memory "signature"
  2072. size = 3;
  2073. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  2074. "x x x x x x a1 a0 o o o o o o o o";
  2075. ;
  2076. ;
  2077. #------------------------------------------------------------
  2078. # ATmega64
  2079. #------------------------------------------------------------
  2080. part
  2081. id = "m64";
  2082. desc = "ATMEGA64";
  2083. has_jtag = yes;
  2084. stk500_devcode = 0xA0;
  2085. avr910_devcode = 0x45;
  2086. signature = 0x1e 0x96 0x02;
  2087. chip_erase_delay = 9000;
  2088. pagel = 0xD7;
  2089. bs2 = 0xA0;
  2090. reset = dedicated;
  2091. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  2092. "x x x x x x x x x x x x x x x x";
  2093. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  2094. "x x x x x x x x x x x x x x x x";
  2095. timeout = 200;
  2096. stabdelay = 100;
  2097. cmdexedelay = 25;
  2098. synchloops = 32;
  2099. bytedelay = 0;
  2100. pollindex = 3;
  2101. pollvalue = 0x53;
  2102. predelay = 1;
  2103. postdelay = 1;
  2104. pollmethod = 0;
  2105. pp_controlstack =
  2106. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  2107. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  2108. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  2109. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  2110. hventerstabdelay = 100;
  2111. progmodedelay = 0;
  2112. latchcycles = 6;
  2113. togglevtg = 0;
  2114. poweroffdelay = 0;
  2115. resetdelayms = 0;
  2116. resetdelayus = 0;
  2117. hvleavestabdelay = 15;
  2118. chiperasepulsewidth = 0;
  2119. chiperasepolltimeout = 10;
  2120. programfusepulsewidth = 0;
  2121. programfusepolltimeout = 5;
  2122. programlockpulsewidth = 0;
  2123. programlockpolltimeout = 5;
  2124. idr = 0x22;
  2125. spmcr = 0x68;
  2126. allowfullpagebitstream = yes;
  2127. memory "eeprom"
  2128. paged = no; /* leave this "no" */
  2129. page_size = 8; /* for parallel programming */
  2130. size = 2048;
  2131. min_write_delay = 9000;
  2132. max_write_delay = 9000;
  2133. readback_p1 = 0xff;
  2134. readback_p2 = 0xff;
  2135. read = " 1 0 1 0 0 0 0 0",
  2136. " x x x x a11 a10 a9 a8",
  2137. " a7 a6 a5 a4 a3 a2 a1 a0",
  2138. " o o o o o o o o";
  2139. write = " 1 1 0 0 0 0 0 0",
  2140. " x x x x a11 a10 a9 a8",
  2141. " a7 a6 a5 a4 a3 a2 a1 a0",
  2142. " i i i i i i i i";
  2143. mode = 0x04;
  2144. delay = 20;
  2145. blocksize = 64;
  2146. readsize = 256;
  2147. ;
  2148. memory "flash"
  2149. paged = yes;
  2150. size = 65536;
  2151. page_size = 256;
  2152. num_pages = 256;
  2153. min_write_delay = 4500;
  2154. max_write_delay = 4500;
  2155. readback_p1 = 0xff;
  2156. readback_p2 = 0xff;
  2157. read_lo = " 0 0 1 0 0 0 0 0",
  2158. " x a14 a13 a12 a11 a10 a9 a8",
  2159. " a7 a6 a5 a4 a3 a2 a1 a0",
  2160. " o o o o o o o o";
  2161. read_hi = " 0 0 1 0 1 0 0 0",
  2162. " x a14 a13 a12 a11 a10 a9 a8",
  2163. " a7 a6 a5 a4 a3 a2 a1 a0",
  2164. " o o o o o o o o";
  2165. loadpage_lo = " 0 1 0 0 0 0 0 0",
  2166. " x x x x x x x x",
  2167. " x a6 a5 a4 a3 a2 a1 a0",
  2168. " i i i i i i i i";
  2169. loadpage_hi = " 0 1 0 0 1 0 0 0",
  2170. " x x x x x x x x",
  2171. " x a6 a5 a4 a3 a2 a1 a0",
  2172. " i i i i i i i i";
  2173. writepage = " 0 1 0 0 1 1 0 0",
  2174. " x a14 a13 a12 a11 a10 a9 a8",
  2175. " a7 x x x x x x x",
  2176. " x x x x x x x x";
  2177. mode = 0x21;
  2178. delay = 6;
  2179. blocksize = 128;
  2180. readsize = 256;
  2181. ;
  2182. memory "lfuse"
  2183. size = 1;
  2184. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  2185. "x x x x x x x x i i i i i i i i";
  2186. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  2187. "x x x x x x x x o o o o o o o o";
  2188. min_write_delay = 9000;
  2189. max_write_delay = 9000;
  2190. ;
  2191. memory "hfuse"
  2192. size = 1;
  2193. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  2194. "x x x x x x x x i i i i i i i i";
  2195. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  2196. "x x x x x x x x o o o o o o o o";
  2197. min_write_delay = 9000;
  2198. max_write_delay = 9000;
  2199. ;
  2200. memory "efuse"
  2201. size = 1;
  2202. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  2203. "x x x x x x x x x x x x x x i i";
  2204. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  2205. "x x x x x x x x o o o o o o o o";
  2206. min_write_delay = 9000;
  2207. max_write_delay = 9000;
  2208. ;
  2209. memory "lock"
  2210. size = 1;
  2211. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  2212. "x x x x x x x x x x o o o o o o";
  2213. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  2214. "x x x x x x x x 1 1 i i i i i i";
  2215. min_write_delay = 9000;
  2216. max_write_delay = 9000;
  2217. ;
  2218. memory "calibration"
  2219. size = 4;
  2220. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  2221. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  2222. ;
  2223. memory "signature"
  2224. size = 3;
  2225. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  2226. "x x x x x x a1 a0 o o o o o o o o";
  2227. ;
  2228. ;
  2229. #------------------------------------------------------------
  2230. # ATmega128
  2231. #------------------------------------------------------------
  2232. part
  2233. id = "m128";
  2234. desc = "ATMEGA128";
  2235. has_jtag = yes;
  2236. stk500_devcode = 0xB2;
  2237. avr910_devcode = 0x43;
  2238. signature = 0x1e 0x97 0x02;
  2239. chip_erase_delay = 9000;
  2240. pagel = 0xD7;
  2241. bs2 = 0xA0;
  2242. reset = dedicated;
  2243. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  2244. "x x x x x x x x x x x x x x x x";
  2245. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  2246. "x x x x x x x x x x x x x x x x";
  2247. timeout = 200;
  2248. stabdelay = 100;
  2249. cmdexedelay = 25;
  2250. synchloops = 32;
  2251. bytedelay = 0;
  2252. pollindex = 3;
  2253. pollvalue = 0x53;
  2254. predelay = 1;
  2255. postdelay = 1;
  2256. pollmethod = 0;
  2257. pp_controlstack =
  2258. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  2259. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  2260. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  2261. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  2262. hventerstabdelay = 100;
  2263. progmodedelay = 0;
  2264. latchcycles = 6;
  2265. togglevtg = 0;
  2266. poweroffdelay = 0;
  2267. resetdelayms = 0;
  2268. resetdelayus = 0;
  2269. hvleavestabdelay = 15;
  2270. chiperasepulsewidth = 0;
  2271. chiperasepolltimeout = 10;
  2272. programfusepulsewidth = 0;
  2273. programfusepolltimeout = 5;
  2274. programlockpulsewidth = 0;
  2275. programlockpolltimeout = 5;
  2276. idr = 0x22;
  2277. spmcr = 0x68;
  2278. rampz = 0x3b;
  2279. allowfullpagebitstream = yes;
  2280. memory "eeprom"
  2281. paged = no; /* leave this "no" */
  2282. page_size = 8; /* for parallel programming */
  2283. size = 4096;
  2284. min_write_delay = 9000;
  2285. max_write_delay = 9000;
  2286. readback_p1 = 0xff;
  2287. readback_p2 = 0xff;
  2288. read = " 1 0 1 0 0 0 0 0",
  2289. " x x x x a11 a10 a9 a8",
  2290. " a7 a6 a5 a4 a3 a2 a1 a0",
  2291. " o o o o o o o o";
  2292. write = " 1 1 0 0 0 0 0 0",
  2293. " x x x x a11 a10 a9 a8",
  2294. " a7 a6 a5 a4 a3 a2 a1 a0",
  2295. " i i i i i i i i";
  2296. mode = 0x04;
  2297. delay = 12;
  2298. blocksize = 64;
  2299. readsize = 256;
  2300. ;
  2301. memory "flash"
  2302. paged = yes;
  2303. size = 131072;
  2304. page_size = 256;
  2305. num_pages = 512;
  2306. min_write_delay = 4500;
  2307. max_write_delay = 4500;
  2308. readback_p1 = 0xff;
  2309. readback_p2 = 0xff;
  2310. read_lo = " 0 0 1 0 0 0 0 0",
  2311. "a15 a14 a13 a12 a11 a10 a9 a8",
  2312. " a7 a6 a5 a4 a3 a2 a1 a0",
  2313. " o o o o o o o o";
  2314. read_hi = " 0 0 1 0 1 0 0 0",
  2315. "a15 a14 a13 a12 a11 a10 a9 a8",
  2316. " a7 a6 a5 a4 a3 a2 a1 a0",
  2317. " o o o o o o o o";
  2318. loadpage_lo = " 0 1 0 0 0 0 0 0",
  2319. " x x x x x x x x",
  2320. " x a6 a5 a4 a3 a2 a1 a0",
  2321. " i i i i i i i i";
  2322. loadpage_hi = " 0 1 0 0 1 0 0 0",
  2323. " x x x x x x x x",
  2324. " x a6 a5 a4 a3 a2 a1 a0",
  2325. " i i i i i i i i";
  2326. writepage = " 0 1 0 0 1 1 0 0",
  2327. "a15 a14 a13 a12 a11 a10 a9 a8",
  2328. " a7 x x x x x x x",
  2329. " x x x x x x x x";
  2330. mode = 0x21;
  2331. delay = 6;
  2332. blocksize = 128;
  2333. readsize = 256;
  2334. ;
  2335. memory "lfuse"
  2336. size = 1;
  2337. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  2338. "x x x x x x x x i i i i i i i i";
  2339. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  2340. "x x x x x x x x o o o o o o o o";
  2341. min_write_delay = 9000;
  2342. max_write_delay = 9000;
  2343. ;
  2344. memory "hfuse"
  2345. size = 1;
  2346. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  2347. "x x x x x x x x i i i i i i i i";
  2348. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  2349. "x x x x x x x x o o o o o o o o";
  2350. min_write_delay = 9000;
  2351. max_write_delay = 9000;
  2352. ;
  2353. memory "efuse"
  2354. size = 1;
  2355. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  2356. "x x x x x x x x x x x x x x i i";
  2357. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  2358. "x x x x x x x x o o o o o o o o";
  2359. min_write_delay = 9000;
  2360. max_write_delay = 9000;
  2361. ;
  2362. memory "lock"
  2363. size = 1;
  2364. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  2365. "x x x x x x x x x x o o o o o o";
  2366. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  2367. "x x x x x x x x 1 1 i i i i i i";
  2368. min_write_delay = 9000;
  2369. max_write_delay = 9000;
  2370. ;
  2371. memory "calibration"
  2372. size = 4;
  2373. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  2374. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  2375. ;
  2376. memory "signature"
  2377. size = 3;
  2378. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  2379. "x x x x x x a1 a0 o o o o o o o o";
  2380. ;
  2381. ;
  2382. #------------------------------------------------------------
  2383. # AT90CAN128
  2384. #------------------------------------------------------------
  2385. part
  2386. id = "c128";
  2387. desc = "AT90CAN128";
  2388. has_jtag = yes;
  2389. stk500_devcode = 0xB3;
  2390. # avr910_devcode = 0x43;
  2391. signature = 0x1e 0x97 0x81;
  2392. chip_erase_delay = 9000;
  2393. pagel = 0xD7;
  2394. bs2 = 0xA0;
  2395. reset = dedicated;
  2396. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  2397. "x x x x x x x x x x x x x x x x";
  2398. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  2399. "x x x x x x x x x x x x x x x x";
  2400. timeout = 200;
  2401. stabdelay = 100;
  2402. cmdexedelay = 25;
  2403. synchloops = 32;
  2404. bytedelay = 0;
  2405. pollindex = 3;
  2406. pollvalue = 0x53;
  2407. predelay = 1;
  2408. postdelay = 1;
  2409. pollmethod = 1;
  2410. pp_controlstack =
  2411. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  2412. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  2413. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  2414. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01;
  2415. hventerstabdelay = 100;
  2416. progmodedelay = 0;
  2417. latchcycles = 6;
  2418. togglevtg = 0;
  2419. poweroffdelay = 0;
  2420. resetdelayms = 0;
  2421. resetdelayus = 0;
  2422. hvleavestabdelay = 15;
  2423. chiperasepulsewidth = 0;
  2424. chiperasepolltimeout = 10;
  2425. programfusepulsewidth = 0;
  2426. programfusepolltimeout = 5;
  2427. programlockpulsewidth = 0;
  2428. programlockpolltimeout = 5;
  2429. idr = 0x31;
  2430. spmcr = 0x57;
  2431. rampz = 0x3b;
  2432. eecr = 0x3f;
  2433. allowfullpagebitstream = no;
  2434. memory "eeprom"
  2435. paged = no; /* leave this "no" */
  2436. page_size = 8; /* for parallel programming */
  2437. size = 4096;
  2438. min_write_delay = 9000;
  2439. max_write_delay = 9000;
  2440. readback_p1 = 0xff;
  2441. readback_p2 = 0xff;
  2442. read = " 1 0 1 0 0 0 0 0",
  2443. " 0 0 0 x a11 a10 a9 a8",
  2444. " a7 a6 a5 a4 a3 a2 a1 a0",
  2445. " o o o o o o o o";
  2446. write = " 1 1 0 0 0 0 0 0",
  2447. " 0 0 0 x a11 a10 a9 a8",
  2448. " a7 a6 a5 a4 a3 a2 a1 a0",
  2449. " i i i i i i i i";
  2450. loadpage_lo = " 1 1 0 0 0 0 0 1",
  2451. " 0 0 0 0 0 0 0 0",
  2452. " 0 0 0 0 0 a2 a1 a0",
  2453. " i i i i i i i i";
  2454. writepage = " 1 1 0 0 0 0 1 0",
  2455. " 0 0 x x a11 a10 a9 a8",
  2456. " a7 a6 a5 a4 a3 0 0 0",
  2457. " x x x x x x x x";
  2458. mode = 0x41;
  2459. delay = 20;
  2460. blocksize = 8;
  2461. readsize = 256;
  2462. ;
  2463. memory "flash"
  2464. paged = yes;
  2465. size = 131072;
  2466. page_size = 256;
  2467. num_pages = 512;
  2468. min_write_delay = 4500;
  2469. max_write_delay = 4500;
  2470. readback_p1 = 0xff;
  2471. readback_p2 = 0xff;
  2472. read_lo = " 0 0 1 0 0 0 0 0",
  2473. "a15 a14 a13 a12 a11 a10 a9 a8",
  2474. " a7 a6 a5 a4 a3 a2 a1 a0",
  2475. " o o o o o o o o";
  2476. read_hi = " 0 0 1 0 1 0 0 0",
  2477. "a15 a14 a13 a12 a11 a10 a9 a8",
  2478. " a7 a6 a5 a4 a3 a2 a1 a0",
  2479. " o o o o o o o o";
  2480. loadpage_lo = " 0 1 0 0 0 0 0 0",
  2481. " 0 0 0 x x x x x",
  2482. " x a6 a5 a4 a3 a2 a1 a0",
  2483. " i i i i i i i i";
  2484. loadpage_hi = " 0 1 0 0 1 0 0 0",
  2485. " 0 0 0 x x x x x",
  2486. " x a6 a5 a4 a3 a2 a1 a0",
  2487. " i i i i i i i i";
  2488. writepage = " 0 1 0 0 1 1 0 0",
  2489. "a15 a14 a13 a12 a11 a10 a9 a8",
  2490. " a7 x x x x x x x",
  2491. " x x x x x x x x";
  2492. mode = 0x41;
  2493. delay = 6;
  2494. blocksize = 256;
  2495. readsize = 256;
  2496. ;
  2497. memory "lfuse"
  2498. size = 1;
  2499. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  2500. "x x x x x x x x i i i i i i i i";
  2501. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  2502. "x x x x x x x x o o o o o o o o";
  2503. min_write_delay = 9000;
  2504. max_write_delay = 9000;
  2505. ;
  2506. memory "hfuse"
  2507. size = 1;
  2508. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  2509. "x x x x x x x x i i i i i i i i";
  2510. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  2511. "x x x x x x x x o o o o o o o o";
  2512. min_write_delay = 9000;
  2513. max_write_delay = 9000;
  2514. ;
  2515. memory "efuse"
  2516. size = 1;
  2517. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  2518. "x x x x x x x x x x x x i i i i";
  2519. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  2520. "x x x x x x x x o o o o o o o o";
  2521. min_write_delay = 9000;
  2522. max_write_delay = 9000;
  2523. ;
  2524. memory "lock"
  2525. size = 1;
  2526. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  2527. "x x x x x x x x x x o o o o o o";
  2528. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  2529. "x x x x x x x x 1 1 i i i i i i";
  2530. min_write_delay = 9000;
  2531. max_write_delay = 9000;
  2532. ;
  2533. memory "calibration"
  2534. size = 1;
  2535. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  2536. "0 0 0 0 0 0 0 0 o o o o o o o o";
  2537. ;
  2538. memory "signature"
  2539. size = 3;
  2540. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  2541. "x x x x x x a1 a0 o o o o o o o o";
  2542. ;
  2543. ;
  2544. #------------------------------------------------------------
  2545. # AT90CAN64
  2546. #------------------------------------------------------------
  2547. part
  2548. id = "c64";
  2549. desc = "AT90CAN64";
  2550. has_jtag = yes;
  2551. stk500_devcode = 0xB3;
  2552. # avr910_devcode = 0x43;
  2553. signature = 0x1e 0x96 0x81;
  2554. chip_erase_delay = 9000;
  2555. pagel = 0xD7;
  2556. bs2 = 0xA0;
  2557. reset = dedicated;
  2558. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  2559. "x x x x x x x x x x x x x x x x";
  2560. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  2561. "x x x x x x x x x x x x x x x x";
  2562. timeout = 200;
  2563. stabdelay = 100;
  2564. cmdexedelay = 25;
  2565. synchloops = 32;
  2566. bytedelay = 0;
  2567. pollindex = 3;
  2568. pollvalue = 0x53;
  2569. predelay = 1;
  2570. postdelay = 1;
  2571. pollmethod = 1;
  2572. pp_controlstack =
  2573. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  2574. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  2575. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  2576. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01;
  2577. hventerstabdelay = 100;
  2578. progmodedelay = 0;
  2579. latchcycles = 6;
  2580. togglevtg = 0;
  2581. poweroffdelay = 0;
  2582. resetdelayms = 0;
  2583. resetdelayus = 0;
  2584. hvleavestabdelay = 15;
  2585. chiperasepulsewidth = 0;
  2586. chiperasepolltimeout = 10;
  2587. programfusepulsewidth = 0;
  2588. programfusepolltimeout = 5;
  2589. programlockpulsewidth = 0;
  2590. programlockpolltimeout = 5;
  2591. idr = 0x31;
  2592. spmcr = 0x57;
  2593. rampz = 0x3b;
  2594. eecr = 0x3f;
  2595. allowfullpagebitstream = no;
  2596. memory "eeprom"
  2597. paged = no; /* leave this "no" */
  2598. page_size = 8; /* for parallel programming */
  2599. size = 2048;
  2600. min_write_delay = 9000;
  2601. max_write_delay = 9000;
  2602. readback_p1 = 0xff;
  2603. readback_p2 = 0xff;
  2604. read = " 1 0 1 0 0 0 0 0",
  2605. " 0 0 0 x x a10 a9 a8",
  2606. " a7 a6 a5 a4 a3 a2 a1 a0",
  2607. " o o o o o o o o";
  2608. write = " 1 1 0 0 0 0 0 0",
  2609. " 0 0 0 x x a10 a9 a8",
  2610. " a7 a6 a5 a4 a3 a2 a1 a0",
  2611. " i i i i i i i i";
  2612. loadpage_lo = " 1 1 0 0 0 0 0 1",
  2613. " 0 0 0 0 0 0 0 0",
  2614. " 0 0 0 0 0 a2 a1 a0",
  2615. " i i i i i i i i";
  2616. writepage = " 1 1 0 0 0 0 1 0",
  2617. " 0 0 x x x a10 a9 a8",
  2618. " a7 a6 a5 a4 a3 0 0 0",
  2619. " x x x x x x x x";
  2620. mode = 0x41;
  2621. delay = 20;
  2622. blocksize = 8;
  2623. readsize = 256;
  2624. ;
  2625. memory "flash"
  2626. paged = yes;
  2627. size = 65536;
  2628. page_size = 256;
  2629. num_pages = 256;
  2630. min_write_delay = 4500;
  2631. max_write_delay = 4500;
  2632. readback_p1 = 0xff;
  2633. readback_p2 = 0xff;
  2634. read_lo = " 0 0 1 0 0 0 0 0",
  2635. "a15 a14 a13 a12 a11 a10 a9 a8",
  2636. " a7 a6 a5 a4 a3 a2 a1 a0",
  2637. " o o o o o o o o";
  2638. read_hi = " 0 0 1 0 1 0 0 0",
  2639. "a15 a14 a13 a12 a11 a10 a9 a8",
  2640. " a7 a6 a5 a4 a3 a2 a1 a0",
  2641. " o o o o o o o o";
  2642. loadpage_lo = " 0 1 0 0 0 0 0 0",
  2643. " 0 0 0 x x x x x",
  2644. " x a6 a5 a4 a3 a2 a1 a0",
  2645. " i i i i i i i i";
  2646. loadpage_hi = " 0 1 0 0 1 0 0 0",
  2647. " 0 0 0 x x x x x",
  2648. " x a6 a5 a4 a3 a2 a1 a0",
  2649. " i i i i i i i i";
  2650. writepage = " 0 1 0 0 1 1 0 0",
  2651. "a15 a14 a13 a12 a11 a10 a9 a8",
  2652. " a7 x x x x x x x",
  2653. " x x x x x x x x";
  2654. mode = 0x41;
  2655. delay = 6;
  2656. blocksize = 256;
  2657. readsize = 256;
  2658. ;
  2659. memory "lfuse"
  2660. size = 1;
  2661. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  2662. "x x x x x x x x i i i i i i i i";
  2663. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  2664. "x x x x x x x x o o o o o o o o";
  2665. min_write_delay = 9000;
  2666. max_write_delay = 9000;
  2667. ;
  2668. memory "hfuse"
  2669. size = 1;
  2670. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  2671. "x x x x x x x x i i i i i i i i";
  2672. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  2673. "x x x x x x x x o o o o o o o o";
  2674. min_write_delay = 9000;
  2675. max_write_delay = 9000;
  2676. ;
  2677. memory "efuse"
  2678. size = 1;
  2679. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  2680. "x x x x x x x x x x x x i i i i";
  2681. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  2682. "x x x x x x x x o o o o o o o o";
  2683. min_write_delay = 9000;
  2684. max_write_delay = 9000;
  2685. ;
  2686. memory "lock"
  2687. size = 1;
  2688. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  2689. "x x x x x x x x x x o o o o o o";
  2690. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  2691. "x x x x x x x x 1 1 i i i i i i";
  2692. min_write_delay = 9000;
  2693. max_write_delay = 9000;
  2694. ;
  2695. memory "calibration"
  2696. size = 1;
  2697. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  2698. "0 0 0 0 0 0 0 0 o o o o o o o o";
  2699. ;
  2700. memory "signature"
  2701. size = 3;
  2702. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  2703. "x x x x x x a1 a0 o o o o o o o o";
  2704. ;
  2705. ;
  2706. #------------------------------------------------------------
  2707. # AT90CAN32
  2708. #------------------------------------------------------------
  2709. part
  2710. id = "c32";
  2711. desc = "AT90CAN32";
  2712. has_jtag = yes;
  2713. stk500_devcode = 0xB3;
  2714. # avr910_devcode = 0x43;
  2715. signature = 0x1e 0x95 0x81;
  2716. chip_erase_delay = 9000;
  2717. pagel = 0xD7;
  2718. bs2 = 0xA0;
  2719. reset = dedicated;
  2720. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  2721. "x x x x x x x x x x x x x x x x";
  2722. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  2723. "x x x x x x x x x x x x x x x x";
  2724. timeout = 200;
  2725. stabdelay = 100;
  2726. cmdexedelay = 25;
  2727. synchloops = 32;
  2728. bytedelay = 0;
  2729. pollindex = 3;
  2730. pollvalue = 0x53;
  2731. predelay = 1;
  2732. postdelay = 1;
  2733. pollmethod = 1;
  2734. pp_controlstack =
  2735. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  2736. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  2737. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  2738. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01;
  2739. hventerstabdelay = 100;
  2740. progmodedelay = 0;
  2741. latchcycles = 6;
  2742. togglevtg = 0;
  2743. poweroffdelay = 0;
  2744. resetdelayms = 0;
  2745. resetdelayus = 0;
  2746. hvleavestabdelay = 15;
  2747. chiperasepulsewidth = 0;
  2748. chiperasepolltimeout = 10;
  2749. programfusepulsewidth = 0;
  2750. programfusepolltimeout = 5;
  2751. programlockpulsewidth = 0;
  2752. programlockpolltimeout = 5;
  2753. idr = 0x31;
  2754. spmcr = 0x57;
  2755. rampz = 0x3b;
  2756. eecr = 0x3f;
  2757. allowfullpagebitstream = no;
  2758. memory "eeprom"
  2759. paged = no; /* leave this "no" */
  2760. page_size = 8; /* for parallel programming */
  2761. size = 1024;
  2762. min_write_delay = 9000;
  2763. max_write_delay = 9000;
  2764. readback_p1 = 0xff;
  2765. readback_p2 = 0xff;
  2766. read = " 1 0 1 0 0 0 0 0",
  2767. " 0 0 0 x x x a9 a8",
  2768. " a7 a6 a5 a4 a3 a2 a1 a0",
  2769. " o o o o o o o o";
  2770. write = " 1 1 0 0 0 0 0 0",
  2771. " 0 0 0 x x x a9 a8",
  2772. " a7 a6 a5 a4 a3 a2 a1 a0",
  2773. " i i i i i i i i";
  2774. loadpage_lo = " 1 1 0 0 0 0 0 1",
  2775. " 0 0 0 0 0 0 0 0",
  2776. " 0 0 0 0 0 a2 a1 a0",
  2777. " i i i i i i i i";
  2778. writepage = " 1 1 0 0 0 0 1 0",
  2779. " 0 0 x x x x a9 a8",
  2780. " a7 a6 a5 a4 a3 0 0 0",
  2781. " x x x x x x x x";
  2782. mode = 0x41;
  2783. delay = 20;
  2784. blocksize = 8;
  2785. readsize = 256;
  2786. ;
  2787. memory "flash"
  2788. paged = yes;
  2789. size = 32768;
  2790. page_size = 256;
  2791. num_pages = 128;
  2792. min_write_delay = 4500;
  2793. max_write_delay = 4500;
  2794. readback_p1 = 0xff;
  2795. readback_p2 = 0xff;
  2796. read_lo = " 0 0 1 0 0 0 0 0",
  2797. "a15 a14 a13 a12 a11 a10 a9 a8",
  2798. " a7 a6 a5 a4 a3 a2 a1 a0",
  2799. " o o o o o o o o";
  2800. read_hi = " 0 0 1 0 1 0 0 0",
  2801. "a15 a14 a13 a12 a11 a10 a9 a8",
  2802. " a7 a6 a5 a4 a3 a2 a1 a0",
  2803. " o o o o o o o o";
  2804. loadpage_lo = " 0 1 0 0 0 0 0 0",
  2805. " 0 0 0 x x x x x",
  2806. " x a6 a5 a4 a3 a2 a1 a0",
  2807. " i i i i i i i i";
  2808. loadpage_hi = " 0 1 0 0 1 0 0 0",
  2809. " 0 0 0 x x x x x",
  2810. " x a6 a5 a4 a3 a2 a1 a0",
  2811. " i i i i i i i i";
  2812. writepage = " 0 1 0 0 1 1 0 0",
  2813. "a15 a14 a13 a12 a11 a10 a9 a8",
  2814. " a7 x x x x x x x",
  2815. " x x x x x x x x";
  2816. mode = 0x41;
  2817. delay = 6;
  2818. blocksize = 256;
  2819. readsize = 256;
  2820. ;
  2821. memory "lfuse"
  2822. size = 1;
  2823. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  2824. "x x x x x x x x i i i i i i i i";
  2825. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  2826. "x x x x x x x x o o o o o o o o";
  2827. min_write_delay = 9000;
  2828. max_write_delay = 9000;
  2829. ;
  2830. memory "hfuse"
  2831. size = 1;
  2832. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  2833. "x x x x x x x x i i i i i i i i";
  2834. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  2835. "x x x x x x x x o o o o o o o o";
  2836. min_write_delay = 9000;
  2837. max_write_delay = 9000;
  2838. ;
  2839. memory "efuse"
  2840. size = 1;
  2841. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  2842. "x x x x x x x x x x x x i i i i";
  2843. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  2844. "x x x x x x x x o o o o o o o o";
  2845. min_write_delay = 9000;
  2846. max_write_delay = 9000;
  2847. ;
  2848. memory "lock"
  2849. size = 1;
  2850. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  2851. "x x x x x x x x x x o o o o o o";
  2852. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  2853. "x x x x x x x x 1 1 i i i i i i";
  2854. min_write_delay = 9000;
  2855. max_write_delay = 9000;
  2856. ;
  2857. memory "calibration"
  2858. size = 1;
  2859. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  2860. "0 0 0 0 0 0 0 0 o o o o o o o o";
  2861. ;
  2862. memory "signature"
  2863. size = 3;
  2864. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  2865. "x x x x x x a1 a0 o o o o o o o o";
  2866. ;
  2867. ;
  2868. #------------------------------------------------------------
  2869. # ATmega16
  2870. #------------------------------------------------------------
  2871. part
  2872. id = "m16";
  2873. desc = "ATMEGA16";
  2874. has_jtag = yes;
  2875. stk500_devcode = 0x82;
  2876. avr910_devcode = 0x74;
  2877. signature = 0x1e 0x94 0x03;
  2878. pagel = 0xd7;
  2879. bs2 = 0xa0;
  2880. chip_erase_delay = 9000;
  2881. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  2882. "x x x x x x x x x x x x x x x x";
  2883. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  2884. "x x x x x x x x x x x x x x x x";
  2885. timeout = 200;
  2886. stabdelay = 100;
  2887. cmdexedelay = 25;
  2888. synchloops = 32;
  2889. bytedelay = 0;
  2890. pollindex = 3;
  2891. pollvalue = 0x53;
  2892. predelay = 1;
  2893. postdelay = 1;
  2894. pollmethod = 0;
  2895. pp_controlstack =
  2896. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  2897. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  2898. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  2899. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  2900. hventerstabdelay = 100;
  2901. progmodedelay = 100;
  2902. latchcycles = 6;
  2903. togglevtg = 0;
  2904. poweroffdelay = 0;
  2905. resetdelayms = 0;
  2906. resetdelayus = 0;
  2907. hvleavestabdelay = 15;
  2908. resetdelay = 15;
  2909. chiperasepulsewidth = 0;
  2910. chiperasepolltimeout = 10;
  2911. programfusepulsewidth = 0;
  2912. programfusepolltimeout = 5;
  2913. programlockpulsewidth = 0;
  2914. programlockpolltimeout = 5;
  2915. idr = 0x31;
  2916. spmcr = 0x57;
  2917. allowfullpagebitstream = yes;
  2918. memory "eeprom"
  2919. paged = no; /* leave this "no" */
  2920. page_size = 4; /* for parallel programming */
  2921. size = 512;
  2922. min_write_delay = 9000;
  2923. max_write_delay = 9000;
  2924. readback_p1 = 0xff;
  2925. readback_p2 = 0xff;
  2926. read = " 1 0 1 0 0 0 0 0",
  2927. " 0 0 x x x x a9 a8",
  2928. " a7 a6 a5 a4 a3 a2 a1 a0",
  2929. " o o o o o o o o";
  2930. write = " 1 1 0 0 0 0 0 0",
  2931. " 0 0 x x x x a9 a8",
  2932. " a7 a6 a5 a4 a3 a2 a1 a0",
  2933. " i i i i i i i i";
  2934. loadpage_lo = " 1 1 0 0 0 0 0 1",
  2935. " 0 0 0 0 0 0 0 0",
  2936. " 0 0 0 0 0 0 a1 a0",
  2937. " i i i i i i i i";
  2938. writepage = " 1 1 0 0 0 0 1 0",
  2939. " 0 0 x x x x a9 a8",
  2940. " a7 a6 a5 a4 a3 a2 0 0",
  2941. " x x x x x x x x";
  2942. mode = 0x04;
  2943. delay = 10;
  2944. blocksize = 128;
  2945. readsize = 256;
  2946. ;
  2947. memory "flash"
  2948. paged = yes;
  2949. size = 16384;
  2950. page_size = 128;
  2951. num_pages = 128;
  2952. min_write_delay = 4500;
  2953. max_write_delay = 4500;
  2954. readback_p1 = 0xff;
  2955. readback_p2 = 0xff;
  2956. read_lo = " 0 0 1 0 0 0 0 0",
  2957. " 0 0 a13 a12 a11 a10 a9 a8",
  2958. " a7 a6 a5 a4 a3 a2 a1 a0",
  2959. " o o o o o o o o";
  2960. read_hi = " 0 0 1 0 1 0 0 0",
  2961. " 0 0 a13 a12 a11 a10 a9 a8",
  2962. " a7 a6 a5 a4 a3 a2 a1 a0",
  2963. " o o o o o o o o";
  2964. loadpage_lo = " 0 1 0 0 0 0 0 0",
  2965. " 0 0 x x x x x x",
  2966. " x x a5 a4 a3 a2 a1 a0",
  2967. " i i i i i i i i";
  2968. loadpage_hi = " 0 1 0 0 1 0 0 0",
  2969. " 0 0 x x x x x x",
  2970. " x x a5 a4 a3 a2 a1 a0",
  2971. " i i i i i i i i";
  2972. writepage = " 0 1 0 0 1 1 0 0",
  2973. " 0 0 a13 a12 a11 a10 a9 a8",
  2974. " a7 a6 x x x x x x",
  2975. " x x x x x x x x";
  2976. mode = 0x21;
  2977. delay = 6;
  2978. blocksize = 128;
  2979. readsize = 256;
  2980. ;
  2981. memory "lock"
  2982. size = 1;
  2983. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  2984. "x x x x x x x x x x o o o o o o";
  2985. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  2986. "x x x x x x x x 1 1 i i i i i i";
  2987. min_write_delay = 9000;
  2988. max_write_delay = 9000;
  2989. ;
  2990. memory "lfuse"
  2991. size = 1;
  2992. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  2993. "x x x x x x x x o o o o o o o o";
  2994. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  2995. "x x x x x x x x i i i i i i i i";
  2996. min_write_delay = 9000;
  2997. max_write_delay = 9000;
  2998. ;
  2999. memory "hfuse"
  3000. size = 1;
  3001. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  3002. "x x x x x x x x o o o o o o o o";
  3003. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  3004. "x x x x x x x x i i i i i i i i";
  3005. min_write_delay = 9000;
  3006. max_write_delay = 9000;
  3007. ;
  3008. memory "signature"
  3009. size = 3;
  3010. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  3011. "x x x x x x a1 a0 o o o o o o o o";
  3012. ;
  3013. memory "calibration"
  3014. size = 4;
  3015. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  3016. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  3017. ;
  3018. ;
  3019. #------------------------------------------------------------
  3020. # ATmega164P
  3021. #------------------------------------------------------------
  3022. # close to ATmega16
  3023. part
  3024. id = "m164p";
  3025. desc = "ATMEGA164P";
  3026. has_jtag = yes;
  3027. stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one
  3028. avr910_devcode = 0x74;
  3029. signature = 0x1e 0x94 0x0a;
  3030. pagel = 0xd7;
  3031. bs2 = 0xa0;
  3032. chip_erase_delay = 9000;
  3033. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  3034. "x x x x x x x x x x x x x x x x";
  3035. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  3036. "x x x x x x x x x x x x x x x x";
  3037. timeout = 200;
  3038. stabdelay = 100;
  3039. cmdexedelay = 25;
  3040. synchloops = 32;
  3041. bytedelay = 0;
  3042. pollindex = 3;
  3043. pollvalue = 0x53;
  3044. predelay = 1;
  3045. postdelay = 1;
  3046. pollmethod = 0;
  3047. pp_controlstack =
  3048. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  3049. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  3050. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  3051. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  3052. hventerstabdelay = 100;
  3053. progmodedelay = 0;
  3054. latchcycles = 5;
  3055. togglevtg = 1;
  3056. poweroffdelay = 15;
  3057. resetdelayms = 1;
  3058. resetdelayus = 0;
  3059. hvleavestabdelay = 15;
  3060. chiperasepulsewidth = 0;
  3061. chiperasepolltimeout = 10;
  3062. programfusepulsewidth = 0;
  3063. programfusepolltimeout = 5;
  3064. programlockpulsewidth = 0;
  3065. programlockpolltimeout = 5;
  3066. idr = 0x31;
  3067. spmcr = 0x57;
  3068. allowfullpagebitstream = no;
  3069. memory "eeprom"
  3070. paged = no; /* leave this "no" */
  3071. page_size = 4; /* for parallel programming */
  3072. size = 512;
  3073. min_write_delay = 9000;
  3074. max_write_delay = 9000;
  3075. readback_p1 = 0xff;
  3076. readback_p2 = 0xff;
  3077. read = " 1 0 1 0 0 0 0 0",
  3078. " 0 0 x x x x a9 a8",
  3079. " a7 a6 a5 a4 a3 a2 a1 a0",
  3080. " o o o o o o o o";
  3081. write = " 1 1 0 0 0 0 0 0",
  3082. " 0 0 x x x x a9 a8",
  3083. " a7 a6 a5 a4 a3 a2 a1 a0",
  3084. " i i i i i i i i";
  3085. loadpage_lo = " 1 1 0 0 0 0 0 1",
  3086. " 0 0 0 0 0 0 0 0",
  3087. " 0 0 0 0 0 0 a1 a0",
  3088. " i i i i i i i i";
  3089. writepage = " 1 1 0 0 0 0 1 0",
  3090. " 0 0 x x x x a9 a8",
  3091. " a7 a6 a5 a4 a3 a2 0 0",
  3092. " x x x x x x x x";
  3093. mode = 0x41;
  3094. delay = 10;
  3095. blocksize = 128;
  3096. readsize = 256;
  3097. ;
  3098. memory "flash"
  3099. paged = yes;
  3100. size = 16384;
  3101. page_size = 128;
  3102. num_pages = 128;
  3103. min_write_delay = 4500;
  3104. max_write_delay = 4500;
  3105. readback_p1 = 0xff;
  3106. readback_p2 = 0xff;
  3107. read_lo = " 0 0 1 0 0 0 0 0",
  3108. " 0 0 a13 a12 a11 a10 a9 a8",
  3109. " a7 a6 a5 a4 a3 a2 a1 a0",
  3110. " o o o o o o o o";
  3111. read_hi = " 0 0 1 0 1 0 0 0",
  3112. " 0 0 a13 a12 a11 a10 a9 a8",
  3113. " a7 a6 a5 a4 a3 a2 a1 a0",
  3114. " o o o o o o o o";
  3115. loadpage_lo = " 0 1 0 0 0 0 0 0",
  3116. " 0 0 x x x x x x",
  3117. " x x a5 a4 a3 a2 a1 a0",
  3118. " i i i i i i i i";
  3119. loadpage_hi = " 0 1 0 0 1 0 0 0",
  3120. " 0 0 x x x x x x",
  3121. " x x a5 a4 a3 a2 a1 a0",
  3122. " i i i i i i i i";
  3123. writepage = " 0 1 0 0 1 1 0 0",
  3124. " 0 0 a13 a12 a11 a10 a9 a8",
  3125. " a7 a6 x x x x x x",
  3126. " x x x x x x x x";
  3127. mode = 0x21;
  3128. delay = 6;
  3129. blocksize = 128;
  3130. readsize = 256;
  3131. ;
  3132. memory "lock"
  3133. size = 1;
  3134. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  3135. "x x x x x x x x x x o o o o o o";
  3136. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  3137. "x x x x x x x x 1 1 i i i i i i";
  3138. min_write_delay = 9000;
  3139. max_write_delay = 9000;
  3140. ;
  3141. memory "lfuse"
  3142. size = 1;
  3143. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  3144. "x x x x x x x x o o o o o o o o";
  3145. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  3146. "x x x x x x x x i i i i i i i i";
  3147. min_write_delay = 9000;
  3148. max_write_delay = 9000;
  3149. ;
  3150. memory "hfuse"
  3151. size = 1;
  3152. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  3153. "x x x x x x x x o o o o o o o o";
  3154. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  3155. "x x x x x x x x i i i i i i i i";
  3156. min_write_delay = 9000;
  3157. max_write_delay = 9000;
  3158. ;
  3159. memory "efuse"
  3160. size = 1;
  3161. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  3162. "x x x x x x x x o o o o o o o o";
  3163. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  3164. "x x x x x x x x 1 1 1 1 1 i i i";
  3165. min_write_delay = 9000;
  3166. max_write_delay = 9000;
  3167. ;
  3168. memory "signature"
  3169. size = 3;
  3170. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  3171. "x x x x x x a1 a0 o o o o o o o o";
  3172. ;
  3173. memory "calibration"
  3174. size = 1;
  3175. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  3176. "0 0 0 0 0 0 0 0 o o o o o o o o";
  3177. ;
  3178. ;
  3179. #------------------------------------------------------------
  3180. # ATmega324P
  3181. #------------------------------------------------------------
  3182. # similar to ATmega164P
  3183. part
  3184. id = "m324p";
  3185. desc = "ATMEGA324P";
  3186. has_jtag = yes;
  3187. stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one
  3188. avr910_devcode = 0x74;
  3189. signature = 0x1e 0x95 0x08;
  3190. pagel = 0xd7;
  3191. bs2 = 0xa0;
  3192. chip_erase_delay = 9000;
  3193. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  3194. "x x x x x x x x x x x x x x x x";
  3195. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  3196. "x x x x x x x x x x x x x x x x";
  3197. timeout = 200;
  3198. stabdelay = 100;
  3199. cmdexedelay = 25;
  3200. synchloops = 32;
  3201. bytedelay = 0;
  3202. pollindex = 3;
  3203. pollvalue = 0x53;
  3204. predelay = 1;
  3205. postdelay = 1;
  3206. pollmethod = 0;
  3207. pp_controlstack =
  3208. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  3209. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  3210. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  3211. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  3212. hventerstabdelay = 100;
  3213. progmodedelay = 0;
  3214. latchcycles = 5;
  3215. togglevtg = 1;
  3216. poweroffdelay = 15;
  3217. resetdelayms = 1;
  3218. resetdelayus = 0;
  3219. hvleavestabdelay = 15;
  3220. chiperasepulsewidth = 0;
  3221. chiperasepolltimeout = 10;
  3222. programfusepulsewidth = 0;
  3223. programfusepolltimeout = 5;
  3224. programlockpulsewidth = 0;
  3225. programlockpolltimeout = 5;
  3226. idr = 0x31;
  3227. spmcr = 0x57;
  3228. allowfullpagebitstream = no;
  3229. memory "eeprom"
  3230. paged = no; /* leave this "no" */
  3231. page_size = 4; /* for parallel programming */
  3232. size = 1024;
  3233. min_write_delay = 9000;
  3234. max_write_delay = 9000;
  3235. readback_p1 = 0xff;
  3236. readback_p2 = 0xff;
  3237. read = " 1 0 1 0 0 0 0 0",
  3238. " 0 0 x x x a10 a9 a8",
  3239. " a7 a6 a5 a4 a3 a2 a1 a0",
  3240. " o o o o o o o o";
  3241. write = " 1 1 0 0 0 0 0 0",
  3242. " 0 0 x x x a10 a9 a8",
  3243. " a7 a6 a5 a4 a3 a2 a1 a0",
  3244. " i i i i i i i i";
  3245. loadpage_lo = " 1 1 0 0 0 0 0 1",
  3246. " 0 0 0 0 0 0 0 0",
  3247. " 0 0 0 0 0 0 a1 a0",
  3248. " i i i i i i i i";
  3249. writepage = " 1 1 0 0 0 0 1 0",
  3250. " 0 0 x x x a10 a9 a8",
  3251. " a7 a6 a5 a4 a3 a2 0 0",
  3252. " x x x x x x x x";
  3253. mode = 0x41;
  3254. delay = 10;
  3255. blocksize = 128;
  3256. readsize = 256;
  3257. ;
  3258. memory "flash"
  3259. paged = yes;
  3260. size = 32768;
  3261. page_size = 128;
  3262. num_pages = 256;
  3263. min_write_delay = 4500;
  3264. max_write_delay = 4500;
  3265. readback_p1 = 0xff;
  3266. readback_p2 = 0xff;
  3267. read_lo = " 0 0 1 0 0 0 0 0",
  3268. " 0 a14 a13 a12 a11 a10 a9 a8",
  3269. " a7 a6 a5 a4 a3 a2 a1 a0",
  3270. " o o o o o o o o";
  3271. read_hi = " 0 0 1 0 1 0 0 0",
  3272. " 0 a14 a13 a12 a11 a10 a9 a8",
  3273. " a7 a6 a5 a4 a3 a2 a1 a0",
  3274. " o o o o o o o o";
  3275. loadpage_lo = " 0 1 0 0 0 0 0 0",
  3276. " 0 0 x x x x x x",
  3277. " x x a5 a4 a3 a2 a1 a0",
  3278. " i i i i i i i i";
  3279. loadpage_hi = " 0 1 0 0 1 0 0 0",
  3280. " 0 0 x x x x x x",
  3281. " x x a5 a4 a3 a2 a1 a0",
  3282. " i i i i i i i i";
  3283. writepage = " 0 1 0 0 1 1 0 0",
  3284. " 0 a14 a13 a12 a11 a10 a9 a8",
  3285. " a7 a6 x x x x x x",
  3286. " x x x x x x x x";
  3287. mode = 0x21;
  3288. delay = 6;
  3289. blocksize = 256;
  3290. readsize = 256;
  3291. ;
  3292. memory "lock"
  3293. size = 1;
  3294. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  3295. "x x x x x x x x x x o o o o o o";
  3296. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  3297. "x x x x x x x x 1 1 i i i i i i";
  3298. min_write_delay = 9000;
  3299. max_write_delay = 9000;
  3300. ;
  3301. memory "lfuse"
  3302. size = 1;
  3303. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  3304. "x x x x x x x x o o o o o o o o";
  3305. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  3306. "x x x x x x x x i i i i i i i i";
  3307. min_write_delay = 9000;
  3308. max_write_delay = 9000;
  3309. ;
  3310. memory "hfuse"
  3311. size = 1;
  3312. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  3313. "x x x x x x x x o o o o o o o o";
  3314. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  3315. "x x x x x x x x i i i i i i i i";
  3316. min_write_delay = 9000;
  3317. max_write_delay = 9000;
  3318. ;
  3319. memory "efuse"
  3320. size = 1;
  3321. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  3322. "x x x x x x x x o o o o o o o o";
  3323. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  3324. "x x x x x x x x 1 1 1 1 1 i i i";
  3325. min_write_delay = 9000;
  3326. max_write_delay = 9000;
  3327. ;
  3328. memory "signature"
  3329. size = 3;
  3330. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  3331. "x x x x x x a1 a0 o o o o o o o o";
  3332. ;
  3333. memory "calibration"
  3334. size = 1;
  3335. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  3336. "0 0 0 0 0 0 0 0 o o o o o o o o";
  3337. ;
  3338. ;
  3339. #------------------------------------------------------------
  3340. # ATmega644
  3341. #------------------------------------------------------------
  3342. # similar to ATmega164
  3343. part
  3344. id = "m644";
  3345. desc = "ATMEGA644";
  3346. has_jtag = yes;
  3347. stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one
  3348. avr910_devcode = 0x74;
  3349. signature = 0x1e 0x96 0x09;
  3350. pagel = 0xd7;
  3351. bs2 = 0xa0;
  3352. chip_erase_delay = 9000;
  3353. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  3354. "x x x x x x x x x x x x x x x x";
  3355. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  3356. "x x x x x x x x x x x x x x x x";
  3357. timeout = 200;
  3358. stabdelay = 100;
  3359. cmdexedelay = 25;
  3360. synchloops = 32;
  3361. bytedelay = 0;
  3362. pollindex = 3;
  3363. pollvalue = 0x53;
  3364. predelay = 1;
  3365. postdelay = 1;
  3366. pollmethod = 0;
  3367. pp_controlstack =
  3368. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  3369. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  3370. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  3371. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02;
  3372. hventerstabdelay = 100;
  3373. progmodedelay = 0;
  3374. latchcycles = 6;
  3375. togglevtg = 0;
  3376. poweroffdelay = 0;
  3377. resetdelayms = 0;
  3378. resetdelayus = 0;
  3379. hvleavestabdelay = 15;
  3380. chiperasepulsewidth = 0;
  3381. chiperasepolltimeout = 10;
  3382. programfusepulsewidth = 0;
  3383. programfusepolltimeout = 5;
  3384. programlockpulsewidth = 0;
  3385. programlockpolltimeout = 5;
  3386. idr = 0x31;
  3387. spmcr = 0x57;
  3388. allowfullpagebitstream = no;
  3389. memory "eeprom"
  3390. paged = no; /* leave this "no" */
  3391. page_size = 8; /* for parallel programming */
  3392. size = 2048;
  3393. min_write_delay = 9000;
  3394. max_write_delay = 9000;
  3395. readback_p1 = 0xff;
  3396. readback_p2 = 0xff;
  3397. read = " 1 0 1 0 0 0 0 0",
  3398. " 0 0 x x a11 a10 a9 a8",
  3399. " a7 a6 a5 a4 a3 a2 a1 a0",
  3400. " o o o o o o o o";
  3401. write = " 1 1 0 0 0 0 0 0",
  3402. " 0 0 x x a11 a10 a9 a8",
  3403. " a7 a6 a5 a4 a3 a2 a1 a0",
  3404. " i i i i i i i i";
  3405. loadpage_lo = " 1 1 0 0 0 0 0 1",
  3406. " 0 0 0 0 0 0 0 0",
  3407. " 0 0 0 0 0 a2 a1 a0",
  3408. " i i i i i i i i";
  3409. writepage = " 1 1 0 0 0 0 1 0",
  3410. " 0 0 x x a11 a10 a9 a8",
  3411. " a7 a6 a5 a4 a3 0 0 0",
  3412. " x x x x x x x x";
  3413. mode = 0x41;
  3414. delay = 10;
  3415. blocksize = 128;
  3416. readsize = 256;
  3417. ;
  3418. memory "flash"
  3419. paged = yes;
  3420. size = 65536;
  3421. page_size = 256;
  3422. num_pages = 256;
  3423. min_write_delay = 4500;
  3424. max_write_delay = 4500;
  3425. readback_p1 = 0xff;
  3426. readback_p2 = 0xff;
  3427. read_lo = " 0 0 1 0 0 0 0 0",
  3428. "a15 a14 a13 a12 a11 a10 a9 a8",
  3429. " a7 a6 a5 a4 a3 a2 a1 a0",
  3430. " o o o o o o o o";
  3431. read_hi = " 0 0 1 0 1 0 0 0",
  3432. "a15 a14 a13 a12 a11 a10 a9 a8",
  3433. " a7 a6 a5 a4 a3 a2 a1 a0",
  3434. " o o o o o o o o";
  3435. loadpage_lo = " 0 1 0 0 0 0 0 0",
  3436. " 0 0 x x x x x x",
  3437. " x a6 a5 a4 a3 a2 a1 a0",
  3438. " i i i i i i i i";
  3439. loadpage_hi = " 0 1 0 0 1 0 0 0",
  3440. " 0 0 x x x x x x",
  3441. " x a6 a5 a4 a3 a2 a1 a0",
  3442. " i i i i i i i i";
  3443. writepage = " 0 1 0 0 1 1 0 0",
  3444. "a15 a14 a13 a12 a11 a10 a9 a8",
  3445. " a7 x x x x x x x",
  3446. " x x x x x x x x";
  3447. mode = 0x21;
  3448. delay = 6;
  3449. blocksize = 256;
  3450. readsize = 256;
  3451. ;
  3452. memory "lock"
  3453. size = 1;
  3454. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  3455. "x x x x x x x x x x o o o o o o";
  3456. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  3457. "x x x x x x x x 1 1 i i i i i i";
  3458. min_write_delay = 9000;
  3459. max_write_delay = 9000;
  3460. ;
  3461. memory "lfuse"
  3462. size = 1;
  3463. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  3464. "x x x x x x x x o o o o o o o o";
  3465. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  3466. "x x x x x x x x i i i i i i i i";
  3467. min_write_delay = 9000;
  3468. max_write_delay = 9000;
  3469. ;
  3470. memory "hfuse"
  3471. size = 1;
  3472. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  3473. "x x x x x x x x o o o o o o o o";
  3474. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  3475. "x x x x x x x x i i i i i i i i";
  3476. min_write_delay = 9000;
  3477. max_write_delay = 9000;
  3478. ;
  3479. memory "efuse"
  3480. size = 1;
  3481. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  3482. "x x x x x x x x o o o o o o o o";
  3483. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  3484. "x x x x x x x x 1 1 1 1 1 i i i";
  3485. min_write_delay = 9000;
  3486. max_write_delay = 9000;
  3487. ;
  3488. memory "signature"
  3489. size = 3;
  3490. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  3491. "x x x x x x a1 a0 o o o o o o o o";
  3492. ;
  3493. memory "calibration"
  3494. size = 1;
  3495. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  3496. "0 0 0 0 0 0 0 0 o o o o o o o o";
  3497. ;
  3498. ;
  3499. #------------------------------------------------------------
  3500. # ATmega644P
  3501. #------------------------------------------------------------
  3502. # similar to ATmega164p
  3503. part
  3504. id = "m644p";
  3505. desc = "ATMEGA644P";
  3506. has_jtag = yes;
  3507. stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one
  3508. avr910_devcode = 0x74;
  3509. signature = 0x1e 0x96 0x0a;
  3510. pagel = 0xd7;
  3511. bs2 = 0xa0;
  3512. chip_erase_delay = 9000;
  3513. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  3514. "x x x x x x x x x x x x x x x x";
  3515. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  3516. "x x x x x x x x x x x x x x x x";
  3517. timeout = 200;
  3518. stabdelay = 100;
  3519. cmdexedelay = 25;
  3520. synchloops = 32;
  3521. bytedelay = 0;
  3522. pollindex = 3;
  3523. pollvalue = 0x53;
  3524. predelay = 1;
  3525. postdelay = 1;
  3526. pollmethod = 0;
  3527. pp_controlstack =
  3528. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  3529. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  3530. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  3531. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02;
  3532. hventerstabdelay = 100;
  3533. progmodedelay = 0;
  3534. latchcycles = 6;
  3535. togglevtg = 0;
  3536. poweroffdelay = 0;
  3537. resetdelayms = 0;
  3538. resetdelayus = 0;
  3539. hvleavestabdelay = 15;
  3540. chiperasepulsewidth = 0;
  3541. chiperasepolltimeout = 10;
  3542. programfusepulsewidth = 0;
  3543. programfusepolltimeout = 5;
  3544. programlockpulsewidth = 0;
  3545. programlockpolltimeout = 5;
  3546. idr = 0x31;
  3547. spmcr = 0x57;
  3548. allowfullpagebitstream = no;
  3549. memory "eeprom"
  3550. paged = no; /* leave this "no" */
  3551. page_size = 8; /* for parallel programming */
  3552. size = 2048;
  3553. min_write_delay = 9000;
  3554. max_write_delay = 9000;
  3555. readback_p1 = 0xff;
  3556. readback_p2 = 0xff;
  3557. read = " 1 0 1 0 0 0 0 0",
  3558. " 0 0 x x a11 a10 a9 a8",
  3559. " a7 a6 a5 a4 a3 a2 a1 a0",
  3560. " o o o o o o o o";
  3561. write = " 1 1 0 0 0 0 0 0",
  3562. " 0 0 x x a11 a10 a9 a8",
  3563. " a7 a6 a5 a4 a3 a2 a1 a0",
  3564. " i i i i i i i i";
  3565. loadpage_lo = " 1 1 0 0 0 0 0 1",
  3566. " 0 0 0 0 0 0 0 0",
  3567. " 0 0 0 0 0 a2 a1 a0",
  3568. " i i i i i i i i";
  3569. writepage = " 1 1 0 0 0 0 1 0",
  3570. " 0 0 x x a11 a10 a9 a8",
  3571. " a7 a6 a5 a4 a3 0 0 0",
  3572. " x x x x x x x x";
  3573. mode = 0x41;
  3574. delay = 10;
  3575. blocksize = 128;
  3576. readsize = 256;
  3577. ;
  3578. memory "flash"
  3579. paged = yes;
  3580. size = 65536;
  3581. page_size = 256;
  3582. num_pages = 256;
  3583. min_write_delay = 4500;
  3584. max_write_delay = 4500;
  3585. readback_p1 = 0xff;
  3586. readback_p2 = 0xff;
  3587. read_lo = " 0 0 1 0 0 0 0 0",
  3588. "a15 a14 a13 a12 a11 a10 a9 a8",
  3589. " a7 a6 a5 a4 a3 a2 a1 a0",
  3590. " o o o o o o o o";
  3591. read_hi = " 0 0 1 0 1 0 0 0",
  3592. "a15 a14 a13 a12 a11 a10 a9 a8",
  3593. " a7 a6 a5 a4 a3 a2 a1 a0",
  3594. " o o o o o o o o";
  3595. loadpage_lo = " 0 1 0 0 0 0 0 0",
  3596. " 0 0 x x x x x x",
  3597. " x a6 a5 a4 a3 a2 a1 a0",
  3598. " i i i i i i i i";
  3599. loadpage_hi = " 0 1 0 0 1 0 0 0",
  3600. " 0 0 x x x x x x",
  3601. " x a6 a5 a4 a3 a2 a1 a0",
  3602. " i i i i i i i i";
  3603. writepage = " 0 1 0 0 1 1 0 0",
  3604. "a15 a14 a13 a12 a11 a10 a9 a8",
  3605. " a7 x x x x x x x",
  3606. " x x x x x x x x";
  3607. mode = 0x21;
  3608. delay = 6;
  3609. blocksize = 256;
  3610. readsize = 256;
  3611. ;
  3612. memory "lock"
  3613. size = 1;
  3614. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  3615. "x x x x x x x x x x o o o o o o";
  3616. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  3617. "x x x x x x x x 1 1 i i i i i i";
  3618. min_write_delay = 9000;
  3619. max_write_delay = 9000;
  3620. ;
  3621. memory "lfuse"
  3622. size = 1;
  3623. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  3624. "x x x x x x x x o o o o o o o o";
  3625. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  3626. "x x x x x x x x i i i i i i i i";
  3627. min_write_delay = 9000;
  3628. max_write_delay = 9000;
  3629. ;
  3630. memory "hfuse"
  3631. size = 1;
  3632. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  3633. "x x x x x x x x o o o o o o o o";
  3634. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  3635. "x x x x x x x x i i i i i i i i";
  3636. min_write_delay = 9000;
  3637. max_write_delay = 9000;
  3638. ;
  3639. memory "efuse"
  3640. size = 1;
  3641. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  3642. "x x x x x x x x o o o o o o o o";
  3643. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  3644. "x x x x x x x x 1 1 1 1 1 i i i";
  3645. min_write_delay = 9000;
  3646. max_write_delay = 9000;
  3647. ;
  3648. memory "signature"
  3649. size = 3;
  3650. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  3651. "x x x x x x a1 a0 o o o o o o o o";
  3652. ;
  3653. memory "calibration"
  3654. size = 1;
  3655. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  3656. "0 0 0 0 0 0 0 0 o o o o o o o o";
  3657. ;
  3658. ;
  3659. #------------------------------------------------------------
  3660. # ATmega1284P
  3661. #------------------------------------------------------------
  3662. # similar to ATmega164p
  3663. part
  3664. id = "m1284p";
  3665. desc = "ATMEGA1284P";
  3666. has_jtag = yes;
  3667. stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one
  3668. avr910_devcode = 0x74;
  3669. signature = 0x1e 0x97 0x05;
  3670. pagel = 0xd7;
  3671. bs2 = 0xa0;
  3672. chip_erase_delay = 9000;
  3673. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  3674. "x x x x x x x x x x x x x x x x";
  3675. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  3676. "x x x x x x x x x x x x x x x x";
  3677. timeout = 200;
  3678. stabdelay = 100;
  3679. cmdexedelay = 25;
  3680. synchloops = 32;
  3681. bytedelay = 0;
  3682. pollindex = 3;
  3683. pollvalue = 0x53;
  3684. predelay = 1;
  3685. postdelay = 1;
  3686. pollmethod = 1;
  3687. pp_controlstack =
  3688. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  3689. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  3690. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  3691. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02;
  3692. hventerstabdelay = 100;
  3693. progmodedelay = 0;
  3694. latchcycles = 6;
  3695. togglevtg = 1;
  3696. poweroffdelay = 15;
  3697. resetdelayms = 1;
  3698. resetdelayus = 0;
  3699. hvleavestabdelay = 15;
  3700. chiperasepulsewidth = 0;
  3701. chiperasepolltimeout = 10;
  3702. programfusepulsewidth = 0;
  3703. programfusepolltimeout = 5;
  3704. programlockpulsewidth = 0;
  3705. programlockpolltimeout = 5;
  3706. idr = 0x31;
  3707. spmcr = 0x57;
  3708. allowfullpagebitstream = no;
  3709. memory "eeprom"
  3710. paged = no; /* leave this "no" */
  3711. page_size = 8; /* for parallel programming */
  3712. size = 4096;
  3713. min_write_delay = 9000;
  3714. max_write_delay = 9000;
  3715. readback_p1 = 0xff;
  3716. readback_p2 = 0xff;
  3717. read = " 1 0 1 0 0 0 0 0",
  3718. " 0 0 x x a11 a10 a9 a8",
  3719. " a7 a6 a5 a4 a3 a2 a1 a0",
  3720. " o o o o o o o o";
  3721. write = " 1 1 0 0 0 0 0 0",
  3722. " 0 0 x x a11 a10 a9 a8",
  3723. " a7 a6 a5 a4 a3 a2 a1 a0",
  3724. " i i i i i i i i";
  3725. loadpage_lo = " 1 1 0 0 0 0 0 1",
  3726. " 0 0 0 0 0 0 0 0",
  3727. " 0 0 0 0 0 a2 a1 a0",
  3728. " i i i i i i i i";
  3729. writepage = " 1 1 0 0 0 0 1 0",
  3730. " 0 0 x x a11 a10 a9 a8",
  3731. " a7 a6 a5 a4 a3 0 0 0",
  3732. " x x x x x x x x";
  3733. mode = 0x41;
  3734. delay = 10;
  3735. blocksize = 128;
  3736. readsize = 256;
  3737. ;
  3738. memory "flash"
  3739. paged = yes;
  3740. size = 131072;
  3741. page_size = 256;
  3742. num_pages = 512;
  3743. min_write_delay = 4500;
  3744. max_write_delay = 4500;
  3745. readback_p1 = 0xff;
  3746. readback_p2 = 0xff;
  3747. read_lo = " 0 0 1 0 0 0 0 0",
  3748. "a15 a14 a13 a12 a11 a10 a9 a8",
  3749. " a7 a6 a5 a4 a3 a2 a1 a0",
  3750. " o o o o o o o o";
  3751. read_hi = " 0 0 1 0 1 0 0 0",
  3752. "a15 a14 a13 a12 a11 a10 a9 a8",
  3753. " a7 a6 a5 a4 a3 a2 a1 a0",
  3754. " o o o o o o o o";
  3755. loadpage_lo = " 0 1 0 0 0 0 0 0",
  3756. " 0 0 x x x x x x",
  3757. " x a6 a5 a4 a3 a2 a1 a0",
  3758. " i i i i i i i i";
  3759. loadpage_hi = " 0 1 0 0 1 0 0 0",
  3760. " 0 0 x x x x x x",
  3761. " x a6 a5 a4 a3 a2 a1 a0",
  3762. " i i i i i i i i";
  3763. writepage = " 0 1 0 0 1 1 0 0",
  3764. "a15 a14 a13 a12 a11 a10 a9 a8",
  3765. " a7 x x x x x x x",
  3766. " x x x x x x x x";
  3767. mode = 0x41;
  3768. delay = 10;
  3769. blocksize = 256;
  3770. readsize = 256;
  3771. ;
  3772. memory "lock"
  3773. size = 1;
  3774. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  3775. "x x x x x x x x x x o o o o o o";
  3776. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  3777. "x x x x x x x x 1 1 i i i i i i";
  3778. min_write_delay = 9000;
  3779. max_write_delay = 9000;
  3780. ;
  3781. memory "lfuse"
  3782. size = 1;
  3783. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  3784. "x x x x x x x x o o o o o o o o";
  3785. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  3786. "x x x x x x x x i i i i i i i i";
  3787. min_write_delay = 9000;
  3788. max_write_delay = 9000;
  3789. ;
  3790. memory "hfuse"
  3791. size = 1;
  3792. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  3793. "x x x x x x x x o o o o o o o o";
  3794. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  3795. "x x x x x x x x i i i i i i i i";
  3796. min_write_delay = 9000;
  3797. max_write_delay = 9000;
  3798. ;
  3799. memory "efuse"
  3800. size = 1;
  3801. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  3802. "x x x x x x x x o o o o o o o o";
  3803. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  3804. "x x x x x x x x 1 1 1 1 1 i i i";
  3805. min_write_delay = 9000;
  3806. max_write_delay = 9000;
  3807. ;
  3808. memory "signature"
  3809. size = 3;
  3810. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  3811. "x x x x x x a1 a0 o o o o o o o o";
  3812. ;
  3813. memory "calibration"
  3814. size = 1;
  3815. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  3816. "0 0 0 0 0 0 0 0 o o o o o o o o";
  3817. ;
  3818. ;
  3819. #------------------------------------------------------------
  3820. # ATmega162
  3821. #------------------------------------------------------------
  3822. part
  3823. id = "m162";
  3824. desc = "ATMEGA162";
  3825. has_jtag = yes;
  3826. stk500_devcode = 0x83;
  3827. avr910_devcode = 0x63;
  3828. signature = 0x1e 0x94 0x04;
  3829. chip_erase_delay = 9000;
  3830. pagel = 0xd7;
  3831. bs2 = 0xa0;
  3832. idr = 0x04;
  3833. spmcr = 0x57;
  3834. allowfullpagebitstream = yes;
  3835. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  3836. "x x x x x x x x x x x x x x x x";
  3837. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  3838. "x x x x x x x x x x x x x x x x";
  3839. memory "flash"
  3840. paged = yes;
  3841. size = 16384;
  3842. page_size = 128;
  3843. num_pages = 128;
  3844. min_write_delay = 4500;
  3845. max_write_delay = 4500;
  3846. readback_p1 = 0xff;
  3847. readback_p2 = 0xff;
  3848. read_lo = " 0 0 1 0 0 0 0 0",
  3849. " 0 0 a13 a12 a11 a10 a9 a8",
  3850. " a7 a6 a5 a4 a3 a2 a1 a0",
  3851. " o o o o o o o o";
  3852. read_hi = " 0 0 1 0 1 0 0 0",
  3853. " 0 0 a13 a12 a11 a10 a9 a8",
  3854. " a7 a6 a5 a4 a3 a2 a1 a0",
  3855. " o o o o o o o o";
  3856. loadpage_lo = " 0 1 0 0 0 0 0 0",
  3857. " 0 0 x x x x x x",
  3858. " x x a5 a4 a3 a2 a1 a0",
  3859. " i i i i i i i i";
  3860. loadpage_hi = " 0 1 0 0 1 0 0 0",
  3861. " 0 0 x x x x x x",
  3862. " x x a5 a4 a3 a2 a1 a0",
  3863. " i i i i i i i i";
  3864. writepage = " 0 1 0 0 1 1 0 0",
  3865. " 0 0 a13 a12 a11 a10 a9 a8",
  3866. " a7 a6 x x x x x x",
  3867. " x x x x x x x x";
  3868. mode = 0x41;
  3869. delay = 10;
  3870. blocksize = 128;
  3871. readsize = 256;
  3872. ;
  3873. timeout = 200;
  3874. stabdelay = 100;
  3875. cmdexedelay = 25;
  3876. synchloops = 32;
  3877. bytedelay = 0;
  3878. pollindex = 3;
  3879. pollvalue = 0x53;
  3880. predelay = 1;
  3881. postdelay = 1;
  3882. pollmethod = 0;
  3883. pp_controlstack =
  3884. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  3885. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  3886. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  3887. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  3888. hventerstabdelay = 100;
  3889. progmodedelay = 0;
  3890. latchcycles = 6;
  3891. togglevtg = 0;
  3892. poweroffdelay = 0;
  3893. resetdelayms = 0;
  3894. resetdelayus = 0;
  3895. hvleavestabdelay = 15;
  3896. chiperasepulsewidth = 0;
  3897. chiperasepolltimeout = 10;
  3898. programfusepulsewidth = 0;
  3899. programfusepolltimeout = 5;
  3900. programlockpulsewidth = 0;
  3901. programlockpolltimeout = 5;
  3902. memory "eeprom"
  3903. paged = no; /* leave this "no" */
  3904. page_size = 4; /* for parallel programming */
  3905. size = 512;
  3906. min_write_delay = 9000;
  3907. max_write_delay = 9000;
  3908. readback_p1 = 0xff;
  3909. readback_p2 = 0xff;
  3910. read = " 1 0 1 0 0 0 0 0",
  3911. " 0 0 x x x x a9 a8",
  3912. " a7 a6 a5 a4 a3 a2 a1 a0",
  3913. " o o o o o o o o";
  3914. write = " 1 1 0 0 0 0 0 0",
  3915. " 0 0 x x x x a9 a8",
  3916. " a7 a6 a5 a4 a3 a2 a1 a0",
  3917. " i i i i i i i i";
  3918. loadpage_lo = " 1 1 0 0 0 0 0 1",
  3919. " 0 0 0 0 0 0 0 0",
  3920. " 0 0 0 0 0 0 a1 a0",
  3921. " i i i i i i i i";
  3922. writepage = " 1 1 0 0 0 0 1 0",
  3923. " 0 0 x x x x a9 a8",
  3924. " a7 a6 a5 a4 a3 a2 0 0",
  3925. " x x x x x x x x";
  3926. mode = 0x41;
  3927. delay = 20;
  3928. blocksize = 4;
  3929. readsize = 256;
  3930. ;
  3931. memory "lfuse"
  3932. size = 1;
  3933. min_write_delay = 16000;
  3934. max_write_delay = 16000;
  3935. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  3936. "x x x x x x x x o o o o o o o o";
  3937. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  3938. "x x x x x x x x i i i i i i i i";
  3939. ;
  3940. memory "hfuse"
  3941. size = 1;
  3942. min_write_delay = 16000;
  3943. max_write_delay = 16000;
  3944. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  3945. "x x x x x x x x o o o o o o o o";
  3946. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  3947. "x x x x x x x x i i i i i i i i";
  3948. ;
  3949. memory "efuse"
  3950. size = 1;
  3951. min_write_delay = 16000;
  3952. max_write_delay = 16000;
  3953. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  3954. "x x x x x x x x o o o o o o o o";
  3955. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  3956. "x x x x x x x x 1 1 1 1 1 i i i";
  3957. ;
  3958. memory "lock"
  3959. size = 1;
  3960. min_write_delay = 16000;
  3961. max_write_delay = 16000;
  3962. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  3963. "x x x x x x x x x x o o o o o o";
  3964. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  3965. "x x x x x x x x 1 1 i i i i i i";
  3966. ;
  3967. memory "signature"
  3968. size = 3;
  3969. read = "0 0 1 1 0 0 0 0 0 0 x x x x x x",
  3970. "x x x x x x a1 a0 o o o o o o o o";
  3971. ;
  3972. memory "calibration"
  3973. size = 1;
  3974. read = "0 0 1 1 1 0 0 0 0 0 x x x x x x",
  3975. "0 0 0 0 0 0 0 0 o o o o o o o o";
  3976. ;
  3977. ;
  3978. #------------------------------------------------------------
  3979. # ATmega163
  3980. #------------------------------------------------------------
  3981. part
  3982. id = "m163";
  3983. desc = "ATMEGA163";
  3984. stk500_devcode = 0x81;
  3985. avr910_devcode = 0x64;
  3986. signature = 0x1e 0x94 0x02;
  3987. chip_erase_delay = 32000;
  3988. pagel = 0xd7;
  3989. bs2 = 0xa0;
  3990. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  3991. "x x x x x x x x x x x x x x x x";
  3992. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  3993. "x x x x x x x x x x x x x x x x";
  3994. timeout = 200;
  3995. stabdelay = 100;
  3996. cmdexedelay = 25;
  3997. synchloops = 32;
  3998. bytedelay = 0;
  3999. pollindex = 3;
  4000. pollvalue = 0x53;
  4001. predelay = 1;
  4002. postdelay = 1;
  4003. pollmethod = 0;
  4004. pp_controlstack =
  4005. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  4006. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  4007. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  4008. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  4009. hventerstabdelay = 100;
  4010. progmodedelay = 0;
  4011. latchcycles = 0;
  4012. togglevtg = 0;
  4013. poweroffdelay = 0;
  4014. resetdelayms = 0;
  4015. resetdelayus = 0;
  4016. hvleavestabdelay = 15;
  4017. chiperasepulsewidth = 0;
  4018. chiperasepolltimeout = 30;
  4019. programfusepulsewidth = 0;
  4020. programfusepolltimeout = 2;
  4021. programlockpulsewidth = 0;
  4022. programlockpolltimeout = 2;
  4023. memory "eeprom"
  4024. size = 512;
  4025. min_write_delay = 4000;
  4026. max_write_delay = 4000;
  4027. readback_p1 = 0xff;
  4028. readback_p2 = 0xff;
  4029. read = " 1 0 1 0 0 0 0 0",
  4030. " x x x x x x x a8",
  4031. " a7 a6 a5 a4 a3 a2 a1 a0",
  4032. " o o o o o o o o";
  4033. write = " 1 1 0 0 0 0 0 0",
  4034. " x x x x x x x a8",
  4035. " a7 a6 a5 a4 a3 a2 a1 a0",
  4036. " i i i i i i i i";
  4037. mode = 0x41;
  4038. delay = 20;
  4039. blocksize = 4;
  4040. readsize = 256;
  4041. ;
  4042. memory "flash"
  4043. paged = yes;
  4044. size = 16384;
  4045. page_size = 128;
  4046. num_pages = 128;
  4047. min_write_delay = 16000;
  4048. max_write_delay = 16000;
  4049. readback_p1 = 0xff;
  4050. readback_p2 = 0xff;
  4051. read_lo = " 0 0 1 0 0 0 0 0",
  4052. " x x x a12 a11 a10 a9 a8",
  4053. " a7 a6 a5 a4 a3 a2 a1 a0",
  4054. " o o o o o o o o";
  4055. read_hi = " 0 0 1 0 1 0 0 0",
  4056. " x x x a12 a11 a10 a9 a8",
  4057. " a7 a6 a5 a4 a3 a2 a1 a0",
  4058. " o o o o o o o o";
  4059. loadpage_lo = " 0 1 0 0 0 0 0 0",
  4060. " x x x x x x x x",
  4061. " x x a5 a4 a3 a2 a1 a0",
  4062. " i i i i i i i i";
  4063. loadpage_hi = " 0 1 0 0 1 0 0 0",
  4064. " x x x x x x x x",
  4065. " x x a5 a4 a3 a2 a1 a0",
  4066. " i i i i i i i i";
  4067. writepage = " 0 1 0 0 1 1 0 0",
  4068. " x x x a12 a11 a10 a9 a8",
  4069. " a7 a6 x x x x x x",
  4070. " x x x x x x x x";
  4071. mode = 0x11;
  4072. delay = 20;
  4073. blocksize = 128;
  4074. readsize = 256;
  4075. ;
  4076. memory "lfuse"
  4077. size = 1;
  4078. min_write_delay = 2000;
  4079. max_write_delay = 2000;
  4080. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  4081. "x x x x x x x x o o x x o o o o";
  4082. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  4083. "x x x x x x x x i i 1 1 i i i i";
  4084. ;
  4085. memory "hfuse"
  4086. size = 1;
  4087. min_write_delay = 2000;
  4088. max_write_delay = 2000;
  4089. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  4090. "x x x x x x x x x x x x 1 o o o";
  4091. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  4092. "x x x x x x x x 1 1 1 1 1 i i i";
  4093. ;
  4094. memory "lock"
  4095. size = 1;
  4096. min_write_delay = 2000;
  4097. max_write_delay = 2000;
  4098. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  4099. "x x x x 0 x x x x x o o o o o o";
  4100. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  4101. "x x x x x x x x 1 1 i i i i i i";
  4102. ;
  4103. memory "signature"
  4104. size = 3;
  4105. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  4106. "x x x x x x a1 a0 o o o o o o o o";
  4107. ;
  4108. memory "calibration"
  4109. size = 1;
  4110. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  4111. "0 0 0 0 0 0 0 0 o o o o o o o o";
  4112. ;
  4113. ;
  4114. #------------------------------------------------------------
  4115. # ATmega169
  4116. #------------------------------------------------------------
  4117. part
  4118. id = "m169";
  4119. desc = "ATMEGA169";
  4120. has_jtag = yes;
  4121. stk500_devcode = 0x85;
  4122. avr910_devcode = 0x78;
  4123. signature = 0x1e 0x94 0x05;
  4124. chip_erase_delay = 9000;
  4125. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  4126. "x x x x x x x x x x x x x x x x";
  4127. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  4128. "x x x x x x x x x x x x x x x x";
  4129. timeout = 200;
  4130. stabdelay = 100;
  4131. cmdexedelay = 25;
  4132. synchloops = 32;
  4133. bytedelay = 0;
  4134. pollindex = 3;
  4135. pollvalue = 0x53;
  4136. predelay = 1;
  4137. postdelay = 1;
  4138. pollmethod = 1;
  4139. pp_controlstack =
  4140. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  4141. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  4142. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  4143. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  4144. hventerstabdelay = 100;
  4145. progmodedelay = 0;
  4146. latchcycles = 5;
  4147. togglevtg = 1;
  4148. poweroffdelay = 15;
  4149. resetdelayms = 1;
  4150. resetdelayus = 0;
  4151. hvleavestabdelay = 15;
  4152. chiperasepulsewidth = 0;
  4153. chiperasepolltimeout = 10;
  4154. programfusepulsewidth = 0;
  4155. programfusepolltimeout = 5;
  4156. programlockpulsewidth = 0;
  4157. programlockpolltimeout = 5;
  4158. idr = 0x31;
  4159. spmcr = 0x57;
  4160. memory "eeprom"
  4161. paged = no; /* leave this "no" */
  4162. page_size = 4; /* for parallel programming */
  4163. size = 512;
  4164. min_write_delay = 9000;
  4165. max_write_delay = 9000;
  4166. readback_p1 = 0xff;
  4167. readback_p2 = 0xff;
  4168. read = " 1 0 1 0 0 0 0 0",
  4169. " x x x x x x x a8",
  4170. " a7 a6 a5 a4 a3 a2 a1 a0",
  4171. " o o o o o o o o";
  4172. write = " 1 1 0 0 0 0 0 0",
  4173. " x x x x x x x a8",
  4174. " a7 a6 a5 a4 a3 a2 a1 a0",
  4175. " i i i i i i i i";
  4176. loadpage_lo = " 1 1 0 0 0 0 0 1",
  4177. " 0 0 0 0 0 0 0 0",
  4178. " 0 0 0 0 0 0 a1 a0",
  4179. " i i i i i i i i";
  4180. writepage = " 1 1 0 0 0 0 1 0",
  4181. " 0 0 x x x x x a8",
  4182. " a7 a6 a5 a4 a3 a2 0 0",
  4183. " x x x x x x x x";
  4184. mode = 0x41;
  4185. delay = 20;
  4186. blocksize = 4;
  4187. readsize = 256;
  4188. ;
  4189. memory "flash"
  4190. paged = yes;
  4191. size = 16384;
  4192. page_size = 128;
  4193. num_pages = 128;
  4194. min_write_delay = 4500;
  4195. max_write_delay = 4500;
  4196. readback_p1 = 0xff;
  4197. readback_p2 = 0xff;
  4198. read_lo = " 0 0 1 0 0 0 0 0",
  4199. " x x x a12 a11 a10 a9 a8",
  4200. " a7 a6 a5 a4 a3 a2 a1 a0",
  4201. " o o o o o o o o";
  4202. read_hi = " 0 0 1 0 1 0 0 0",
  4203. " x x x a12 a11 a10 a9 a8",
  4204. " a7 a6 a5 a4 a3 a2 a1 a0",
  4205. " o o o o o o o o";
  4206. loadpage_lo = " 0 1 0 0 0 0 0 0",
  4207. " x x x x x x x x",
  4208. " x x a5 a4 a3 a2 a1 a0",
  4209. " i i i i i i i i";
  4210. loadpage_hi = " 0 1 0 0 1 0 0 0",
  4211. " x x x x x x x x",
  4212. " x x a5 a4 a3 a2 a1 a0",
  4213. " i i i i i i i i";
  4214. writepage = " 0 1 0 0 1 1 0 0",
  4215. " x x x a12 a11 a10 a9 a8",
  4216. " a7 a6 x x x x x x",
  4217. " x x x x x x x x";
  4218. mode = 0x41;
  4219. delay = 6;
  4220. blocksize = 128;
  4221. readsize = 256;
  4222. ;
  4223. memory "lfuse"
  4224. size = 1;
  4225. min_write_delay = 2000;
  4226. max_write_delay = 2000;
  4227. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  4228. "x x x x x x x x o o o o o o o o";
  4229. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  4230. "x x x x x x x x i i i i i i i i";
  4231. ;
  4232. memory "hfuse"
  4233. size = 1;
  4234. min_write_delay = 2000;
  4235. max_write_delay = 2000;
  4236. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  4237. "x x x x x x x x o o o o o o o o";
  4238. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  4239. "x x x x x x x x i i i i i i i i";
  4240. ;
  4241. memory "efuse"
  4242. size = 1;
  4243. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  4244. "x x x x x x x x x x x x i i i i";
  4245. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  4246. "x x x x x x x x o o o o o o o o";
  4247. ;
  4248. memory "lock"
  4249. size = 1;
  4250. min_write_delay = 2000;
  4251. max_write_delay = 2000;
  4252. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  4253. "x x x x x x x x x x o o o o o o";
  4254. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  4255. "x x x x x x x x 1 1 i i i i i i";
  4256. ;
  4257. memory "signature"
  4258. size = 3;
  4259. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  4260. "x x x x x x a1 a0 o o o o o o o o";
  4261. ;
  4262. memory "calibration"
  4263. size = 1;
  4264. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  4265. "0 0 0 0 0 0 0 0 o o o o o o o o";
  4266. ;
  4267. ;
  4268. #------------------------------------------------------------
  4269. # ATmega329
  4270. #------------------------------------------------------------
  4271. part
  4272. id = "m329";
  4273. desc = "ATMEGA329";
  4274. has_jtag = yes;
  4275. # stk500_devcode = 0x85; # no STK500 support, only STK500v2
  4276. # avr910_devcode = 0x?; # try the ATmega169 one:
  4277. avr910_devcode = 0x75;
  4278. signature = 0x1e 0x95 0x03;
  4279. chip_erase_delay = 9000;
  4280. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  4281. "x x x x x x x x x x x x x x x x";
  4282. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  4283. "x x x x x x x x x x x x x x x x";
  4284. timeout = 200;
  4285. stabdelay = 100;
  4286. cmdexedelay = 25;
  4287. synchloops = 32;
  4288. bytedelay = 0;
  4289. pollindex = 3;
  4290. pollvalue = 0x53;
  4291. predelay = 1;
  4292. postdelay = 1;
  4293. pollmethod = 1;
  4294. pp_controlstack =
  4295. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  4296. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  4297. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  4298. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  4299. hventerstabdelay = 100;
  4300. progmodedelay = 0;
  4301. latchcycles = 5;
  4302. togglevtg = 1;
  4303. poweroffdelay = 15;
  4304. resetdelayms = 1;
  4305. resetdelayus = 0;
  4306. hvleavestabdelay = 15;
  4307. chiperasepulsewidth = 0;
  4308. chiperasepolltimeout = 10;
  4309. programfusepulsewidth = 0;
  4310. programfusepolltimeout = 5;
  4311. programlockpulsewidth = 0;
  4312. programlockpolltimeout = 5;
  4313. idr = 0x31;
  4314. spmcr = 0x57;
  4315. memory "eeprom"
  4316. paged = no; /* leave this "no" */
  4317. page_size = 4; /* for parallel programming */
  4318. size = 1024;
  4319. min_write_delay = 9000;
  4320. max_write_delay = 9000;
  4321. readback_p1 = 0xff;
  4322. readback_p2 = 0xff;
  4323. read = " 1 0 1 0 0 0 0 0",
  4324. " x x x x x x a9 a8",
  4325. " a7 a6 a5 a4 a3 a2 a1 a0",
  4326. " o o o o o o o o";
  4327. write = " 1 1 0 0 0 0 0 0",
  4328. " x x x x x x a9 a8",
  4329. " a7 a6 a5 a4 a3 a2 a1 a0",
  4330. " i i i i i i i i";
  4331. loadpage_lo = " 1 1 0 0 0 0 0 1",
  4332. " 0 0 0 0 0 0 0 0",
  4333. " 0 0 0 0 0 0 a1 a0",
  4334. " i i i i i i i i";
  4335. writepage = " 1 1 0 0 0 0 1 0",
  4336. " 0 0 x x x x a9 a8",
  4337. " a7 a6 a5 a4 a3 a2 0 0",
  4338. " x x x x x x x x";
  4339. mode = 0x41;
  4340. delay = 20;
  4341. blocksize = 8;
  4342. readsize = 256;
  4343. ;
  4344. memory "flash"
  4345. paged = yes;
  4346. size = 32768;
  4347. page_size = 128;
  4348. num_pages = 256;
  4349. min_write_delay = 4500;
  4350. max_write_delay = 4500;
  4351. readback_p1 = 0xff;
  4352. readback_p2 = 0xff;
  4353. read_lo = " 0 0 1 0 0 0 0 0",
  4354. " x a14 a13 a12 a11 a10 a9 a8",
  4355. " a7 a6 a5 a4 a3 a2 a1 a0",
  4356. " o o o o o o o o";
  4357. read_hi = " 0 0 1 0 1 0 0 0",
  4358. " x a14 a13 a12 a11 a10 a9 a8",
  4359. " a7 a6 a5 a4 a3 a2 a1 a0",
  4360. " o o o o o o o o";
  4361. loadpage_lo = " 0 1 0 0 0 0 0 0",
  4362. " x x x x x x x x",
  4363. " x x a5 a4 a3 a2 a1 a0",
  4364. " i i i i i i i i";
  4365. loadpage_hi = " 0 1 0 0 1 0 0 0",
  4366. " x x x x x x x x",
  4367. " x x a5 a4 a3 a2 a1 a0",
  4368. " i i i i i i i i";
  4369. writepage = " 0 1 0 0 1 1 0 0",
  4370. " x x x a12 a11 a10 a9 a8",
  4371. " a7 a6 x x x x x x",
  4372. " x x x x x x x x";
  4373. mode = 0x41;
  4374. delay = 6;
  4375. blocksize = 256;
  4376. readsize = 256;
  4377. ;
  4378. memory "lfuse"
  4379. size = 1;
  4380. min_write_delay = 4500;
  4381. max_write_delay = 4500;
  4382. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  4383. "x x x x x x x x o o o o o o o o";
  4384. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  4385. "x x x x x x x x i i i i i i i i";
  4386. ;
  4387. memory "hfuse"
  4388. size = 1;
  4389. min_write_delay = 4500;
  4390. max_write_delay = 4500;
  4391. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  4392. "x x x x x x x x o o o o o o o o";
  4393. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  4394. "x x x x x x x x i i i i i i i i";
  4395. ;
  4396. memory "efuse"
  4397. size = 1;
  4398. min_write_delay = 4500;
  4399. max_write_delay = 4500;
  4400. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  4401. "x x x x x x x x o o o o o o o o";
  4402. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  4403. "x x x x x x x x x x x x x i i i";
  4404. ;
  4405. memory "lock"
  4406. size = 1;
  4407. min_write_delay = 4500;
  4408. max_write_delay = 4500;
  4409. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  4410. "x x x x x x x x x x o o o o o o";
  4411. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  4412. "x x x x x x x x 1 1 i i i i i i";
  4413. ;
  4414. memory "signature"
  4415. size = 3;
  4416. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  4417. "x x x x x x a1 a0 o o o o o o o o";
  4418. ;
  4419. memory "calibration"
  4420. size = 1;
  4421. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  4422. "0 0 0 0 0 0 0 0 o o o o o o o o";
  4423. ;
  4424. ;
  4425. #------------------------------------------------------------
  4426. # ATmega329P
  4427. #------------------------------------------------------------
  4428. # Identical to ATmega329 except of the signature
  4429. part
  4430. id = "m329p";
  4431. desc = "ATMEGA329P";
  4432. has_jtag = yes;
  4433. # stk500_devcode = 0x85; # no STK500 support, only STK500v2
  4434. # avr910_devcode = 0x?; # try the ATmega169 one:
  4435. avr910_devcode = 0x75;
  4436. signature = 0x1e 0x95 0x0b;
  4437. chip_erase_delay = 9000;
  4438. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  4439. "x x x x x x x x x x x x x x x x";
  4440. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  4441. "x x x x x x x x x x x x x x x x";
  4442. timeout = 200;
  4443. stabdelay = 100;
  4444. cmdexedelay = 25;
  4445. synchloops = 32;
  4446. bytedelay = 0;
  4447. pollindex = 3;
  4448. pollvalue = 0x53;
  4449. predelay = 1;
  4450. postdelay = 1;
  4451. pollmethod = 1;
  4452. pp_controlstack =
  4453. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  4454. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  4455. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  4456. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  4457. hventerstabdelay = 100;
  4458. progmodedelay = 0;
  4459. latchcycles = 5;
  4460. togglevtg = 1;
  4461. poweroffdelay = 15;
  4462. resetdelayms = 1;
  4463. resetdelayus = 0;
  4464. hvleavestabdelay = 15;
  4465. chiperasepulsewidth = 0;
  4466. chiperasepolltimeout = 10;
  4467. programfusepulsewidth = 0;
  4468. programfusepolltimeout = 5;
  4469. programlockpulsewidth = 0;
  4470. programlockpolltimeout = 5;
  4471. idr = 0x31;
  4472. spmcr = 0x57;
  4473. memory "eeprom"
  4474. paged = no; /* leave this "no" */
  4475. page_size = 4; /* for parallel programming */
  4476. size = 1024;
  4477. min_write_delay = 9000;
  4478. max_write_delay = 9000;
  4479. readback_p1 = 0xff;
  4480. readback_p2 = 0xff;
  4481. read = " 1 0 1 0 0 0 0 0",
  4482. " x x x x x x a9 a8",
  4483. " a7 a6 a5 a4 a3 a2 a1 a0",
  4484. " o o o o o o o o";
  4485. write = " 1 1 0 0 0 0 0 0",
  4486. " x x x x x x a9 a8",
  4487. " a7 a6 a5 a4 a3 a2 a1 a0",
  4488. " i i i i i i i i";
  4489. loadpage_lo = " 1 1 0 0 0 0 0 1",
  4490. " 0 0 0 0 0 0 0 0",
  4491. " 0 0 0 0 0 0 a1 a0",
  4492. " i i i i i i i i";
  4493. writepage = " 1 1 0 0 0 0 1 0",
  4494. " 0 0 x x x x a9 a8",
  4495. " a7 a6 a5 a4 a3 a2 0 0",
  4496. " x x x x x x x x";
  4497. mode = 0x41;
  4498. delay = 20;
  4499. blocksize = 8;
  4500. readsize = 256;
  4501. ;
  4502. memory "flash"
  4503. paged = yes;
  4504. size = 32768;
  4505. page_size = 128;
  4506. num_pages = 256;
  4507. min_write_delay = 4500;
  4508. max_write_delay = 4500;
  4509. readback_p1 = 0xff;
  4510. readback_p2 = 0xff;
  4511. read_lo = " 0 0 1 0 0 0 0 0",
  4512. " x a14 a13 a12 a11 a10 a9 a8",
  4513. " a7 a6 a5 a4 a3 a2 a1 a0",
  4514. " o o o o o o o o";
  4515. read_hi = " 0 0 1 0 1 0 0 0",
  4516. " x a14 a13 a12 a11 a10 a9 a8",
  4517. " a7 a6 a5 a4 a3 a2 a1 a0",
  4518. " o o o o o o o o";
  4519. loadpage_lo = " 0 1 0 0 0 0 0 0",
  4520. " x x x x x x x x",
  4521. " x x a5 a4 a3 a2 a1 a0",
  4522. " i i i i i i i i";
  4523. loadpage_hi = " 0 1 0 0 1 0 0 0",
  4524. " x x x x x x x x",
  4525. " x x a5 a4 a3 a2 a1 a0",
  4526. " i i i i i i i i";
  4527. writepage = " 0 1 0 0 1 1 0 0",
  4528. " x x x a12 a11 a10 a9 a8",
  4529. " a7 a6 x x x x x x",
  4530. " x x x x x x x x";
  4531. mode = 0x41;
  4532. delay = 6;
  4533. blocksize = 256;
  4534. readsize = 256;
  4535. ;
  4536. memory "lfuse"
  4537. size = 1;
  4538. min_write_delay = 4500;
  4539. max_write_delay = 4500;
  4540. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  4541. "x x x x x x x x o o o o o o o o";
  4542. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  4543. "x x x x x x x x i i i i i i i i";
  4544. ;
  4545. memory "hfuse"
  4546. size = 1;
  4547. min_write_delay = 4500;
  4548. max_write_delay = 4500;
  4549. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  4550. "x x x x x x x x o o o o o o o o";
  4551. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  4552. "x x x x x x x x i i i i i i i i";
  4553. ;
  4554. memory "efuse"
  4555. size = 1;
  4556. min_write_delay = 4500;
  4557. max_write_delay = 4500;
  4558. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  4559. "x x x x x x x x o o o o o o o o";
  4560. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  4561. "x x x x x x x x x x x x x i i i";
  4562. ;
  4563. memory "lock"
  4564. size = 1;
  4565. min_write_delay = 4500;
  4566. max_write_delay = 4500;
  4567. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  4568. "x x x x x x x x x x o o o o o o";
  4569. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  4570. "x x x x x x x x 1 1 i i i i i i";
  4571. ;
  4572. memory "signature"
  4573. size = 3;
  4574. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  4575. "x x x x x x a1 a0 o o o o o o o o";
  4576. ;
  4577. memory "calibration"
  4578. size = 1;
  4579. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  4580. "0 0 0 0 0 0 0 0 o o o o o o o o";
  4581. ;
  4582. ;
  4583. #------------------------------------------------------------
  4584. # ATmega3290
  4585. #------------------------------------------------------------
  4586. # identical to ATmega329
  4587. part
  4588. id = "m3290";
  4589. desc = "ATMEGA3290";
  4590. has_jtag = yes;
  4591. # stk500_devcode = 0x85; # no STK500 support, only STK500v2
  4592. # avr910_devcode = 0x?; # try the ATmega169 one:
  4593. avr910_devcode = 0x75;
  4594. signature = 0x1e 0x95 0x04;
  4595. chip_erase_delay = 9000;
  4596. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  4597. "x x x x x x x x x x x x x x x x";
  4598. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  4599. "x x x x x x x x x x x x x x x x";
  4600. timeout = 200;
  4601. stabdelay = 100;
  4602. cmdexedelay = 25;
  4603. synchloops = 32;
  4604. bytedelay = 0;
  4605. pollindex = 3;
  4606. pollvalue = 0x53;
  4607. predelay = 1;
  4608. postdelay = 1;
  4609. pollmethod = 1;
  4610. pp_controlstack =
  4611. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  4612. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  4613. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  4614. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  4615. hventerstabdelay = 100;
  4616. progmodedelay = 0;
  4617. latchcycles = 5;
  4618. togglevtg = 1;
  4619. poweroffdelay = 15;
  4620. resetdelayms = 1;
  4621. resetdelayus = 0;
  4622. hvleavestabdelay = 15;
  4623. chiperasepulsewidth = 0;
  4624. chiperasepolltimeout = 10;
  4625. programfusepulsewidth = 0;
  4626. programfusepolltimeout = 5;
  4627. programlockpulsewidth = 0;
  4628. programlockpolltimeout = 5;
  4629. idr = 0x31;
  4630. spmcr = 0x57;
  4631. memory "eeprom"
  4632. paged = no; /* leave this "no" */
  4633. page_size = 4; /* for parallel programming */
  4634. size = 1024;
  4635. min_write_delay = 9000;
  4636. max_write_delay = 9000;
  4637. readback_p1 = 0xff;
  4638. readback_p2 = 0xff;
  4639. read = " 1 0 1 0 0 0 0 0",
  4640. " x x x x x x a9 a8",
  4641. " a7 a6 a5 a4 a3 a2 a1 a0",
  4642. " o o o o o o o o";
  4643. write = " 1 1 0 0 0 0 0 0",
  4644. " x x x x x x a9 a8",
  4645. " a7 a6 a5 a4 a3 a2 a1 a0",
  4646. " i i i i i i i i";
  4647. loadpage_lo = " 1 1 0 0 0 0 0 1",
  4648. " 0 0 0 0 0 0 0 0",
  4649. " 0 0 0 0 0 0 a1 a0",
  4650. " i i i i i i i i";
  4651. writepage = " 1 1 0 0 0 0 1 0",
  4652. " 0 0 x x x x a9 a8",
  4653. " a7 a6 a5 a4 a3 a3 0 0",
  4654. " x x x x x x x x";
  4655. mode = 0x41;
  4656. delay = 20;
  4657. blocksize = 8;
  4658. readsize = 256;
  4659. ;
  4660. memory "flash"
  4661. paged = yes;
  4662. size = 32768;
  4663. page_size = 128;
  4664. num_pages = 256;
  4665. min_write_delay = 4500;
  4666. max_write_delay = 4500;
  4667. readback_p1 = 0xff;
  4668. readback_p2 = 0xff;
  4669. read_lo = " 0 0 1 0 0 0 0 0",
  4670. " x a14 a13 a12 a11 a10 a9 a8",
  4671. " a7 a6 a5 a4 a3 a2 a1 a0",
  4672. " o o o o o o o o";
  4673. read_hi = " 0 0 1 0 1 0 0 0",
  4674. " x a14 a13 a12 a11 a10 a9 a8",
  4675. " a7 a6 a5 a4 a3 a2 a1 a0",
  4676. " o o o o o o o o";
  4677. loadpage_lo = " 0 1 0 0 0 0 0 0",
  4678. " x x x x x x x x",
  4679. " x x a5 a4 a3 a2 a1 a0",
  4680. " i i i i i i i i";
  4681. loadpage_hi = " 0 1 0 0 1 0 0 0",
  4682. " x x x x x x x x",
  4683. " x x a5 a4 a3 a2 a1 a0",
  4684. " i i i i i i i i";
  4685. writepage = " 0 1 0 0 1 1 0 0",
  4686. " x x x a12 a11 a10 a9 a8",
  4687. " a7 a6 x x x x x x",
  4688. " x x x x x x x x";
  4689. mode = 0x41;
  4690. delay = 6;
  4691. blocksize = 256;
  4692. readsize = 256;
  4693. ;
  4694. memory "lfuse"
  4695. size = 1;
  4696. min_write_delay = 4500;
  4697. max_write_delay = 4500;
  4698. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  4699. "x x x x x x x x o o o o o o o o";
  4700. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  4701. "x x x x x x x x i i i i i i i i";
  4702. ;
  4703. memory "hfuse"
  4704. size = 1;
  4705. min_write_delay = 4500;
  4706. max_write_delay = 4500;
  4707. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  4708. "x x x x x x x x o o o o o o o o";
  4709. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  4710. "x x x x x x x x i i i i i i i i";
  4711. ;
  4712. memory "efuse"
  4713. size = 1;
  4714. min_write_delay = 4500;
  4715. max_write_delay = 4500;
  4716. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  4717. "x x x x x x x x o o o o o o o o";
  4718. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  4719. "x x x x x x x x x x x x x i i i";
  4720. ;
  4721. memory "lock"
  4722. size = 1;
  4723. min_write_delay = 4500;
  4724. max_write_delay = 4500;
  4725. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  4726. "x x x x x x x x x x o o o o o o";
  4727. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  4728. "x x x x x x x x 1 1 i i i i i i";
  4729. ;
  4730. memory "signature"
  4731. size = 3;
  4732. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  4733. "x x x x x x a1 a0 o o o o o o o o";
  4734. ;
  4735. memory "calibration"
  4736. size = 1;
  4737. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  4738. "0 0 0 0 0 0 0 0 o o o o o o o o";
  4739. ;
  4740. ;
  4741. #------------------------------------------------------------
  4742. # ATmega3290P
  4743. #------------------------------------------------------------
  4744. # identical to ATmega3290 except of the signature
  4745. part
  4746. id = "m3290p";
  4747. desc = "ATMEGA3290P";
  4748. has_jtag = yes;
  4749. # stk500_devcode = 0x85; # no STK500 support, only STK500v2
  4750. # avr910_devcode = 0x?; # try the ATmega169 one:
  4751. avr910_devcode = 0x75;
  4752. signature = 0x1e 0x95 0x0c;
  4753. chip_erase_delay = 9000;
  4754. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  4755. "x x x x x x x x x x x x x x x x";
  4756. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  4757. "x x x x x x x x x x x x x x x x";
  4758. timeout = 200;
  4759. stabdelay = 100;
  4760. cmdexedelay = 25;
  4761. synchloops = 32;
  4762. bytedelay = 0;
  4763. pollindex = 3;
  4764. pollvalue = 0x53;
  4765. predelay = 1;
  4766. postdelay = 1;
  4767. pollmethod = 1;
  4768. pp_controlstack =
  4769. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  4770. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  4771. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  4772. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  4773. hventerstabdelay = 100;
  4774. progmodedelay = 0;
  4775. latchcycles = 5;
  4776. togglevtg = 1;
  4777. poweroffdelay = 15;
  4778. resetdelayms = 1;
  4779. resetdelayus = 0;
  4780. hvleavestabdelay = 15;
  4781. chiperasepulsewidth = 0;
  4782. chiperasepolltimeout = 10;
  4783. programfusepulsewidth = 0;
  4784. programfusepolltimeout = 5;
  4785. programlockpulsewidth = 0;
  4786. programlockpolltimeout = 5;
  4787. idr = 0x31;
  4788. spmcr = 0x57;
  4789. memory "eeprom"
  4790. paged = no; /* leave this "no" */
  4791. page_size = 4; /* for parallel programming */
  4792. size = 1024;
  4793. min_write_delay = 9000;
  4794. max_write_delay = 9000;
  4795. readback_p1 = 0xff;
  4796. readback_p2 = 0xff;
  4797. read = " 1 0 1 0 0 0 0 0",
  4798. " x x x x x x a9 a8",
  4799. " a7 a6 a5 a4 a3 a2 a1 a0",
  4800. " o o o o o o o o";
  4801. write = " 1 1 0 0 0 0 0 0",
  4802. " x x x x x x a9 a8",
  4803. " a7 a6 a5 a4 a3 a2 a1 a0",
  4804. " i i i i i i i i";
  4805. loadpage_lo = " 1 1 0 0 0 0 0 1",
  4806. " 0 0 0 0 0 0 0 0",
  4807. " 0 0 0 0 0 0 a1 a0",
  4808. " i i i i i i i i";
  4809. writepage = " 1 1 0 0 0 0 1 0",
  4810. " 0 0 x x x x a9 a8",
  4811. " a7 a6 a5 a4 a3 a3 0 0",
  4812. " x x x x x x x x";
  4813. mode = 0x41;
  4814. delay = 20;
  4815. blocksize = 8;
  4816. readsize = 256;
  4817. ;
  4818. memory "flash"
  4819. paged = yes;
  4820. size = 32768;
  4821. page_size = 128;
  4822. num_pages = 256;
  4823. min_write_delay = 4500;
  4824. max_write_delay = 4500;
  4825. readback_p1 = 0xff;
  4826. readback_p2 = 0xff;
  4827. read_lo = " 0 0 1 0 0 0 0 0",
  4828. " x a14 a13 a12 a11 a10 a9 a8",
  4829. " a7 a6 a5 a4 a3 a2 a1 a0",
  4830. " o o o o o o o o";
  4831. read_hi = " 0 0 1 0 1 0 0 0",
  4832. " x a14 a13 a12 a11 a10 a9 a8",
  4833. " a7 a6 a5 a4 a3 a2 a1 a0",
  4834. " o o o o o o o o";
  4835. loadpage_lo = " 0 1 0 0 0 0 0 0",
  4836. " x x x x x x x x",
  4837. " x x a5 a4 a3 a2 a1 a0",
  4838. " i i i i i i i i";
  4839. loadpage_hi = " 0 1 0 0 1 0 0 0",
  4840. " x x x x x x x x",
  4841. " x x a5 a4 a3 a2 a1 a0",
  4842. " i i i i i i i i";
  4843. writepage = " 0 1 0 0 1 1 0 0",
  4844. " x x x a12 a11 a10 a9 a8",
  4845. " a7 a6 x x x x x x",
  4846. " x x x x x x x x";
  4847. mode = 0x41;
  4848. delay = 6;
  4849. blocksize = 256;
  4850. readsize = 256;
  4851. ;
  4852. memory "lfuse"
  4853. size = 1;
  4854. min_write_delay = 4500;
  4855. max_write_delay = 4500;
  4856. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  4857. "x x x x x x x x o o o o o o o o";
  4858. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  4859. "x x x x x x x x i i i i i i i i";
  4860. ;
  4861. memory "hfuse"
  4862. size = 1;
  4863. min_write_delay = 4500;
  4864. max_write_delay = 4500;
  4865. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  4866. "x x x x x x x x o o o o o o o o";
  4867. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  4868. "x x x x x x x x i i i i i i i i";
  4869. ;
  4870. memory "efuse"
  4871. size = 1;
  4872. min_write_delay = 4500;
  4873. max_write_delay = 4500;
  4874. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  4875. "x x x x x x x x o o o o o o o o";
  4876. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  4877. "x x x x x x x x x x x x x i i i";
  4878. ;
  4879. memory "lock"
  4880. size = 1;
  4881. min_write_delay = 4500;
  4882. max_write_delay = 4500;
  4883. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  4884. "x x x x x x x x x x o o o o o o";
  4885. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  4886. "x x x x x x x x 1 1 i i i i i i";
  4887. ;
  4888. memory "signature"
  4889. size = 3;
  4890. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  4891. "x x x x x x a1 a0 o o o o o o o o";
  4892. ;
  4893. memory "calibration"
  4894. size = 1;
  4895. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  4896. "0 0 0 0 0 0 0 0 o o o o o o o o";
  4897. ;
  4898. ;
  4899. #------------------------------------------------------------
  4900. # ATmega649
  4901. #------------------------------------------------------------
  4902. part
  4903. id = "m649";
  4904. desc = "ATMEGA649";
  4905. has_jtag = yes;
  4906. # stk500_devcode = 0x85; # no STK500 support, only STK500v2
  4907. # avr910_devcode = 0x?; # try the ATmega169 one:
  4908. avr910_devcode = 0x75;
  4909. signature = 0x1e 0x96 0x03;
  4910. chip_erase_delay = 9000;
  4911. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  4912. "x x x x x x x x x x x x x x x x";
  4913. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  4914. "x x x x x x x x x x x x x x x x";
  4915. timeout = 200;
  4916. stabdelay = 100;
  4917. cmdexedelay = 25;
  4918. synchloops = 32;
  4919. bytedelay = 0;
  4920. pollindex = 3;
  4921. pollvalue = 0x53;
  4922. predelay = 1;
  4923. postdelay = 1;
  4924. pollmethod = 1;
  4925. pp_controlstack =
  4926. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  4927. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  4928. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  4929. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  4930. hventerstabdelay = 100;
  4931. progmodedelay = 0;
  4932. latchcycles = 5;
  4933. togglevtg = 1;
  4934. poweroffdelay = 15;
  4935. resetdelayms = 1;
  4936. resetdelayus = 0;
  4937. hvleavestabdelay = 15;
  4938. chiperasepulsewidth = 0;
  4939. chiperasepolltimeout = 10;
  4940. programfusepulsewidth = 0;
  4941. programfusepolltimeout = 5;
  4942. programlockpulsewidth = 0;
  4943. programlockpolltimeout = 5;
  4944. idr = 0x31;
  4945. spmcr = 0x57;
  4946. memory "eeprom"
  4947. paged = no; /* leave this "no" */
  4948. page_size = 8; /* for parallel programming */
  4949. size = 2048;
  4950. min_write_delay = 9000;
  4951. max_write_delay = 9000;
  4952. readback_p1 = 0xff;
  4953. readback_p2 = 0xff;
  4954. read = " 1 0 1 0 0 0 0 0",
  4955. " x x x x x a10 a9 a8",
  4956. " a7 a6 a5 a4 a3 a2 a1 a0",
  4957. " o o o o o o o o";
  4958. write = " 1 1 0 0 0 0 0 0",
  4959. " x x x x x a10 a9 a8",
  4960. " a7 a6 a5 a4 a3 a2 a1 a0",
  4961. " i i i i i i i i";
  4962. loadpage_lo = " 1 1 0 0 0 0 0 1",
  4963. " 0 0 0 0 0 0 0 0",
  4964. " 0 0 0 0 0 a2 a1 a0",
  4965. " i i i i i i i i";
  4966. writepage = " 1 1 0 0 0 0 1 0",
  4967. " 0 0 x x x a10 a9 a8",
  4968. " a7 a6 a5 a4 a3 0 0 0",
  4969. " x x x x x x x x";
  4970. mode = 0x41;
  4971. delay = 20;
  4972. blocksize = 8;
  4973. readsize = 256;
  4974. ;
  4975. memory "flash"
  4976. paged = yes;
  4977. size = 65536;
  4978. page_size = 256;
  4979. num_pages = 256;
  4980. min_write_delay = 4500;
  4981. max_write_delay = 4500;
  4982. readback_p1 = 0xff;
  4983. readback_p2 = 0xff;
  4984. read_lo = " 0 0 1 0 0 0 0 0",
  4985. "a15 a14 a13 a12 a11 a10 a9 a8",
  4986. " a7 a6 a5 a4 a3 a2 a1 a0",
  4987. " o o o o o o o o";
  4988. read_hi = " 0 0 1 0 1 0 0 0",
  4989. "a15 a14 a13 a12 a11 a10 a9 a8",
  4990. " a7 a6 a5 a4 a3 a2 a1 a0",
  4991. " o o o o o o o o";
  4992. loadpage_lo = " 0 1 0 0 0 0 0 0",
  4993. " x x x x x x x x",
  4994. " x a6 a5 a4 a3 a2 a1 a0",
  4995. " i i i i i i i i";
  4996. loadpage_hi = " 0 1 0 0 1 0 0 0",
  4997. " x x x x x x x x",
  4998. " x a6 a5 a4 a3 a2 a1 a0",
  4999. " i i i i i i i i";
  5000. writepage = " 0 1 0 0 1 1 0 0",
  5001. " x x x a12 a11 a10 a9 a8",
  5002. " a7 x x x x x x x",
  5003. " x x x x x x x x";
  5004. mode = 0x41;
  5005. delay = 6;
  5006. blocksize = 256;
  5007. readsize = 256;
  5008. ;
  5009. memory "lfuse"
  5010. size = 1;
  5011. min_write_delay = 4500;
  5012. max_write_delay = 4500;
  5013. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  5014. "x x x x x x x x o o o o o o o o";
  5015. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  5016. "x x x x x x x x i i i i i i i i";
  5017. ;
  5018. memory "hfuse"
  5019. size = 1;
  5020. min_write_delay = 4500;
  5021. max_write_delay = 4500;
  5022. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  5023. "x x x x x x x x o o o o o o o o";
  5024. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  5025. "x x x x x x x x i i i i i i i i";
  5026. ;
  5027. memory "efuse"
  5028. size = 1;
  5029. min_write_delay = 4500;
  5030. max_write_delay = 4500;
  5031. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  5032. "x x x x x x x x o o o o o o o o";
  5033. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  5034. "x x x x x x x x x x x x x i i i";
  5035. ;
  5036. memory "lock"
  5037. size = 1;
  5038. min_write_delay = 4500;
  5039. max_write_delay = 4500;
  5040. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  5041. "x x x x x x x x x x o o o o o o";
  5042. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  5043. "x x x x x x x x 1 1 i i i i i i";
  5044. ;
  5045. memory "signature"
  5046. size = 3;
  5047. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  5048. "x x x x x x a1 a0 o o o o o o o o";
  5049. ;
  5050. memory "calibration"
  5051. size = 1;
  5052. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  5053. "0 0 0 0 0 0 0 0 o o o o o o o o";
  5054. ;
  5055. ;
  5056. #------------------------------------------------------------
  5057. # ATmega6490
  5058. #------------------------------------------------------------
  5059. # identical to ATmega649
  5060. part
  5061. id = "m6490";
  5062. desc = "ATMEGA6490";
  5063. has_jtag = yes;
  5064. # stk500_devcode = 0x85; # no STK500 support, only STK500v2
  5065. # avr910_devcode = 0x?; # try the ATmega169 one:
  5066. avr910_devcode = 0x75;
  5067. signature = 0x1e 0x96 0x04;
  5068. chip_erase_delay = 9000;
  5069. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  5070. "x x x x x x x x x x x x x x x x";
  5071. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  5072. "x x x x x x x x x x x x x x x x";
  5073. timeout = 200;
  5074. stabdelay = 100;
  5075. cmdexedelay = 25;
  5076. synchloops = 32;
  5077. bytedelay = 0;
  5078. pollindex = 3;
  5079. pollvalue = 0x53;
  5080. predelay = 1;
  5081. postdelay = 1;
  5082. pollmethod = 1;
  5083. pp_controlstack =
  5084. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  5085. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  5086. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  5087. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  5088. hventerstabdelay = 100;
  5089. progmodedelay = 0;
  5090. latchcycles = 5;
  5091. togglevtg = 1;
  5092. poweroffdelay = 15;
  5093. resetdelayms = 1;
  5094. resetdelayus = 0;
  5095. hvleavestabdelay = 15;
  5096. chiperasepulsewidth = 0;
  5097. chiperasepolltimeout = 10;
  5098. programfusepulsewidth = 0;
  5099. programfusepolltimeout = 5;
  5100. programlockpulsewidth = 0;
  5101. programlockpolltimeout = 5;
  5102. idr = 0x31;
  5103. spmcr = 0x57;
  5104. memory "eeprom"
  5105. paged = no; /* leave this "no" */
  5106. page_size = 8; /* for parallel programming */
  5107. size = 2048;
  5108. min_write_delay = 9000;
  5109. max_write_delay = 9000;
  5110. readback_p1 = 0xff;
  5111. readback_p2 = 0xff;
  5112. read = " 1 0 1 0 0 0 0 0",
  5113. " x x x x x a10 a9 a8",
  5114. " a7 a6 a5 a4 a3 a2 a1 a0",
  5115. " o o o o o o o o";
  5116. write = " 1 1 0 0 0 0 0 0",
  5117. " x x x x x a10 a9 a8",
  5118. " a7 a6 a5 a4 a3 a2 a1 a0",
  5119. " i i i i i i i i";
  5120. loadpage_lo = " 1 1 0 0 0 0 0 1",
  5121. " 0 0 0 0 0 0 0 0",
  5122. " 0 0 0 0 0 a2 a1 a0",
  5123. " i i i i i i i i";
  5124. writepage = " 1 1 0 0 0 0 1 0",
  5125. " 0 0 x x x x x a8",
  5126. " a7 a6 a5 a4 a3 0 0 0",
  5127. " x x x x x x x x";
  5128. loadpage_lo = " 1 1 0 0 0 0 0 1",
  5129. " 0 0 0 0 0 0 0 0",
  5130. " 0 0 0 0 0 a2 a1 a0",
  5131. " i i i i i i i i";
  5132. writepage = " 1 1 0 0 0 0 1 0",
  5133. " 0 0 x x x a10 a9 a8",
  5134. " a7 a6 a5 a4 a3 0 0 0",
  5135. " x x x x x x x x";
  5136. mode = 0x41;
  5137. delay = 20;
  5138. blocksize = 8;
  5139. readsize = 256;
  5140. ;
  5141. memory "flash"
  5142. paged = yes;
  5143. size = 65536;
  5144. page_size = 256;
  5145. num_pages = 256;
  5146. min_write_delay = 4500;
  5147. max_write_delay = 4500;
  5148. readback_p1 = 0xff;
  5149. readback_p2 = 0xff;
  5150. read_lo = " 0 0 1 0 0 0 0 0",
  5151. "a15 a14 a13 a12 a11 a10 a9 a8",
  5152. " a7 a6 a5 a4 a3 a2 a1 a0",
  5153. " o o o o o o o o";
  5154. read_hi = " 0 0 1 0 1 0 0 0",
  5155. "a15 a14 a13 a12 a11 a10 a9 a8",
  5156. " a7 a6 a5 a4 a3 a2 a1 a0",
  5157. " o o o o o o o o";
  5158. loadpage_lo = " 0 1 0 0 0 0 0 0",
  5159. " x x x x x x x x",
  5160. " x a6 a5 a4 a3 a2 a1 a0",
  5161. " i i i i i i i i";
  5162. loadpage_hi = " 0 1 0 0 1 0 0 0",
  5163. " x x x x x x x x",
  5164. " x a6 a5 a4 a3 a2 a1 a0",
  5165. " i i i i i i i i";
  5166. writepage = " 0 1 0 0 1 1 0 0",
  5167. " x x x a12 a11 a10 a9 a8",
  5168. " a7 x x x x x x x",
  5169. " x x x x x x x x";
  5170. mode = 0x41;
  5171. delay = 6;
  5172. blocksize = 256;
  5173. readsize = 256;
  5174. ;
  5175. memory "lfuse"
  5176. size = 1;
  5177. min_write_delay = 4500;
  5178. max_write_delay = 4500;
  5179. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  5180. "x x x x x x x x o o o o o o o o";
  5181. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  5182. "x x x x x x x x i i i i i i i i";
  5183. ;
  5184. memory "hfuse"
  5185. size = 1;
  5186. min_write_delay = 4500;
  5187. max_write_delay = 4500;
  5188. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  5189. "x x x x x x x x o o o o o o o o";
  5190. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  5191. "x x x x x x x x i i i i i i i i";
  5192. ;
  5193. memory "efuse"
  5194. size = 1;
  5195. min_write_delay = 4500;
  5196. max_write_delay = 4500;
  5197. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  5198. "x x x x x x x x o o o o o o o o";
  5199. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  5200. "x x x x x x x x x x x x x i i i";
  5201. ;
  5202. memory "lock"
  5203. size = 1;
  5204. min_write_delay = 4500;
  5205. max_write_delay = 4500;
  5206. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  5207. "x x x x x x x x x x o o o o o o";
  5208. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  5209. "x x x x x x x x 1 1 i i i i i i";
  5210. ;
  5211. memory "signature"
  5212. size = 3;
  5213. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  5214. "x x x x x x a1 a0 o o o o o o o o";
  5215. ;
  5216. memory "calibration"
  5217. size = 1;
  5218. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  5219. "0 0 0 0 0 0 0 0 o o o o o o o o";
  5220. ;
  5221. ;
  5222. #------------------------------------------------------------
  5223. # ATmega32
  5224. #------------------------------------------------------------
  5225. part
  5226. id = "m32";
  5227. desc = "ATMEGA32";
  5228. has_jtag = yes;
  5229. stk500_devcode = 0x91;
  5230. avr910_devcode = 0x72;
  5231. signature = 0x1e 0x95 0x02;
  5232. chip_erase_delay = 9000;
  5233. pagel = 0xd7;
  5234. bs2 = 0xa0;
  5235. reset = dedicated;
  5236. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  5237. "x x x x x x x x x x x x x x x x";
  5238. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  5239. "x x x x x x x x x x x x x x x x";
  5240. timeout = 200;
  5241. stabdelay = 100;
  5242. cmdexedelay = 25;
  5243. synchloops = 32;
  5244. bytedelay = 0;
  5245. pollindex = 3;
  5246. pollvalue = 0x53;
  5247. predelay = 1;
  5248. postdelay = 1;
  5249. pollmethod = 0;
  5250. pp_controlstack =
  5251. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  5252. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  5253. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  5254. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  5255. hventerstabdelay = 100;
  5256. progmodedelay = 0;
  5257. latchcycles = 6;
  5258. togglevtg = 0;
  5259. poweroffdelay = 0;
  5260. resetdelayms = 0;
  5261. resetdelayus = 0;
  5262. hvleavestabdelay = 15;
  5263. chiperasepulsewidth = 0;
  5264. chiperasepolltimeout = 10;
  5265. programfusepulsewidth = 0;
  5266. programfusepolltimeout = 5;
  5267. programlockpulsewidth = 0;
  5268. programlockpolltimeout = 5;
  5269. idr = 0x31;
  5270. spmcr = 0x57;
  5271. allowfullpagebitstream = yes;
  5272. memory "eeprom"
  5273. paged = no; /* leave this "no" */
  5274. page_size = 4; /* for parallel programming */
  5275. size = 1024;
  5276. min_write_delay = 9000;
  5277. max_write_delay = 9000;
  5278. readback_p1 = 0xff;
  5279. readback_p2 = 0xff;
  5280. read = " 1 0 1 0 0 0 0 0",
  5281. " 0 0 x x x x a9 a8",
  5282. " a7 a6 a5 a4 a3 a2 a1 a0",
  5283. " o o o o o o o o";
  5284. write = " 1 1 0 0 0 0 0 0",
  5285. " 0 0 x x x x a9 a8",
  5286. " a7 a6 a5 a4 a3 a2 a1 a0",
  5287. " i i i i i i i i";
  5288. loadpage_lo = " 1 1 0 0 0 0 0 1",
  5289. " 0 0 0 0 0 0 0 0",
  5290. " 0 0 0 0 0 0 a1 a0",
  5291. " i i i i i i i i";
  5292. writepage = " 1 1 0 0 0 0 1 0",
  5293. " 0 0 x x x x a9 a8",
  5294. " a7 a6 a5 a4 a3 a2 0 0",
  5295. " x x x x x x x x";
  5296. mode = 0x04;
  5297. delay = 10;
  5298. blocksize = 64;
  5299. readsize = 256;
  5300. ;
  5301. memory "flash"
  5302. paged = yes;
  5303. size = 32768;
  5304. page_size = 128;
  5305. num_pages = 256;
  5306. min_write_delay = 4500;
  5307. max_write_delay = 4500;
  5308. readback_p1 = 0xff;
  5309. readback_p2 = 0xff;
  5310. read_lo = " 0 0 1 0 0 0 0 0",
  5311. " 0 0 a13 a12 a11 a10 a9 a8",
  5312. " a7 a6 a5 a4 a3 a2 a1 a0",
  5313. " o o o o o o o o";
  5314. read_hi = " 0 0 1 0 1 0 0 0",
  5315. " 0 0 a13 a12 a11 a10 a9 a8",
  5316. " a7 a6 a5 a4 a3 a2 a1 a0",
  5317. " o o o o o o o o";
  5318. loadpage_lo = " 0 1 0 0 0 0 0 0",
  5319. " 0 0 x x x x x x",
  5320. " x x a5 a4 a3 a2 a1 a0",
  5321. " i i i i i i i i";
  5322. loadpage_hi = " 0 1 0 0 1 0 0 0",
  5323. " 0 0 x x x x x x",
  5324. " x x a5 a4 a3 a2 a1 a0",
  5325. " i i i i i i i i";
  5326. writepage = " 0 1 0 0 1 1 0 0",
  5327. " 0 0 a13 a12 a11 a10 a9 a8",
  5328. " a7 a6 x x x x x x",
  5329. " x x x x x x x x";
  5330. mode = 0x21;
  5331. delay = 6;
  5332. blocksize = 64;
  5333. readsize = 256;
  5334. ;
  5335. memory "lfuse"
  5336. size = 1;
  5337. min_write_delay = 2000;
  5338. max_write_delay = 2000;
  5339. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  5340. "x x x x x x x x o o o o o o o o";
  5341. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  5342. "x x x x x x x x i i i i i i i i";
  5343. ;
  5344. memory "hfuse"
  5345. size = 1;
  5346. min_write_delay = 2000;
  5347. max_write_delay = 2000;
  5348. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  5349. "x x x x x x x x o o o o o o o o";
  5350. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  5351. "x x x x x x x x i i i i i i i i";
  5352. ;
  5353. memory "lock"
  5354. size = 1;
  5355. min_write_delay = 2000;
  5356. max_write_delay = 2000;
  5357. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  5358. "x x x x x x x x x x o o o o o o";
  5359. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  5360. "x x x x x x x x 1 1 i i i i i i";
  5361. ;
  5362. memory "signature"
  5363. size = 3;
  5364. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  5365. "x x x x x x a1 a0 o o o o o o o o";
  5366. ;
  5367. memory "calibration"
  5368. size = 4;
  5369. read = "0 0 1 1 1 0 0 0 0 0 x x x x x x",
  5370. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  5371. ;
  5372. ;
  5373. #------------------------------------------------------------
  5374. # ATmega161
  5375. #------------------------------------------------------------
  5376. part
  5377. id = "m161";
  5378. desc = "ATMEGA161";
  5379. stk500_devcode = 0x80;
  5380. avr910_devcode = 0x60;
  5381. signature = 0x1e 0x94 0x01;
  5382. chip_erase_delay = 28000;
  5383. pagel = 0xd7;
  5384. bs2 = 0xa0;
  5385. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  5386. "x x x x x x x x x x x x x x x x";
  5387. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  5388. "x x x x x x x x x x x x x x x x";
  5389. timeout = 200;
  5390. stabdelay = 100;
  5391. cmdexedelay = 25;
  5392. synchloops = 32;
  5393. bytedelay = 0;
  5394. pollindex = 3;
  5395. pollvalue = 0x53;
  5396. predelay = 1;
  5397. postdelay = 1;
  5398. pollmethod = 0;
  5399. pp_controlstack =
  5400. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  5401. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  5402. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  5403. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  5404. hventerstabdelay = 100;
  5405. progmodedelay = 0;
  5406. latchcycles = 0;
  5407. togglevtg = 0;
  5408. poweroffdelay = 0;
  5409. resetdelayms = 0;
  5410. resetdelayus = 0;
  5411. hvleavestabdelay = 15;
  5412. chiperasepulsewidth = 0;
  5413. chiperasepolltimeout = 30;
  5414. programfusepulsewidth = 0;
  5415. programfusepolltimeout = 2;
  5416. programlockpulsewidth = 0;
  5417. programlockpolltimeout = 2;
  5418. memory "eeprom"
  5419. size = 512;
  5420. min_write_delay = 3400;
  5421. max_write_delay = 3400;
  5422. readback_p1 = 0xff;
  5423. readback_p2 = 0xff;
  5424. read = " 1 0 1 0 0 0 0 0",
  5425. " x x x x x x x a8",
  5426. " a7 a6 a5 a4 a3 a2 a1 a0",
  5427. " o o o o o o o o";
  5428. write = " 1 1 0 0 0 0 0 0",
  5429. " x x x x x x x a8",
  5430. " a7 a6 a5 a4 a3 a2 a1 a0",
  5431. " i i i i i i i i";
  5432. mode = 0x04;
  5433. delay = 5;
  5434. blocksize = 128;
  5435. readsize = 256;
  5436. ;
  5437. memory "flash"
  5438. paged = yes;
  5439. size = 16384;
  5440. page_size = 128;
  5441. num_pages = 128;
  5442. min_write_delay = 14000;
  5443. max_write_delay = 14000;
  5444. readback_p1 = 0xff;
  5445. readback_p2 = 0xff;
  5446. read_lo = " 0 0 1 0 0 0 0 0",
  5447. " x x x a12 a11 a10 a9 a8",
  5448. " a7 a6 a5 a4 a3 a2 a1 a0",
  5449. " o o o o o o o o";
  5450. read_hi = " 0 0 1 0 1 0 0 0",
  5451. " x x x a12 a11 a10 a9 a8",
  5452. " a7 a6 a5 a4 a3 a2 a1 a0",
  5453. " o o o o o o o o";
  5454. loadpage_lo = " 0 1 0 0 0 0 0 0",
  5455. " x x x x x x x x",
  5456. " x x a5 a4 a3 a2 a1 a0",
  5457. " i i i i i i i i";
  5458. loadpage_hi = " 0 1 0 0 1 0 0 0",
  5459. " x x x x x x x x",
  5460. " x x a5 a4 a3 a2 a1 a0",
  5461. " i i i i i i i i";
  5462. writepage = " 0 1 0 0 1 1 0 0",
  5463. " x x x a12 a11 a10 a9 a8",
  5464. " a7 a6 x x x x x x",
  5465. " x x x x x x x x";
  5466. mode = 0x21;
  5467. delay = 16;
  5468. blocksize = 128;
  5469. readsize = 256;
  5470. ;
  5471. memory "fuse"
  5472. size = 1;
  5473. min_write_delay = 2000;
  5474. max_write_delay = 2000;
  5475. read = "0 1 0 1 0 0 0 0 x x x x x x x x",
  5476. "x x x x x x x x x o x o o o o o";
  5477. write = "1 0 1 0 1 1 0 0 1 0 1 x x x x x",
  5478. "x x x x x x x x 1 i 1 i i i i i";
  5479. ;
  5480. memory "lock"
  5481. size = 1;
  5482. min_write_delay = 2000;
  5483. max_write_delay = 2000;
  5484. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  5485. "x x x x x x x x x x o o o o o o";
  5486. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  5487. "x x x x x x x x 1 1 i i i i i i";
  5488. ;
  5489. memory "signature"
  5490. size = 3;
  5491. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  5492. "x x x x x x a1 a0 o o o o o o o o";
  5493. ;
  5494. ;
  5495. #------------------------------------------------------------
  5496. # ATmega8
  5497. #------------------------------------------------------------
  5498. part
  5499. id = "m8";
  5500. desc = "ATMEGA8";
  5501. stk500_devcode = 0x70;
  5502. avr910_devcode = 0x76;
  5503. signature = 0x1e 0x93 0x07;
  5504. pagel = 0xd7;
  5505. bs2 = 0xc2;
  5506. chip_erase_delay = 10000;
  5507. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  5508. "x x x x x x x x x x x x x x x x";
  5509. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  5510. "x x x x x x x x x x x x x x x x";
  5511. timeout = 200;
  5512. stabdelay = 100;
  5513. cmdexedelay = 25;
  5514. synchloops = 32;
  5515. bytedelay = 0;
  5516. pollindex = 3;
  5517. pollvalue = 0x53;
  5518. predelay = 1;
  5519. postdelay = 1;
  5520. pollmethod = 0;
  5521. pp_controlstack =
  5522. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  5523. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  5524. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  5525. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  5526. hventerstabdelay = 100;
  5527. progmodedelay = 0;
  5528. latchcycles = 5;
  5529. togglevtg = 1;
  5530. poweroffdelay = 15;
  5531. resetdelayms = 2;
  5532. resetdelayus = 0;
  5533. hvleavestabdelay = 15;
  5534. resetdelay = 15;
  5535. chiperasepulsewidth = 0;
  5536. chiperasepolltimeout = 10;
  5537. programfusepulsewidth = 0;
  5538. programfusepolltimeout = 5;
  5539. programlockpulsewidth = 0;
  5540. programlockpolltimeout = 5;
  5541. memory "eeprom"
  5542. size = 512;
  5543. page_size = 4;
  5544. min_write_delay = 9000;
  5545. max_write_delay = 9000;
  5546. readback_p1 = 0xff;
  5547. readback_p2 = 0xff;
  5548. read = " 1 0 1 0 0 0 0 0",
  5549. " 0 0 x x x x x a8",
  5550. " a7 a6 a5 a4 a3 a2 a1 a0",
  5551. " o o o o o o o o";
  5552. write = " 1 1 0 0 0 0 0 0",
  5553. " 0 0 x x x x x a8",
  5554. " a7 a6 a5 a4 a3 a2 a1 a0",
  5555. " i i i i i i i i";
  5556. mode = 0x04;
  5557. delay = 20;
  5558. blocksize = 128;
  5559. readsize = 256;
  5560. ;
  5561. memory "flash"
  5562. paged = yes;
  5563. size = 8192;
  5564. page_size = 64;
  5565. num_pages = 128;
  5566. min_write_delay = 4500;
  5567. max_write_delay = 4500;
  5568. readback_p1 = 0xff;
  5569. readback_p2 = 0x00;
  5570. read_lo = " 0 0 1 0 0 0 0 0",
  5571. " 0 0 0 0 a11 a10 a9 a8",
  5572. " a7 a6 a5 a4 a3 a2 a1 a0",
  5573. " o o o o o o o o";
  5574. read_hi = " 0 0 1 0 1 0 0 0",
  5575. " 0 0 0 0 a11 a10 a9 a8",
  5576. " a7 a6 a5 a4 a3 a2 a1 a0",
  5577. " o o o o o o o o";
  5578. loadpage_lo = " 0 1 0 0 0 0 0 0",
  5579. " 0 0 0 0 x x x x",
  5580. " x x x a4 a3 a2 a1 a0",
  5581. " i i i i i i i i";
  5582. loadpage_hi = " 0 1 0 0 1 0 0 0",
  5583. " 0 0 0 0 x x x x",
  5584. " x x x a4 a3 a2 a1 a0",
  5585. " i i i i i i i i";
  5586. writepage = " 0 1 0 0 1 1 0 0",
  5587. " 0 0 0 0 a11 a10 a9 a8",
  5588. " a7 a6 a5 x x x x x",
  5589. " x x x x x x x x";
  5590. mode = 0x21;
  5591. delay = 10;
  5592. blocksize = 64;
  5593. readsize = 256;
  5594. ;
  5595. memory "lfuse"
  5596. size = 1;
  5597. min_write_delay = 2000;
  5598. max_write_delay = 2000;
  5599. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  5600. "x x x x x x x x o o o o o o o o";
  5601. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  5602. "x x x x x x x x i i i i i i i i";
  5603. ;
  5604. memory "hfuse"
  5605. size = 1;
  5606. min_write_delay = 2000;
  5607. max_write_delay = 2000;
  5608. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  5609. "x x x x x x x x o o o o o o o o";
  5610. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  5611. "x x x x x x x x i i i i i i i i";
  5612. ;
  5613. memory "lock"
  5614. size = 1;
  5615. min_write_delay = 2000;
  5616. max_write_delay = 2000;
  5617. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  5618. "x x x x x x x x x x o o o o o o";
  5619. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  5620. "x x x x x x x x 1 1 i i i i i i";
  5621. ;
  5622. memory "calibration"
  5623. size = 4;
  5624. read = "0 0 1 1 1 0 0 0 0 0 x x x x x x",
  5625. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  5626. ;
  5627. memory "signature"
  5628. size = 3;
  5629. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  5630. "x x x x x x a1 a0 o o o o o o o o";
  5631. ;
  5632. ;
  5633. #------------------------------------------------------------
  5634. # ATmega8515
  5635. #------------------------------------------------------------
  5636. part
  5637. id = "m8515";
  5638. desc = "ATMEGA8515";
  5639. stk500_devcode = 0x63;
  5640. avr910_devcode = 0x3A;
  5641. signature = 0x1e 0x93 0x06;
  5642. chip_erase_delay = 9000;
  5643. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  5644. "x x x x x x x x x x x x x x x x";
  5645. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  5646. "x x x x x x x x x x x x x x x x";
  5647. timeout = 200;
  5648. stabdelay = 100;
  5649. cmdexedelay = 25;
  5650. synchloops = 32;
  5651. bytedelay = 0;
  5652. pollindex = 3;
  5653. pollvalue = 0x53;
  5654. predelay = 1;
  5655. postdelay = 1;
  5656. pollmethod = 0;
  5657. pp_controlstack =
  5658. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  5659. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  5660. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  5661. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  5662. hventerstabdelay = 100;
  5663. progmodedelay = 0;
  5664. latchcycles = 6;
  5665. togglevtg = 0;
  5666. poweroffdelay = 0;
  5667. resetdelayms = 0;
  5668. resetdelayus = 0;
  5669. hvleavestabdelay = 15;
  5670. chiperasepulsewidth = 0;
  5671. chiperasepolltimeout = 10;
  5672. programfusepulsewidth = 0;
  5673. programfusepolltimeout = 5;
  5674. programlockpulsewidth = 0;
  5675. programlockpolltimeout = 5;
  5676. memory "eeprom"
  5677. size = 512;
  5678. min_write_delay = 9000;
  5679. max_write_delay = 9000;
  5680. readback_p1 = 0xff;
  5681. readback_p2 = 0xff;
  5682. read = " 1 0 1 0 0 0 0 0",
  5683. " 0 0 x x x x x a8",
  5684. " a7 a6 a5 a4 a3 a2 a1 a0",
  5685. " o o o o o o o o";
  5686. write = " 1 1 0 0 0 0 0 0",
  5687. " 0 0 x x x x x a8",
  5688. " a7 a6 a5 a4 a3 a2 a1 a0",
  5689. " i i i i i i i i";
  5690. mode = 0x04;
  5691. delay = 10;
  5692. blocksize = 128;
  5693. readsize = 256;
  5694. ;
  5695. memory "flash"
  5696. paged = yes;
  5697. size = 8192;
  5698. page_size = 64;
  5699. num_pages = 128;
  5700. min_write_delay = 4500;
  5701. max_write_delay = 4500;
  5702. readback_p1 = 0xff;
  5703. readback_p2 = 0xff;
  5704. read_lo = " 0 0 1 0 0 0 0 0",
  5705. " 0 0 0 0 a11 a10 a9 a8",
  5706. " a7 a6 a5 a4 a3 a2 a1 a0",
  5707. " o o o o o o o o";
  5708. read_hi = " 0 0 1 0 1 0 0 0",
  5709. " 0 0 0 0 a11 a10 a9 a8",
  5710. " a7 a6 a5 a4 a3 a2 a1 a0",
  5711. " o o o o o o o o";
  5712. loadpage_lo = " 0 1 0 0 0 0 0 0",
  5713. " 0 0 0 0 x x x x",
  5714. " x x x a4 a3 a2 a1 a0",
  5715. " i i i i i i i i";
  5716. loadpage_hi = " 0 1 0 0 1 0 0 0",
  5717. " 0 0 0 0 x x x x",
  5718. " x x x a4 a3 a2 a1 a0",
  5719. " i i i i i i i i";
  5720. writepage = " 0 1 0 0 1 1 0 0",
  5721. " 0 0 0 0 a11 a10 a9 a8",
  5722. " a7 a6 a5 x x x x x",
  5723. " x x x x x x x x";
  5724. mode = 0x21;
  5725. delay = 6;
  5726. blocksize = 64;
  5727. readsize = 256;
  5728. ;
  5729. memory "lfuse"
  5730. size = 1;
  5731. min_write_delay = 4500;
  5732. max_write_delay = 4500;
  5733. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  5734. "x x x x x x x x o o o o o o o o";
  5735. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  5736. "x x x x x x x x i i i i i i i i";
  5737. ;
  5738. memory "hfuse"
  5739. size = 1;
  5740. min_write_delay = 4500;
  5741. max_write_delay = 4500;
  5742. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  5743. "x x x x x x x x o o o o o o o o";
  5744. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  5745. "x x x x x x x x i i i i i i i i";
  5746. ;
  5747. memory "lock"
  5748. size = 1;
  5749. min_write_delay = 4500;
  5750. max_write_delay = 4500;
  5751. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  5752. "x x x x x x x x x x o o o o o o";
  5753. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  5754. "x x x x x x x x 1 1 i i i i i i";
  5755. ;
  5756. memory "calibration"
  5757. size = 4;
  5758. read = "0 0 1 1 1 0 0 0 0 0 x x x x x x",
  5759. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  5760. ;
  5761. memory "signature"
  5762. size = 3;
  5763. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  5764. "x x x x x x a1 a0 o o o o o o o o";
  5765. ;
  5766. ;
  5767. #------------------------------------------------------------
  5768. # ATmega8535
  5769. #------------------------------------------------------------
  5770. part
  5771. id = "m8535";
  5772. desc = "ATMEGA8535";
  5773. stk500_devcode = 0x64;
  5774. avr910_devcode = 0x69;
  5775. signature = 0x1e 0x93 0x08;
  5776. pagel = 0xd7;
  5777. bs2 = 0xa0;
  5778. chip_erase_delay = 9000;
  5779. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  5780. "x x x x x x x x x x x x x x x x";
  5781. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  5782. "x x x x x x x x x x x x x x x x";
  5783. timeout = 200;
  5784. stabdelay = 100;
  5785. cmdexedelay = 25;
  5786. synchloops = 32;
  5787. bytedelay = 0;
  5788. pollindex = 3;
  5789. pollvalue = 0x53;
  5790. predelay = 1;
  5791. postdelay = 1;
  5792. pollmethod = 0;
  5793. pp_controlstack =
  5794. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  5795. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  5796. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  5797. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  5798. hventerstabdelay = 100;
  5799. progmodedelay = 0;
  5800. latchcycles = 6;
  5801. togglevtg = 0;
  5802. poweroffdelay = 0;
  5803. resetdelayms = 0;
  5804. resetdelayus = 0;
  5805. hvleavestabdelay = 15;
  5806. chiperasepulsewidth = 0;
  5807. chiperasepolltimeout = 10;
  5808. programfusepulsewidth = 0;
  5809. programfusepolltimeout = 5;
  5810. programlockpulsewidth = 0;
  5811. programlockpolltimeout = 5;
  5812. memory "eeprom"
  5813. size = 512;
  5814. min_write_delay = 9000;
  5815. max_write_delay = 9000;
  5816. readback_p1 = 0xff;
  5817. readback_p2 = 0xff;
  5818. read = " 1 0 1 0 0 0 0 0",
  5819. " 0 0 x x x x x a8",
  5820. " a7 a6 a5 a4 a3 a2 a1 a0",
  5821. " o o o o o o o o";
  5822. write = " 1 1 0 0 0 0 0 0",
  5823. " 0 0 x x x x x a8",
  5824. " a7 a6 a5 a4 a3 a2 a1 a0",
  5825. " i i i i i i i i";
  5826. mode = 0x04;
  5827. delay = 10;
  5828. blocksize = 128;
  5829. readsize = 256;
  5830. ;
  5831. memory "flash"
  5832. paged = yes;
  5833. size = 8192;
  5834. page_size = 64;
  5835. num_pages = 128;
  5836. min_write_delay = 4500;
  5837. max_write_delay = 4500;
  5838. readback_p1 = 0xff;
  5839. readback_p2 = 0xff;
  5840. read_lo = " 0 0 1 0 0 0 0 0",
  5841. " 0 0 0 0 a11 a10 a9 a8",
  5842. " a7 a6 a5 a4 a3 a2 a1 a0",
  5843. " o o o o o o o o";
  5844. read_hi = " 0 0 1 0 1 0 0 0",
  5845. " 0 0 0 0 a11 a10 a9 a8",
  5846. " a7 a6 a5 a4 a3 a2 a1 a0",
  5847. " o o o o o o o o";
  5848. loadpage_lo = " 0 1 0 0 0 0 0 0",
  5849. " 0 0 0 0 x x x x",
  5850. " x x x a4 a3 a2 a1 a0",
  5851. " i i i i i i i i";
  5852. loadpage_hi = " 0 1 0 0 1 0 0 0",
  5853. " 0 0 0 0 x x x x",
  5854. " x x x a4 a3 a2 a1 a0",
  5855. " i i i i i i i i";
  5856. writepage = " 0 1 0 0 1 1 0 0",
  5857. " 0 0 0 0 a11 a10 a9 a8",
  5858. " a7 a6 a5 x x x x x",
  5859. " x x x x x x x x";
  5860. mode = 0x21;
  5861. delay = 6;
  5862. blocksize = 64;
  5863. readsize = 256;
  5864. ;
  5865. memory "lfuse"
  5866. size = 1;
  5867. min_write_delay = 2000;
  5868. max_write_delay = 2000;
  5869. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  5870. "x x x x x x x x o o o o o o o o";
  5871. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  5872. "x x x x x x x x i i i i i i i i";
  5873. ;
  5874. memory "hfuse"
  5875. size = 1;
  5876. min_write_delay = 2000;
  5877. max_write_delay = 2000;
  5878. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  5879. "x x x x x x x x o o o o o o o o";
  5880. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  5881. "x x x x x x x x i i i i i i i i";
  5882. ;
  5883. memory "lock"
  5884. size = 1;
  5885. min_write_delay = 2000;
  5886. max_write_delay = 2000;
  5887. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  5888. "x x x x x x x x x x o o o o o o";
  5889. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  5890. "x x x x x x x x 1 1 i i i i i i";
  5891. ;
  5892. memory "calibration"
  5893. size = 4;
  5894. read = "0 0 1 1 1 0 0 0 0 0 x x x x x x",
  5895. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  5896. ;
  5897. memory "signature"
  5898. size = 3;
  5899. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  5900. "x x x x x x a1 a0 o o o o o o o o";
  5901. ;
  5902. ;
  5903. #------------------------------------------------------------
  5904. # ATtiny26
  5905. #------------------------------------------------------------
  5906. part
  5907. id = "t26";
  5908. desc = "ATTINY26";
  5909. stk500_devcode = 0x21;
  5910. avr910_devcode = 0x5e;
  5911. signature = 0x1e 0x91 0x09;
  5912. pagel = 0xb3;
  5913. bs2 = 0xb2;
  5914. chip_erase_delay = 9000;
  5915. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  5916. "x x x x x x x x x x x x x x x x";
  5917. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  5918. "x x x x x x x x x x x x x x x x";
  5919. timeout = 200;
  5920. stabdelay = 100;
  5921. cmdexedelay = 25;
  5922. synchloops = 32;
  5923. bytedelay = 0;
  5924. pollindex = 3;
  5925. pollvalue = 0x53;
  5926. predelay = 1;
  5927. postdelay = 1;
  5928. pollmethod = 0;
  5929. pp_controlstack =
  5930. 0xC4, 0xE4, 0xC4, 0xE4, 0xCC, 0xEC, 0xCC, 0xEC,
  5931. 0xD4, 0xF4, 0xD4, 0xF4, 0xDC, 0xFC, 0xDC, 0xFC,
  5932. 0xC8, 0xE8, 0xD8, 0xF8, 0x4C, 0x6C, 0x5C, 0x7C,
  5933. 0xEC, 0xBC, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00;
  5934. hventerstabdelay = 100;
  5935. progmodedelay = 0;
  5936. latchcycles = 5;
  5937. togglevtg = 1;
  5938. poweroffdelay = 15;
  5939. resetdelayms = 2;
  5940. resetdelayus = 0;
  5941. hvleavestabdelay = 15;
  5942. chiperasepulsewidth = 0;
  5943. chiperasepolltimeout = 10;
  5944. programfusepulsewidth = 0;
  5945. programfusepolltimeout = 5;
  5946. programlockpulsewidth = 0;
  5947. programlockpolltimeout = 5;
  5948. memory "eeprom"
  5949. size = 128;
  5950. min_write_delay = 9000;
  5951. max_write_delay = 9000;
  5952. readback_p1 = 0xff;
  5953. readback_p2 = 0xff;
  5954. read = "1 0 1 0 0 0 0 0 x x x x x x x x",
  5955. "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  5956. write = "1 1 0 0 0 0 0 0 x x x x x x x x",
  5957. "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  5958. mode = 0x04;
  5959. delay = 10;
  5960. blocksize = 64;
  5961. readsize = 256;
  5962. ;
  5963. memory "flash"
  5964. paged = yes;
  5965. size = 2048;
  5966. page_size = 32;
  5967. num_pages = 64;
  5968. min_write_delay = 4500;
  5969. max_write_delay = 4500;
  5970. readback_p1 = 0xff;
  5971. readback_p2 = 0xff;
  5972. read_lo = " 0 0 1 0 0 0 0 0",
  5973. " x x x x x x a9 a8",
  5974. " a7 a6 a5 a4 a3 a2 a1 a0",
  5975. " o o o o o o o o";
  5976. read_hi = " 0 0 1 0 1 0 0 0",
  5977. " x x x x x x a9 a8",
  5978. " a7 a6 a5 a4 a3 a2 a1 a0",
  5979. " o o o o o o o o";
  5980. loadpage_lo = " 0 1 0 0 0 0 0 0",
  5981. " x x x x x x x x",
  5982. " x x x x a3 a2 a1 a0",
  5983. " i i i i i i i i";
  5984. loadpage_hi = " 0 1 0 0 1 0 0 0",
  5985. " x x x x x x x x",
  5986. " x x x x a3 a2 a1 a0",
  5987. " i i i i i i i i";
  5988. writepage = " 0 1 0 0 1 1 0 0",
  5989. " x x x x x x a9 a8",
  5990. " a7 a6 a5 a4 x x x x",
  5991. " x x x x x x x x";
  5992. mode = 0x21;
  5993. delay = 6;
  5994. blocksize = 16;
  5995. readsize = 256;
  5996. ;
  5997. memory "signature"
  5998. size = 3;
  5999. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  6000. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  6001. ;
  6002. memory "lock"
  6003. size = 1;
  6004. read = "0 1 0 1 1 0 0 0 x x x x x x x x",
  6005. "x x x x x x x x x x x x x x o o";
  6006. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 1 i i",
  6007. "x x x x x x x x x x x x x x x x";
  6008. min_write_delay = 9000;
  6009. max_write_delay = 9000;
  6010. ;
  6011. memory "lfuse"
  6012. size = 1;
  6013. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  6014. "x x x x x x x x i i i i i i i i";
  6015. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  6016. "x x x x x x x x o o o o o o o o";
  6017. min_write_delay = 9000;
  6018. max_write_delay = 9000;
  6019. ;
  6020. memory "hfuse"
  6021. size = 1;
  6022. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  6023. "x x x x x x x x x x x i i i i i";
  6024. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  6025. "x x x x x x x x x x x o o o o o";
  6026. min_write_delay = 9000;
  6027. max_write_delay = 9000;
  6028. ;
  6029. memory "calibration"
  6030. size = 4;
  6031. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  6032. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  6033. ;
  6034. ;
  6035. #------------------------------------------------------------
  6036. # ATtiny261
  6037. #------------------------------------------------------------
  6038. # Close to ATtiny26
  6039. part
  6040. id = "t261";
  6041. desc = "ATTINY261";
  6042. has_debugwire = yes;
  6043. flash_instr = 0xB4, 0x00, 0x10;
  6044. eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
  6045. 0xBC, 0x00, 0xB4, 0x00, 0xBA, 0x0D, 0xBB, 0xBC,
  6046. 0x99, 0xE1, 0xBB, 0xAC;
  6047. # stk500_devcode = 0x21;
  6048. # avr910_devcode = 0x5e;
  6049. signature = 0x1e 0x91 0x0c;
  6050. pagel = 0xb3;
  6051. bs2 = 0xb2;
  6052. chip_erase_delay = 4000;
  6053. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  6054. "x x x x x x x x x x x x x x x x";
  6055. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  6056. "x x x x x x x x x x x x x x x x";
  6057. timeout = 200;
  6058. stabdelay = 100;
  6059. cmdexedelay = 25;
  6060. synchloops = 32;
  6061. bytedelay = 0;
  6062. pollindex = 3;
  6063. pollvalue = 0x53;
  6064. predelay = 1;
  6065. postdelay = 1;
  6066. pollmethod = 0;
  6067. pp_controlstack =
  6068. 0xC4, 0xE4, 0xC4, 0xE4, 0xCC, 0xEC, 0xCC, 0xEC,
  6069. 0xD4, 0xF4, 0xD4, 0xF4, 0xDC, 0xFC, 0xDC, 0xFC,
  6070. 0xC8, 0xE8, 0xD8, 0xF8, 0x4C, 0x6C, 0x5C, 0x7C,
  6071. 0xEC, 0xBC, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00;
  6072. hventerstabdelay = 100;
  6073. progmodedelay = 0;
  6074. latchcycles = 5;
  6075. togglevtg = 1;
  6076. poweroffdelay = 15;
  6077. resetdelayms = 2;
  6078. resetdelayus = 0;
  6079. hvleavestabdelay = 15;
  6080. chiperasepulsewidth = 0;
  6081. chiperasepolltimeout = 10;
  6082. programfusepulsewidth = 0;
  6083. programfusepolltimeout = 5;
  6084. programlockpulsewidth = 0;
  6085. programlockpolltimeout = 5;
  6086. memory "eeprom"
  6087. paged = no;
  6088. size = 128;
  6089. page_size = 4;
  6090. num_pages = 32;
  6091. min_write_delay = 4000;
  6092. max_write_delay = 4000;
  6093. readback_p1 = 0xff;
  6094. readback_p2 = 0xff;
  6095. read = "1 0 1 0 0 0 0 0 x x x x x x x x",
  6096. "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  6097. write = "1 1 0 0 0 0 0 0 x x x x x x x x",
  6098. "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  6099. loadpage_lo = " 1 1 0 0 0 0 0 1",
  6100. " 0 0 0 0 0 0 0 0",
  6101. " 0 0 0 0 0 0 a1 a0",
  6102. " i i i i i i i i";
  6103. writepage = " 1 1 0 0 0 0 1 0",
  6104. " 0 0 x x x x x x",
  6105. " x a6 a5 a4 a3 a2 0 0",
  6106. " x x x x x x x x";
  6107. mode = 0x41;
  6108. delay = 10;
  6109. blocksize = 4;
  6110. readsize = 256;
  6111. ;
  6112. memory "flash"
  6113. paged = yes;
  6114. size = 2048;
  6115. page_size = 32;
  6116. num_pages = 64;
  6117. min_write_delay = 4500;
  6118. max_write_delay = 4500;
  6119. readback_p1 = 0xff;
  6120. readback_p2 = 0xff;
  6121. read_lo = " 0 0 1 0 0 0 0 0",
  6122. " x x x x x x a9 a8",
  6123. " a7 a6 a5 a4 a3 a2 a1 a0",
  6124. " o o o o o o o o";
  6125. read_hi = " 0 0 1 0 1 0 0 0",
  6126. " x x x x x x a9 a8",
  6127. " a7 a6 a5 a4 a3 a2 a1 a0",
  6128. " o o o o o o o o";
  6129. loadpage_lo = " 0 1 0 0 0 0 0 0",
  6130. " x x x x x x x x",
  6131. " x x x x a3 a2 a1 a0",
  6132. " i i i i i i i i";
  6133. loadpage_hi = " 0 1 0 0 1 0 0 0",
  6134. " x x x x x x x x",
  6135. " x x x x a3 a2 a1 a0",
  6136. " i i i i i i i i";
  6137. writepage = " 0 1 0 0 1 1 0 0",
  6138. " x x x x x x a9 a8",
  6139. " a7 a6 a5 a4 x x x x",
  6140. " x x x x x x x x";
  6141. mode = 0x41;
  6142. delay = 6;
  6143. blocksize = 32;
  6144. readsize = 256;
  6145. ;
  6146. memory "signature"
  6147. size = 3;
  6148. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  6149. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  6150. ;
  6151. memory "lock"
  6152. size = 1;
  6153. read = "0 1 0 1 1 0 0 0 x x x x x x x x",
  6154. "x x x x x x x x x x x x x x o o";
  6155. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 1 i i",
  6156. "x x x x x x x x x x x x x x x x";
  6157. min_write_delay = 4500;
  6158. max_write_delay = 4500;
  6159. ;
  6160. memory "lfuse"
  6161. size = 1;
  6162. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  6163. "x x x x x x x x i i i i i i i i";
  6164. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  6165. "x x x x x x x x o o o o o o o o";
  6166. min_write_delay = 4500;
  6167. max_write_delay = 4500;
  6168. ;
  6169. memory "hfuse"
  6170. size = 1;
  6171. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  6172. "x x x x x x x x i i i i i i i i";
  6173. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  6174. "x x x x x x x x o o o o o o o o";
  6175. min_write_delay = 4500;
  6176. max_write_delay = 4500;
  6177. ;
  6178. memory "efuse"
  6179. size = 1;
  6180. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  6181. "x x x x x x x x x x x x x x x i";
  6182. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  6183. "x x x x x x x x x x x x x x x o";
  6184. min_write_delay = 4500;
  6185. max_write_delay = 4500;
  6186. ;
  6187. memory "calibration"
  6188. size = 1;
  6189. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  6190. "0 0 0 0 0 0 0 0 o o o o o o o o";
  6191. ;
  6192. ;
  6193. #------------------------------------------------------------
  6194. # ATtiny461
  6195. #------------------------------------------------------------
  6196. # Close to ATtiny261
  6197. part
  6198. id = "t461";
  6199. desc = "ATTINY461";
  6200. has_debugwire = yes;
  6201. flash_instr = 0xB4, 0x00, 0x10;
  6202. eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
  6203. 0xBC, 0x00, 0xB4, 0x00, 0xBA, 0x0D, 0xBB, 0xBC,
  6204. 0x99, 0xE1, 0xBB, 0xAC;
  6205. # stk500_devcode = 0x21;
  6206. # avr910_devcode = 0x5e;
  6207. signature = 0x1e 0x92 0x08;
  6208. pagel = 0xb3;
  6209. bs2 = 0xb2;
  6210. chip_erase_delay = 4000;
  6211. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  6212. "x x x x x x x x x x x x x x x x";
  6213. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  6214. "x x x x x x x x x x x x x x x x";
  6215. timeout = 200;
  6216. stabdelay = 100;
  6217. cmdexedelay = 25;
  6218. synchloops = 32;
  6219. bytedelay = 0;
  6220. pollindex = 3;
  6221. pollvalue = 0x53;
  6222. predelay = 1;
  6223. postdelay = 1;
  6224. pollmethod = 0;
  6225. pp_controlstack =
  6226. 0xC4, 0xE4, 0xC4, 0xE4, 0xCC, 0xEC, 0xCC, 0xEC,
  6227. 0xD4, 0xF4, 0xD4, 0xF4, 0xDC, 0xFC, 0xDC, 0xFC,
  6228. 0xC8, 0xE8, 0xD8, 0xF8, 0x4C, 0x6C, 0x5C, 0x7C,
  6229. 0xEC, 0xBC, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00;
  6230. hventerstabdelay = 100;
  6231. progmodedelay = 0;
  6232. latchcycles = 5;
  6233. togglevtg = 1;
  6234. poweroffdelay = 15;
  6235. resetdelayms = 2;
  6236. resetdelayus = 0;
  6237. hvleavestabdelay = 15;
  6238. chiperasepulsewidth = 0;
  6239. chiperasepolltimeout = 10;
  6240. programfusepulsewidth = 0;
  6241. programfusepolltimeout = 5;
  6242. programlockpulsewidth = 0;
  6243. programlockpolltimeout = 5;
  6244. memory "eeprom"
  6245. paged = no;
  6246. size = 256;
  6247. page_size = 4;
  6248. num_pages = 64;
  6249. min_write_delay = 4000;
  6250. max_write_delay = 4000;
  6251. readback_p1 = 0xff;
  6252. readback_p2 = 0xff;
  6253. read = " 1 0 1 0 0 0 0 0 x x x x x x x x",
  6254. "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  6255. write = " 1 1 0 0 0 0 0 0 x x x x x x x x",
  6256. "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  6257. loadpage_lo = " 1 1 0 0 0 0 0 1",
  6258. " 0 0 0 0 0 0 0 0",
  6259. " 0 0 0 0 0 0 a1 a0",
  6260. " i i i i i i i i";
  6261. writepage = " 1 1 0 0 0 0 1 0",
  6262. " 0 0 x x x x x x",
  6263. " a7 a6 a5 a4 a3 a2 0 0",
  6264. " x x x x x x x x";
  6265. mode = 0x41;
  6266. delay = 10;
  6267. blocksize = 4;
  6268. readsize = 256;
  6269. ;
  6270. memory "flash"
  6271. paged = yes;
  6272. size = 4096;
  6273. page_size = 64;
  6274. num_pages = 64;
  6275. min_write_delay = 4500;
  6276. max_write_delay = 4500;
  6277. readback_p1 = 0xff;
  6278. readback_p2 = 0xff;
  6279. read_lo = " 0 0 1 0 0 0 0 0",
  6280. " x x x x x a10 a9 a8",
  6281. " a7 a6 a5 a4 a3 a2 a1 a0",
  6282. " o o o o o o o o";
  6283. read_hi = " 0 0 1 0 1 0 0 0",
  6284. " x x x x x a10 a9 a8",
  6285. " a7 a6 a5 a4 a3 a2 a1 a0",
  6286. " o o o o o o o o";
  6287. loadpage_lo = " 0 1 0 0 0 0 0 0",
  6288. " x x x x x x x x",
  6289. " x x x a4 a3 a2 a1 a0",
  6290. " i i i i i i i i";
  6291. loadpage_hi = " 0 1 0 0 1 0 0 0",
  6292. " x x x x x x x x",
  6293. " x x x a4 a3 a2 a1 a0",
  6294. " i i i i i i i i";
  6295. writepage = " 0 1 0 0 1 1 0 0",
  6296. " x x x x x a10 a9 a8",
  6297. " a7 a6 a5 x x x x x",
  6298. " x x x x x x x x";
  6299. mode = 0x41;
  6300. delay = 6;
  6301. blocksize = 64;
  6302. readsize = 256;
  6303. ;
  6304. memory "signature"
  6305. size = 3;
  6306. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  6307. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  6308. ;
  6309. memory "lock"
  6310. size = 1;
  6311. read = "0 1 0 1 1 0 0 0 x x x x x x x x",
  6312. "x x x x x x x x x x x x x x o o";
  6313. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 1 i i",
  6314. "x x x x x x x x x x x x x x x x";
  6315. min_write_delay = 4500;
  6316. max_write_delay = 4500;
  6317. ;
  6318. memory "lfuse"
  6319. size = 1;
  6320. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  6321. "x x x x x x x x i i i i i i i i";
  6322. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  6323. "x x x x x x x x o o o o o o o o";
  6324. min_write_delay = 4500;
  6325. max_write_delay = 4500;
  6326. ;
  6327. memory "hfuse"
  6328. size = 1;
  6329. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  6330. "x x x x x x x x i i i i i i i i";
  6331. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  6332. "x x x x x x x x o o o o o o o o";
  6333. min_write_delay = 4500;
  6334. max_write_delay = 4500;
  6335. ;
  6336. memory "efuse"
  6337. size = 1;
  6338. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  6339. "x x x x x x x x x x x x x x x i";
  6340. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  6341. "x x x x x x x x x x x x x x x o";
  6342. min_write_delay = 4500;
  6343. max_write_delay = 4500;
  6344. ;
  6345. memory "calibration"
  6346. size = 1;
  6347. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  6348. "0 0 0 0 0 0 0 0 o o o o o o o o";
  6349. ;
  6350. ;
  6351. #------------------------------------------------------------
  6352. # ATtiny861
  6353. #------------------------------------------------------------
  6354. # Close to ATtiny461
  6355. part
  6356. id = "t861";
  6357. desc = "ATTINY861";
  6358. has_debugwire = yes;
  6359. flash_instr = 0xB4, 0x00, 0x10;
  6360. eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
  6361. 0xBC, 0x00, 0xB4, 0x00, 0xBA, 0x0D, 0xBB, 0xBC,
  6362. 0x99, 0xE1, 0xBB, 0xAC;
  6363. # stk500_devcode = 0x21;
  6364. # avr910_devcode = 0x5e;
  6365. signature = 0x1e 0x93 0x0d;
  6366. pagel = 0xb3;
  6367. bs2 = 0xb2;
  6368. chip_erase_delay = 4000;
  6369. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  6370. "x x x x x x x x x x x x x x x x";
  6371. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  6372. "x x x x x x x x x x x x x x x x";
  6373. timeout = 200;
  6374. stabdelay = 100;
  6375. cmdexedelay = 25;
  6376. synchloops = 32;
  6377. bytedelay = 0;
  6378. pollindex = 3;
  6379. pollvalue = 0x53;
  6380. predelay = 1;
  6381. postdelay = 1;
  6382. pollmethod = 0;
  6383. pp_controlstack =
  6384. 0xC4, 0xE4, 0xC4, 0xE4, 0xCC, 0xEC, 0xCC, 0xEC,
  6385. 0xD4, 0xF4, 0xD4, 0xF4, 0xDC, 0xFC, 0xDC, 0xFC,
  6386. 0xC8, 0xE8, 0xD8, 0xF8, 0x4C, 0x6C, 0x5C, 0x7C,
  6387. 0xEC, 0xBC, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00;
  6388. hventerstabdelay = 100;
  6389. progmodedelay = 0;
  6390. latchcycles = 5;
  6391. togglevtg = 1;
  6392. poweroffdelay = 15;
  6393. resetdelayms = 2;
  6394. resetdelayus = 0;
  6395. hvleavestabdelay = 15;
  6396. chiperasepulsewidth = 0;
  6397. chiperasepolltimeout = 10;
  6398. programfusepulsewidth = 0;
  6399. programfusepolltimeout = 5;
  6400. programlockpulsewidth = 0;
  6401. programlockpolltimeout = 5;
  6402. memory "eeprom"
  6403. paged = no;
  6404. size = 512;
  6405. num_pages = 128;
  6406. page_size = 4;
  6407. min_write_delay = 4000;
  6408. max_write_delay = 4000;
  6409. readback_p1 = 0xff;
  6410. readback_p2 = 0xff;
  6411. read = " 1 0 1 0 0 0 0 0 x x x x x x x a8",
  6412. "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  6413. write = " 1 1 0 0 0 0 0 0 x x x x x x x a8",
  6414. "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  6415. loadpage_lo = " 1 1 0 0 0 0 0 1",
  6416. " 0 0 0 0 0 0 0 0",
  6417. " 0 0 0 0 0 0 a1 a0",
  6418. " i i i i i i i i";
  6419. writepage = " 1 1 0 0 0 0 1 0",
  6420. " 0 0 x x x x x a8",
  6421. " a7 a6 a5 a4 a3 a2 0 0",
  6422. " x x x x x x x x";
  6423. mode = 0x41;
  6424. delay = 10;
  6425. blocksize = 4;
  6426. readsize = 256;
  6427. ;
  6428. memory "flash"
  6429. paged = yes;
  6430. size = 8192;
  6431. page_size = 64;
  6432. num_pages = 128;
  6433. min_write_delay = 4500;
  6434. max_write_delay = 4500;
  6435. readback_p1 = 0xff;
  6436. readback_p2 = 0xff;
  6437. read_lo = " 0 0 1 0 0 0 0 0",
  6438. " x x x x a11 a10 a9 a8",
  6439. " a7 a6 a5 a4 a3 a2 a1 a0",
  6440. " o o o o o o o o";
  6441. read_hi = " 0 0 1 0 1 0 0 0",
  6442. " x x x x a11 a10 a9 a8",
  6443. " a7 a6 a5 a4 a3 a2 a1 a0",
  6444. " o o o o o o o o";
  6445. loadpage_lo = " 0 1 0 0 0 0 0 0",
  6446. " x x x x x x x x",
  6447. " x x x a4 a3 a2 a1 a0",
  6448. " i i i i i i i i";
  6449. loadpage_hi = " 0 1 0 0 1 0 0 0",
  6450. " x x x x x x x x",
  6451. " x x x a4 a3 a2 a1 a0",
  6452. " i i i i i i i i";
  6453. writepage = " 0 1 0 0 1 1 0 0",
  6454. " x x x x a11 a10 a9 a8",
  6455. " a7 a6 a5 x x x x x",
  6456. " x x x x x x x x";
  6457. mode = 0x41;
  6458. delay = 6;
  6459. blocksize = 64;
  6460. readsize = 256;
  6461. ;
  6462. memory "signature"
  6463. size = 3;
  6464. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  6465. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  6466. ;
  6467. memory "lock"
  6468. size = 1;
  6469. read = "0 1 0 1 1 0 0 0 x x x x x x x x",
  6470. "x x x x x x x x x x x x x x o o";
  6471. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 1 i i",
  6472. "x x x x x x x x x x x x x x x x";
  6473. min_write_delay = 4500;
  6474. max_write_delay = 4500;
  6475. ;
  6476. memory "lfuse"
  6477. size = 1;
  6478. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  6479. "x x x x x x x x i i i i i i i i";
  6480. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  6481. "x x x x x x x x o o o o o o o o";
  6482. min_write_delay = 4500;
  6483. max_write_delay = 4500;
  6484. ;
  6485. memory "hfuse"
  6486. size = 1;
  6487. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  6488. "x x x x x x x x i i i i i i i i";
  6489. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  6490. "x x x x x x x x o o o o o o o o";
  6491. min_write_delay = 4500;
  6492. max_write_delay = 4500;
  6493. ;
  6494. memory "efuse"
  6495. size = 1;
  6496. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  6497. "x x x x x x x x x x x x x x x i";
  6498. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  6499. "x x x x x x x x x x x x x x x o";
  6500. min_write_delay = 4500;
  6501. max_write_delay = 4500;
  6502. ;
  6503. memory "calibration"
  6504. size = 1;
  6505. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  6506. "0 0 0 0 0 0 0 0 o o o o o o o o";
  6507. ;
  6508. ;
  6509. #------------------------------------------------------------
  6510. # ATmega48
  6511. #------------------------------------------------------------
  6512. part
  6513. id = "m48";
  6514. desc = "ATMEGA48";
  6515. has_debugwire = yes;
  6516. flash_instr = 0xB6, 0x01, 0x11;
  6517. eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
  6518. 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
  6519. 0x99, 0xF9, 0xBB, 0xAF;
  6520. stk500_devcode = 0x59;
  6521. # avr910_devcode = 0x;
  6522. signature = 0x1e 0x92 0x05;
  6523. pagel = 0xd7;
  6524. bs2 = 0xc2;
  6525. chip_erase_delay = 45000;
  6526. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  6527. "x x x x x x x x x x x x x x x x";
  6528. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  6529. "x x x x x x x x x x x x x x x x";
  6530. timeout = 200;
  6531. stabdelay = 100;
  6532. cmdexedelay = 25;
  6533. synchloops = 32;
  6534. bytedelay = 0;
  6535. pollindex = 3;
  6536. pollvalue = 0x53;
  6537. predelay = 1;
  6538. postdelay = 1;
  6539. pollmethod = 1;
  6540. pp_controlstack =
  6541. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  6542. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  6543. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  6544. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  6545. hventerstabdelay = 100;
  6546. progmodedelay = 0;
  6547. latchcycles = 5;
  6548. togglevtg = 1;
  6549. poweroffdelay = 15;
  6550. resetdelayms = 1;
  6551. resetdelayus = 0;
  6552. hvleavestabdelay = 15;
  6553. resetdelay = 15;
  6554. chiperasepulsewidth = 0;
  6555. chiperasepolltimeout = 10;
  6556. programfusepulsewidth = 0;
  6557. programfusepolltimeout = 5;
  6558. programlockpulsewidth = 0;
  6559. programlockpolltimeout = 5;
  6560. memory "eeprom"
  6561. paged = no;
  6562. page_size = 4;
  6563. size = 256;
  6564. min_write_delay = 3600;
  6565. max_write_delay = 3600;
  6566. readback_p1 = 0xff;
  6567. readback_p2 = 0xff;
  6568. read = " 1 0 1 0 0 0 0 0",
  6569. " 0 0 0 x x x x x",
  6570. " a7 a6 a5 a4 a3 a2 a1 a0",
  6571. " o o o o o o o o";
  6572. write = " 1 1 0 0 0 0 0 0",
  6573. " 0 0 0 x x x x x",
  6574. " a7 a6 a5 a4 a3 a2 a1 a0",
  6575. " i i i i i i i i";
  6576. loadpage_lo = " 1 1 0 0 0 0 0 1",
  6577. " 0 0 0 0 0 0 0 0",
  6578. " 0 0 0 0 0 0 a1 a0",
  6579. " i i i i i i i i";
  6580. writepage = " 1 1 0 0 0 0 1 0",
  6581. " 0 0 x x x x x x",
  6582. " a7 a6 a5 a4 a3 a2 0 0",
  6583. " x x x x x x x x";
  6584. mode = 0x41;
  6585. delay = 5;
  6586. blocksize = 4;
  6587. readsize = 256;
  6588. ;
  6589. memory "flash"
  6590. paged = yes;
  6591. size = 4096;
  6592. page_size = 64;
  6593. num_pages = 64;
  6594. min_write_delay = 4500;
  6595. max_write_delay = 4500;
  6596. readback_p1 = 0x00;
  6597. readback_p2 = 0x00;
  6598. read_lo = " 0 0 1 0 0 0 0 0",
  6599. " 0 0 0 0 0 a10 a9 a8",
  6600. " a7 a6 a5 a4 a3 a2 a1 a0",
  6601. " o o o o o o o o";
  6602. read_hi = " 0 0 1 0 1 0 0 0",
  6603. " 0 0 0 0 0 a10 a9 a8",
  6604. " a7 a6 a5 a4 a3 a2 a1 a0",
  6605. " o o o o o o o o";
  6606. loadpage_lo = " 0 1 0 0 0 0 0 0",
  6607. " 0 0 0 x x x x x",
  6608. " x x x a4 a3 a2 a1 a0",
  6609. " i i i i i i i i";
  6610. loadpage_hi = " 0 1 0 0 1 0 0 0",
  6611. " 0 0 0 x x x x x",
  6612. " x x x a4 a3 a2 a1 a0",
  6613. " i i i i i i i i";
  6614. writepage = " 0 1 0 0 1 1 0 0",
  6615. " 0 0 0 0 0 a10 a9 a8",
  6616. " a7 a6 a5 x x x x x",
  6617. " x x x x x x x x";
  6618. mode = 0x41;
  6619. delay = 6;
  6620. blocksize = 64;
  6621. readsize = 256;
  6622. ;
  6623. memory "lfuse"
  6624. size = 1;
  6625. min_write_delay = 4500;
  6626. max_write_delay = 4500;
  6627. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  6628. "x x x x x x x x o o o o o o o o";
  6629. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  6630. "x x x x x x x x i i i i i i i i";
  6631. ;
  6632. memory "hfuse"
  6633. size = 1;
  6634. min_write_delay = 4500;
  6635. max_write_delay = 4500;
  6636. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  6637. "x x x x x x x x o o o o o o o o";
  6638. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  6639. "x x x x x x x x i i i i i i i i";
  6640. ;
  6641. memory "efuse"
  6642. size = 1;
  6643. min_write_delay = 4500;
  6644. max_write_delay = 4500;
  6645. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  6646. "x x x x x x x x x x x x x x x o";
  6647. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  6648. "x x x x x x x x x x x x x x x i";
  6649. ;
  6650. memory "lock"
  6651. size = 1;
  6652. min_write_delay = 4500;
  6653. max_write_delay = 4500;
  6654. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  6655. "x x x x x x x x x x o o o o o o";
  6656. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  6657. "x x x x x x x x 1 1 i i i i i i";
  6658. ;
  6659. memory "calibration"
  6660. size = 1;
  6661. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  6662. "0 0 0 0 0 0 0 0 o o o o o o o o";
  6663. ;
  6664. memory "signature"
  6665. size = 3;
  6666. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  6667. "x x x x x x a1 a0 o o o o o o o o";
  6668. ;
  6669. ;
  6670. #------------------------------------------------------------
  6671. # ATmega88
  6672. #------------------------------------------------------------
  6673. part
  6674. id = "m88";
  6675. desc = "ATMEGA88";
  6676. has_debugwire = yes;
  6677. flash_instr = 0xB6, 0x01, 0x11;
  6678. eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
  6679. 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
  6680. 0x99, 0xF9, 0xBB, 0xAF;
  6681. stk500_devcode = 0x73;
  6682. # avr910_devcode = 0x;
  6683. signature = 0x1e 0x93 0x0a;
  6684. pagel = 0xd7;
  6685. bs2 = 0xc2;
  6686. chip_erase_delay = 9000;
  6687. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  6688. "x x x x x x x x x x x x x x x x";
  6689. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  6690. "x x x x x x x x x x x x x x x x";
  6691. timeout = 200;
  6692. stabdelay = 100;
  6693. cmdexedelay = 25;
  6694. synchloops = 32;
  6695. bytedelay = 0;
  6696. pollindex = 3;
  6697. pollvalue = 0x53;
  6698. predelay = 1;
  6699. postdelay = 1;
  6700. pollmethod = 1;
  6701. pp_controlstack =
  6702. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  6703. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  6704. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  6705. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  6706. hventerstabdelay = 100;
  6707. progmodedelay = 0;
  6708. latchcycles = 5;
  6709. togglevtg = 1;
  6710. poweroffdelay = 15;
  6711. resetdelayms = 1;
  6712. resetdelayus = 0;
  6713. hvleavestabdelay = 15;
  6714. resetdelay = 15;
  6715. chiperasepulsewidth = 0;
  6716. chiperasepolltimeout = 10;
  6717. programfusepulsewidth = 0;
  6718. programfusepolltimeout = 5;
  6719. programlockpulsewidth = 0;
  6720. programlockpolltimeout = 5;
  6721. memory "eeprom"
  6722. paged = no;
  6723. page_size = 4;
  6724. size = 512;
  6725. min_write_delay = 3600;
  6726. max_write_delay = 3600;
  6727. readback_p1 = 0xff;
  6728. readback_p2 = 0xff;
  6729. read = " 1 0 1 0 0 0 0 0",
  6730. " 0 0 0 x x x x a8",
  6731. " a7 a6 a5 a4 a3 a2 a1 a0",
  6732. " o o o o o o o o";
  6733. write = " 1 1 0 0 0 0 0 0",
  6734. " 0 0 0 x x x x a8",
  6735. " a7 a6 a5 a4 a3 a2 a1 a0",
  6736. " i i i i i i i i";
  6737. loadpage_lo = " 1 1 0 0 0 0 0 1",
  6738. " 0 0 0 0 0 0 0 0",
  6739. " 0 0 0 0 0 0 a1 a0",
  6740. " i i i i i i i i";
  6741. writepage = " 1 1 0 0 0 0 1 0",
  6742. " 0 0 x x x x x a8",
  6743. " a7 a6 a5 a4 a3 a2 0 0",
  6744. " x x x x x x x x";
  6745. mode = 0x41;
  6746. delay = 5;
  6747. blocksize = 4;
  6748. readsize = 256;
  6749. ;
  6750. memory "flash"
  6751. paged = yes;
  6752. size = 8192;
  6753. page_size = 64;
  6754. num_pages = 128;
  6755. min_write_delay = 4500;
  6756. max_write_delay = 4500;
  6757. readback_p1 = 0xff;
  6758. readback_p2 = 0xff;
  6759. read_lo = " 0 0 1 0 0 0 0 0",
  6760. " 0 0 0 0 a11 a10 a9 a8",
  6761. " a7 a6 a5 a4 a3 a2 a1 a0",
  6762. " o o o o o o o o";
  6763. read_hi = " 0 0 1 0 1 0 0 0",
  6764. " 0 0 0 0 a11 a10 a9 a8",
  6765. " a7 a6 a5 a4 a3 a2 a1 a0",
  6766. " o o o o o o o o";
  6767. loadpage_lo = " 0 1 0 0 0 0 0 0",
  6768. " 0 0 0 x x x x x",
  6769. " x x x a4 a3 a2 a1 a0",
  6770. " i i i i i i i i";
  6771. loadpage_hi = " 0 1 0 0 1 0 0 0",
  6772. " 0 0 0 x x x x x",
  6773. " x x x a4 a3 a2 a1 a0",
  6774. " i i i i i i i i";
  6775. writepage = " 0 1 0 0 1 1 0 0",
  6776. " 0 0 0 0 a11 a10 a9 a8",
  6777. " a7 a6 a5 x x x x x",
  6778. " x x x x x x x x";
  6779. mode = 0x41;
  6780. delay = 6;
  6781. blocksize = 64;
  6782. readsize = 256;
  6783. ;
  6784. memory "lfuse"
  6785. size = 1;
  6786. min_write_delay = 4500;
  6787. max_write_delay = 4500;
  6788. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  6789. "x x x x x x x x o o o o o o o o";
  6790. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  6791. "x x x x x x x x i i i i i i i i";
  6792. ;
  6793. memory "hfuse"
  6794. size = 1;
  6795. min_write_delay = 4500;
  6796. max_write_delay = 4500;
  6797. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  6798. "x x x x x x x x o o o o o o o o";
  6799. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  6800. "x x x x x x x x i i i i i i i i";
  6801. ;
  6802. memory "efuse"
  6803. size = 1;
  6804. min_write_delay = 4500;
  6805. max_write_delay = 4500;
  6806. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  6807. "x x x x x x x x x x x x x o o o";
  6808. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  6809. "x x x x x x x x x x x x x i i i";
  6810. ;
  6811. memory "lock"
  6812. size = 1;
  6813. min_write_delay = 4500;
  6814. max_write_delay = 4500;
  6815. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  6816. "x x x x x x x x x x o o o o o o";
  6817. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  6818. "x x x x x x x x 1 1 i i i i i i";
  6819. ;
  6820. memory "calibration"
  6821. size = 1;
  6822. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  6823. "0 0 0 0 0 0 0 0 o o o o o o o o";
  6824. ;
  6825. memory "signature"
  6826. size = 3;
  6827. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  6828. "x x x x x x a1 a0 o o o o o o o o";
  6829. ;
  6830. ;
  6831. #------------------------------------------------------------
  6832. # ATmega168
  6833. #------------------------------------------------------------
  6834. part
  6835. id = "m168";
  6836. desc = "ATMEGA168";
  6837. has_debugwire = yes;
  6838. flash_instr = 0xB6, 0x01, 0x11;
  6839. eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
  6840. 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
  6841. 0x99, 0xF9, 0xBB, 0xAF;
  6842. stk500_devcode = 0x86;
  6843. # avr910_devcode = 0x;
  6844. signature = 0x1e 0x94 0x06;
  6845. pagel = 0xd7;
  6846. bs2 = 0xc2;
  6847. chip_erase_delay = 9000;
  6848. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  6849. "x x x x x x x x x x x x x x x x";
  6850. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  6851. "x x x x x x x x x x x x x x x x";
  6852. timeout = 200;
  6853. stabdelay = 100;
  6854. cmdexedelay = 25;
  6855. synchloops = 32;
  6856. bytedelay = 0;
  6857. pollindex = 3;
  6858. pollvalue = 0x53;
  6859. predelay = 1;
  6860. postdelay = 1;
  6861. pollmethod = 1;
  6862. pp_controlstack =
  6863. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  6864. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  6865. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  6866. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  6867. hventerstabdelay = 100;
  6868. progmodedelay = 0;
  6869. latchcycles = 5;
  6870. togglevtg = 1;
  6871. poweroffdelay = 15;
  6872. resetdelayms = 1;
  6873. resetdelayus = 0;
  6874. hvleavestabdelay = 15;
  6875. resetdelay = 15;
  6876. chiperasepulsewidth = 0;
  6877. chiperasepolltimeout = 10;
  6878. programfusepulsewidth = 0;
  6879. programfusepolltimeout = 5;
  6880. programlockpulsewidth = 0;
  6881. programlockpolltimeout = 5;
  6882. memory "eeprom"
  6883. paged = no;
  6884. page_size = 4;
  6885. size = 512;
  6886. min_write_delay = 3600;
  6887. max_write_delay = 3600;
  6888. readback_p1 = 0xff;
  6889. readback_p2 = 0xff;
  6890. read = " 1 0 1 0 0 0 0 0",
  6891. " 0 0 0 x x x x a8",
  6892. " a7 a6 a5 a4 a3 a2 a1 a0",
  6893. " o o o o o o o o";
  6894. write = " 1 1 0 0 0 0 0 0",
  6895. " 0 0 0 x x x x a8",
  6896. " a7 a6 a5 a4 a3 a2 a1 a0",
  6897. " i i i i i i i i";
  6898. loadpage_lo = " 1 1 0 0 0 0 0 1",
  6899. " 0 0 0 0 0 0 0 0",
  6900. " 0 0 0 0 0 0 a1 a0",
  6901. " i i i i i i i i";
  6902. writepage = " 1 1 0 0 0 0 1 0",
  6903. " 0 0 x x x x x a8",
  6904. " a7 a6 a5 a4 a3 a2 0 0",
  6905. " x x x x x x x x";
  6906. mode = 0x41;
  6907. delay = 5;
  6908. blocksize = 4;
  6909. readsize = 256;
  6910. ;
  6911. memory "flash"
  6912. paged = yes;
  6913. size = 16384;
  6914. page_size = 128;
  6915. num_pages = 128;
  6916. min_write_delay = 4500;
  6917. max_write_delay = 4500;
  6918. readback_p1 = 0xff;
  6919. readback_p2 = 0xff;
  6920. read_lo = " 0 0 1 0 0 0 0 0",
  6921. " 0 0 0 a12 a11 a10 a9 a8",
  6922. " a7 a6 a5 a4 a3 a2 a1 a0",
  6923. " o o o o o o o o";
  6924. read_hi = " 0 0 1 0 1 0 0 0",
  6925. " 0 0 0 a12 a11 a10 a9 a8",
  6926. " a7 a6 a5 a4 a3 a2 a1 a0",
  6927. " o o o o o o o o";
  6928. loadpage_lo = " 0 1 0 0 0 0 0 0",
  6929. " 0 0 0 x x x x x",
  6930. " x x a5 a4 a3 a2 a1 a0",
  6931. " i i i i i i i i";
  6932. loadpage_hi = " 0 1 0 0 1 0 0 0",
  6933. " 0 0 0 x x x x x",
  6934. " x x a5 a4 a3 a2 a1 a0",
  6935. " i i i i i i i i";
  6936. writepage = " 0 1 0 0 1 1 0 0",
  6937. " 0 0 0 a12 a11 a10 a9 a8",
  6938. " a7 a6 x x x x x x",
  6939. " x x x x x x x x";
  6940. mode = 0x41;
  6941. delay = 6;
  6942. blocksize = 128;
  6943. readsize = 256;
  6944. ;
  6945. memory "lfuse"
  6946. size = 1;
  6947. min_write_delay = 4500;
  6948. max_write_delay = 4500;
  6949. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  6950. "x x x x x x x x o o o o o o o o";
  6951. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  6952. "x x x x x x x x i i i i i i i i";
  6953. ;
  6954. memory "hfuse"
  6955. size = 1;
  6956. min_write_delay = 4500;
  6957. max_write_delay = 4500;
  6958. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  6959. "x x x x x x x x o o o o o o o o";
  6960. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  6961. "x x x x x x x x i i i i i i i i";
  6962. ;
  6963. memory "efuse"
  6964. size = 1;
  6965. min_write_delay = 4500;
  6966. max_write_delay = 4500;
  6967. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  6968. "x x x x x x x x x x x x x o o o";
  6969. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  6970. "x x x x x x x x x x x x x i i i";
  6971. ;
  6972. memory "lock"
  6973. size = 1;
  6974. min_write_delay = 4500;
  6975. max_write_delay = 4500;
  6976. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  6977. "x x x x x x x x x x o o o o o o";
  6978. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  6979. "x x x x x x x x 1 1 i i i i i i";
  6980. ;
  6981. memory "calibration"
  6982. size = 1;
  6983. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  6984. "0 0 0 0 0 0 0 0 o o o o o o o o";
  6985. ;
  6986. memory "signature"
  6987. size = 3;
  6988. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  6989. "x x x x x x a1 a0 o o o o o o o o";
  6990. ;
  6991. ;
  6992. #------------------------------------------------------------
  6993. # ATtiny88
  6994. #------------------------------------------------------------
  6995. part
  6996. id = "t88";
  6997. desc = "attiny88";
  6998. has_debugwire = yes;
  6999. flash_instr = 0xB6, 0x01, 0x11;
  7000. eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
  7001. 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
  7002. 0x99, 0xF9, 0xBB, 0xAF;
  7003. stk500_devcode = 0x73;
  7004. # avr910_devcode = 0x;
  7005. signature = 0x1e 0x93 0x11;
  7006. pagel = 0xd7;
  7007. bs2 = 0xc2;
  7008. chip_erase_delay = 9000;
  7009. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  7010. "x x x x x x x x x x x x x x x x";
  7011. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  7012. "x x x x x x x x x x x x x x x x";
  7013. timeout = 200;
  7014. stabdelay = 100;
  7015. cmdexedelay = 25;
  7016. synchloops = 32;
  7017. bytedelay = 0;
  7018. pollindex = 3;
  7019. pollvalue = 0x53;
  7020. predelay = 1;
  7021. postdelay = 1;
  7022. pollmethod = 1;
  7023. pp_controlstack =
  7024. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  7025. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  7026. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  7027. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  7028. hventerstabdelay = 100;
  7029. progmodedelay = 0;
  7030. latchcycles = 5;
  7031. togglevtg = 1;
  7032. poweroffdelay = 15;
  7033. resetdelayms = 1;
  7034. resetdelayus = 0;
  7035. hvleavestabdelay = 15;
  7036. resetdelay = 15;
  7037. chiperasepulsewidth = 0;
  7038. chiperasepolltimeout = 10;
  7039. programfusepulsewidth = 0;
  7040. programfusepolltimeout = 5;
  7041. programlockpulsewidth = 0;
  7042. programlockpolltimeout = 5;
  7043. memory "eeprom"
  7044. paged = no;
  7045. page_size = 4;
  7046. size = 64;
  7047. min_write_delay = 3600;
  7048. max_write_delay = 3600;
  7049. readback_p1 = 0xff;
  7050. readback_p2 = 0xff;
  7051. read = " 1 0 1 0 0 0 0 0",
  7052. " 0 0 0 x x x x x",
  7053. " x a6 a5 a4 a3 a2 a1 a0",
  7054. " o o o o o o o o";
  7055. write = " 1 1 0 0 0 0 0 0",
  7056. " 0 0 0 x x x x x",
  7057. " x a6 a5 a4 a3 a2 a1 a0",
  7058. " i i i i i i i i";
  7059. loadpage_lo = " 1 1 0 0 0 0 0 1",
  7060. " 0 0 0 0 0 0 0 0",
  7061. " 0 0 0 0 0 0 a1 a0",
  7062. " i i i i i i i i";
  7063. writepage = " 1 1 0 0 0 0 1 0",
  7064. " 0 0 x x x x x x",
  7065. " x a6 a5 a4 a3 a2 0 0",
  7066. " x x x x x x x x";
  7067. mode = 0x41;
  7068. delay = 5;
  7069. blocksize = 4;
  7070. readsize = 64;
  7071. ;
  7072. memory "flash"
  7073. paged = yes;
  7074. size = 8192;
  7075. page_size = 64;
  7076. num_pages = 128;
  7077. min_write_delay = 4500;
  7078. max_write_delay = 4500;
  7079. readback_p1 = 0xff;
  7080. readback_p2 = 0xff;
  7081. read_lo = " 0 0 1 0 0 0 0 0",
  7082. " 0 0 0 0 a11 a10 a9 a8",
  7083. " a7 a6 a5 a4 a3 a2 a1 a0",
  7084. " o o o o o o o o";
  7085. read_hi = " 0 0 1 0 1 0 0 0",
  7086. " 0 0 0 0 a11 a10 a9 a8",
  7087. " a7 a6 a5 a4 a3 a2 a1 a0",
  7088. " o o o o o o o o";
  7089. loadpage_lo = " 0 1 0 0 0 0 0 0",
  7090. " 0 0 0 x x x x x",
  7091. " x x x a4 a3 a2 a1 a0",
  7092. " i i i i i i i i";
  7093. loadpage_hi = " 0 1 0 0 1 0 0 0",
  7094. " 0 0 0 x x x x x",
  7095. " x x x a4 a3 a2 a1 a0",
  7096. " i i i i i i i i";
  7097. writepage = " 0 1 0 0 1 1 0 0",
  7098. " 0 0 0 0 a11 a10 a9 a8",
  7099. " a7 a6 a5 x x x x x",
  7100. " x x x x x x x x";
  7101. mode = 0x41;
  7102. delay = 6;
  7103. blocksize = 64;
  7104. readsize = 256;
  7105. ;
  7106. memory "lfuse"
  7107. size = 1;
  7108. min_write_delay = 4500;
  7109. max_write_delay = 4500;
  7110. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  7111. "x x x x x x x x o o o o o o o o";
  7112. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  7113. "x x x x x x x x i i i i i i i i";
  7114. ;
  7115. memory "hfuse"
  7116. size = 1;
  7117. min_write_delay = 4500;
  7118. max_write_delay = 4500;
  7119. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  7120. "x x x x x x x x o o o o o o o o";
  7121. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  7122. "x x x x x x x x i i i i i i i i";
  7123. ;
  7124. memory "efuse"
  7125. size = 1;
  7126. min_write_delay = 4500;
  7127. max_write_delay = 4500;
  7128. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  7129. "x x x x x x x x x x x x x o o o";
  7130. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  7131. "x x x x x x x x x x x x x x x i";
  7132. ;
  7133. memory "lock"
  7134. size = 1;
  7135. min_write_delay = 4500;
  7136. max_write_delay = 4500;
  7137. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  7138. "x x x x x x x x x x o o o o o o";
  7139. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  7140. "x x x x x x x x 1 1 i i i i i i";
  7141. ;
  7142. memory "calibration"
  7143. size = 1;
  7144. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  7145. "0 0 0 0 0 0 0 0 o o o o o o o o";
  7146. ;
  7147. memory "signature"
  7148. size = 3;
  7149. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  7150. "x x x x x x a1 a0 o o o o o o o o";
  7151. ;
  7152. ;
  7153. #------------------------------------------------------------
  7154. # ATmega328P
  7155. #------------------------------------------------------------
  7156. part
  7157. id = "m328p";
  7158. desc = "ATMEGA328P";
  7159. has_debugwire = yes;
  7160. flash_instr = 0xB6, 0x01, 0x11;
  7161. eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
  7162. 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
  7163. 0x99, 0xF9, 0xBB, 0xAF;
  7164. stk500_devcode = 0x86;
  7165. # avr910_devcode = 0x;
  7166. signature = 0x1e 0x95 0x0F;
  7167. pagel = 0xd7;
  7168. bs2 = 0xc2;
  7169. chip_erase_delay = 9000;
  7170. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  7171. "x x x x x x x x x x x x x x x x";
  7172. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  7173. "x x x x x x x x x x x x x x x x";
  7174. timeout = 200;
  7175. stabdelay = 100;
  7176. cmdexedelay = 25;
  7177. synchloops = 32;
  7178. bytedelay = 0;
  7179. pollindex = 3;
  7180. pollvalue = 0x53;
  7181. predelay = 1;
  7182. postdelay = 1;
  7183. pollmethod = 1;
  7184. pp_controlstack =
  7185. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  7186. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  7187. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  7188. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  7189. hventerstabdelay = 100;
  7190. progmodedelay = 0;
  7191. latchcycles = 5;
  7192. togglevtg = 1;
  7193. poweroffdelay = 15;
  7194. resetdelayms = 1;
  7195. resetdelayus = 0;
  7196. hvleavestabdelay = 15;
  7197. resetdelay = 15;
  7198. chiperasepulsewidth = 0;
  7199. chiperasepolltimeout = 10;
  7200. programfusepulsewidth = 0;
  7201. programfusepolltimeout = 5;
  7202. programlockpulsewidth = 0;
  7203. programlockpolltimeout = 5;
  7204. memory "eeprom"
  7205. paged = no;
  7206. page_size = 4;
  7207. size = 1024;
  7208. min_write_delay = 3600;
  7209. max_write_delay = 3600;
  7210. readback_p1 = 0xff;
  7211. readback_p2 = 0xff;
  7212. read = " 1 0 1 0 0 0 0 0",
  7213. " 0 0 0 x x x a9 a8",
  7214. " a7 a6 a5 a4 a3 a2 a1 a0",
  7215. " o o o o o o o o";
  7216. write = " 1 1 0 0 0 0 0 0",
  7217. " 0 0 0 x x x a9 a8",
  7218. " a7 a6 a5 a4 a3 a2 a1 a0",
  7219. " i i i i i i i i";
  7220. loadpage_lo = " 1 1 0 0 0 0 0 1",
  7221. " 0 0 0 0 0 0 0 0",
  7222. " 0 0 0 0 0 0 a1 a0",
  7223. " i i i i i i i i";
  7224. writepage = " 1 1 0 0 0 0 1 0",
  7225. " 0 0 x x x x a9 a8",
  7226. " a7 a6 a5 a4 a3 a2 0 0",
  7227. " x x x x x x x x";
  7228. mode = 0x41;
  7229. delay = 5;
  7230. blocksize = 4;
  7231. readsize = 256;
  7232. ;
  7233. memory "flash"
  7234. paged = yes;
  7235. size = 32768;
  7236. page_size = 128;
  7237. num_pages = 256;
  7238. min_write_delay = 4500;
  7239. max_write_delay = 4500;
  7240. readback_p1 = 0xff;
  7241. readback_p2 = 0xff;
  7242. read_lo = " 0 0 1 0 0 0 0 0",
  7243. " 0 0 a13 a12 a11 a10 a9 a8",
  7244. " a7 a6 a5 a4 a3 a2 a1 a0",
  7245. " o o o o o o o o";
  7246. read_hi = " 0 0 1 0 1 0 0 0",
  7247. " 0 0 a13 a12 a11 a10 a9 a8",
  7248. " a7 a6 a5 a4 a3 a2 a1 a0",
  7249. " o o o o o o o o";
  7250. loadpage_lo = " 0 1 0 0 0 0 0 0",
  7251. " 0 0 0 x x x x x",
  7252. " x x a5 a4 a3 a2 a1 a0",
  7253. " i i i i i i i i";
  7254. loadpage_hi = " 0 1 0 0 1 0 0 0",
  7255. " 0 0 0 x x x x x",
  7256. " x x a5 a4 a3 a2 a1 a0",
  7257. " i i i i i i i i";
  7258. writepage = " 0 1 0 0 1 1 0 0",
  7259. " 0 0 a13 a12 a11 a10 a9 a8",
  7260. " a7 a6 x x x x x x",
  7261. " x x x x x x x x";
  7262. mode = 0x41;
  7263. delay = 6;
  7264. blocksize = 128;
  7265. readsize = 256;
  7266. ;
  7267. memory "lfuse"
  7268. size = 1;
  7269. min_write_delay = 4500;
  7270. max_write_delay = 4500;
  7271. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  7272. "x x x x x x x x o o o o o o o o";
  7273. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  7274. "x x x x x x x x i i i i i i i i";
  7275. ;
  7276. memory "hfuse"
  7277. size = 1;
  7278. min_write_delay = 4500;
  7279. max_write_delay = 4500;
  7280. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  7281. "x x x x x x x x o o o o o o o o";
  7282. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  7283. "x x x x x x x x i i i i i i i i";
  7284. ;
  7285. memory "efuse"
  7286. size = 1;
  7287. min_write_delay = 4500;
  7288. max_write_delay = 4500;
  7289. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  7290. "x x x x x x x x x x x x x o o o";
  7291. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  7292. "x x x x x x x x x x x x x i i i";
  7293. ;
  7294. memory "lock"
  7295. size = 1;
  7296. min_write_delay = 4500;
  7297. max_write_delay = 4500;
  7298. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  7299. "x x x x x x x x x x o o o o o o";
  7300. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  7301. "x x x x x x x x 1 1 i i i i i i";
  7302. ;
  7303. memory "calibration"
  7304. size = 1;
  7305. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  7306. "0 0 0 0 0 0 0 0 o o o o o o o o";
  7307. ;
  7308. memory "signature"
  7309. size = 3;
  7310. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  7311. "x x x x x x a1 a0 o o o o o o o o";
  7312. ;
  7313. ;
  7314. #------------------------------------------------------------
  7315. # ATtiny2313
  7316. #------------------------------------------------------------
  7317. part
  7318. id = "t2313";
  7319. desc = "ATtiny2313";
  7320. has_debugwire = yes;
  7321. flash_instr = 0xB2, 0x0F, 0x1F;
  7322. eeprom_instr = 0xBB, 0xFE, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
  7323. 0xBA, 0x0F, 0xB2, 0x0F, 0xBA, 0x0D, 0xBB, 0xBC,
  7324. 0x99, 0xE1, 0xBB, 0xAC;
  7325. stk500_devcode = 0x23;
  7326. ## Use the ATtiny26 devcode:
  7327. avr910_devcode = 0x5e;
  7328. signature = 0x1e 0x91 0x0a;
  7329. pagel = 0xD4;
  7330. bs2 = 0xD6;
  7331. reset = io;
  7332. chip_erase_delay = 9000;
  7333. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  7334. "x x x x x x x x x x x x x x x x";
  7335. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  7336. "x x x x x x x x x x x x x x x x";
  7337. timeout = 200;
  7338. stabdelay = 100;
  7339. cmdexedelay = 25;
  7340. synchloops = 32;
  7341. bytedelay = 0;
  7342. pollindex = 3;
  7343. pollvalue = 0x53;
  7344. predelay = 1;
  7345. postdelay = 1;
  7346. pollmethod = 1;
  7347. pp_controlstack =
  7348. 0x0E, 0x1E, 0x0E, 0x1E, 0x2E, 0x3E, 0x2E, 0x3E,
  7349. 0x4E, 0x5E, 0x4E, 0x5E, 0x6E, 0x7E, 0x6E, 0x7E,
  7350. 0x26, 0x36, 0x66, 0x76, 0x2A, 0x3A, 0x6A, 0x7A,
  7351. 0x2E, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  7352. hventerstabdelay = 100;
  7353. progmodedelay = 0;
  7354. latchcycles = 5;
  7355. togglevtg = 1;
  7356. poweroffdelay = 15;
  7357. resetdelayms = 1;
  7358. resetdelayus = 0;
  7359. hvleavestabdelay = 15;
  7360. chiperasepulsewidth = 0;
  7361. chiperasepolltimeout = 10;
  7362. programfusepulsewidth = 0;
  7363. programfusepolltimeout = 5;
  7364. programlockpulsewidth = 0;
  7365. programlockpolltimeout = 5;
  7366. memory "eeprom"
  7367. size = 128;
  7368. paged = no;
  7369. page_size = 4;
  7370. min_write_delay = 4000;
  7371. max_write_delay = 4500;
  7372. readback_p1 = 0xff;
  7373. readback_p2 = 0xff;
  7374. read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x",
  7375. "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  7376. write = "1 1 0 0 0 0 0 0 0 0 0 x x x x x",
  7377. "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  7378. loadpage_lo = " 1 1 0 0 0 0 0 1",
  7379. " 0 0 0 0 0 0 0 0",
  7380. " 0 0 0 0 0 0 a1 a0",
  7381. " i i i i i i i i";
  7382. writepage = " 1 1 0 0 0 0 1 0",
  7383. " 0 0 x x x x x x",
  7384. " x a6 a5 a4 a3 a2 0 0",
  7385. " x x x x x x x x";
  7386. mode = 0x41;
  7387. delay = 6;
  7388. blocksize = 4;
  7389. readsize = 256;
  7390. ;
  7391. memory "flash"
  7392. paged = yes;
  7393. size = 2048;
  7394. page_size = 32;
  7395. num_pages = 64;
  7396. min_write_delay = 4500;
  7397. max_write_delay = 4500;
  7398. readback_p1 = 0xff;
  7399. readback_p2 = 0xff;
  7400. read_lo = " 0 0 1 0 0 0 0 0",
  7401. " 0 0 0 0 0 0 a9 a8",
  7402. " a7 a6 a5 a4 a3 a2 a1 a0",
  7403. " o o o o o o o o";
  7404. read_hi = " 0 0 1 0 1 0 0 0",
  7405. " 0 0 0 0 0 0 a9 a8",
  7406. " a7 a6 a5 a4 a3 a2 a1 a0",
  7407. " o o o o o o o o";
  7408. # The information in the data sheet of April/2004 is wrong, this works:
  7409. loadpage_lo = " 0 1 0 0 0 0 0 0",
  7410. " 0 0 0 x x x x x",
  7411. " x x x x a3 a2 a1 a0",
  7412. " i i i i i i i i";
  7413. # The information in the data sheet of April/2004 is wrong, this works:
  7414. loadpage_hi = " 0 1 0 0 1 0 0 0",
  7415. " 0 0 0 x x x x x",
  7416. " x x x x a3 a2 a1 a0",
  7417. " i i i i i i i i";
  7418. # The information in the data sheet of April/2004 is wrong, this works:
  7419. writepage = " 0 1 0 0 1 1 0 0",
  7420. " 0 0 0 0 0 0 a9 a8",
  7421. " a7 a6 a5 a4 x x x x",
  7422. " x x x x x x x x";
  7423. mode = 0x41;
  7424. delay = 6;
  7425. blocksize = 32;
  7426. readsize = 256;
  7427. ;
  7428. # ATtiny2313 has Signature Bytes: 0x1E 0x91 0x0A.
  7429. memory "signature"
  7430. size = 3;
  7431. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  7432. "x x x x x x a1 a0 o o o o o o o o";
  7433. ;
  7434. memory "lock"
  7435. size = 1;
  7436. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  7437. "x x x x x x x x 1 1 i i i i i i";
  7438. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  7439. "x x x x x x x x x x o o o o o o";
  7440. min_write_delay = 9000;
  7441. max_write_delay = 9000;
  7442. ;
  7443. memory "lfuse"
  7444. size = 1;
  7445. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  7446. "x x x x x x x x i i i i i i i i";
  7447. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  7448. "x x x x x x x x o o o o o o o o";
  7449. min_write_delay = 9000;
  7450. max_write_delay = 9000;
  7451. ;
  7452. memory "hfuse"
  7453. size = 1;
  7454. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  7455. "x x x x x x x x i i i i i i i i";
  7456. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  7457. "x x x x x x x x o o o o o o o o";
  7458. min_write_delay = 9000;
  7459. max_write_delay = 9000;
  7460. ;
  7461. memory "efuse"
  7462. size = 1;
  7463. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  7464. "x x x x x x x x x x x x x x x i";
  7465. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  7466. "x x x x x x x x o o o o o o o o";
  7467. min_write_delay = 9000;
  7468. max_write_delay = 9000;
  7469. ;
  7470. # The Tiny2313 has calibration data for both 4 MHz and 8 MHz.
  7471. # The information in the data sheet of April/2004 is wrong, this works:
  7472. memory "calibration"
  7473. size = 2;
  7474. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  7475. "0 0 0 0 0 0 0 a0 o o o o o o o o";
  7476. ;
  7477. ;
  7478. #------------------------------------------------------------
  7479. # AT90PWM2
  7480. #------------------------------------------------------------
  7481. part
  7482. id = "pwm2";
  7483. desc = "AT90PWM2";
  7484. has_debugwire = yes;
  7485. flash_instr = 0xB6, 0x01, 0x11;
  7486. eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
  7487. 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
  7488. 0x99, 0xF9, 0xBB, 0xAF;
  7489. stk500_devcode = 0x65;
  7490. ## avr910_devcode = ?;
  7491. signature = 0x1e 0x93 0x81;
  7492. pagel = 0xD8;
  7493. bs2 = 0xE2;
  7494. reset = io;
  7495. chip_erase_delay = 9000;
  7496. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  7497. "x x x x x x x x x x x x x x x x";
  7498. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  7499. "x x x x x x x x x x x x x x x x";
  7500. timeout = 200;
  7501. stabdelay = 100;
  7502. cmdexedelay = 25;
  7503. synchloops = 32;
  7504. bytedelay = 0;
  7505. pollindex = 3;
  7506. pollvalue = 0x53;
  7507. predelay = 1;
  7508. postdelay = 1;
  7509. pollmethod = 1;
  7510. pp_controlstack =
  7511. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  7512. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  7513. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  7514. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  7515. hventerstabdelay = 100;
  7516. progmodedelay = 0;
  7517. latchcycles = 5;
  7518. togglevtg = 1;
  7519. poweroffdelay = 15;
  7520. resetdelayms = 1;
  7521. resetdelayus = 0;
  7522. hvleavestabdelay = 15;
  7523. chiperasepulsewidth = 0;
  7524. chiperasepolltimeout = 10;
  7525. programfusepulsewidth = 0;
  7526. programfusepolltimeout = 5;
  7527. programlockpulsewidth = 0;
  7528. programlockpolltimeout = 5;
  7529. memory "eeprom"
  7530. size = 512;
  7531. paged = no;
  7532. page_size = 4;
  7533. min_write_delay = 4000;
  7534. max_write_delay = 4500;
  7535. readback_p1 = 0xff;
  7536. readback_p2 = 0xff;
  7537. read = "1 0 1 0 0 0 0 0 0 0 0 x x x x a8",
  7538. "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  7539. write = "1 1 0 0 0 0 0 0 0 0 0 x x x x a8",
  7540. "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  7541. loadpage_lo = " 1 1 0 0 0 0 0 1",
  7542. " 0 0 0 0 0 0 0 0",
  7543. " 0 0 0 0 0 0 a1 a0",
  7544. " i i i i i i i i";
  7545. writepage = " 1 1 0 0 0 0 1 0",
  7546. " 0 0 x x x x x x",
  7547. " a7 a6 a5 a4 a3 a2 0 0",
  7548. " x x x x x x x x";
  7549. mode = 0x41;
  7550. delay = 6;
  7551. blocksize = 4;
  7552. readsize = 256;
  7553. ;
  7554. memory "flash"
  7555. paged = yes;
  7556. size = 8192;
  7557. page_size = 64;
  7558. num_pages = 128;
  7559. min_write_delay = 4500;
  7560. max_write_delay = 4500;
  7561. readback_p1 = 0xff;
  7562. readback_p2 = 0xff;
  7563. read_lo = " 0 0 1 0 0 0 0 0",
  7564. " 0 0 0 0 a11 a10 a9 a8",
  7565. " a7 a6 a5 a4 a3 a2 a1 a0",
  7566. " o o o o o o o o";
  7567. read_hi = " 0 0 1 0 1 0 0 0",
  7568. " 0 0 0 0 a11 a10 a9 a8",
  7569. " a7 a6 a5 a4 a3 a2 a1 a0",
  7570. " o o o o o o o o";
  7571. loadpage_lo = " 0 1 0 0 0 0 0 0",
  7572. " 0 0 0 x x x x x",
  7573. " x x x a4 a3 a2 a1 a0",
  7574. " i i i i i i i i";
  7575. loadpage_hi = " 0 1 0 0 1 0 0 0",
  7576. " 0 0 0 x x x x x",
  7577. " x x x a4 a3 a2 a1 a0",
  7578. " i i i i i i i i";
  7579. writepage = " 0 1 0 0 1 1 0 0",
  7580. " 0 0 0 0 a11 a10 a9 a8",
  7581. " a7 a6 a5 x x x x x",
  7582. " x x x x x x x x";
  7583. mode = 0x41;
  7584. delay = 6;
  7585. blocksize = 64;
  7586. readsize = 256;
  7587. ;
  7588. # AT90PWM2 has Signature Bytes: 0x1E 0x93 0x81.
  7589. memory "signature"
  7590. size = 3;
  7591. read = "0 0 1 1 0 0 0 0 0 0 x x x x x x",
  7592. "x x x x x x a1 a0 o o o o o o o o";
  7593. ;
  7594. memory "lock"
  7595. size = 1;
  7596. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  7597. "x x x x x x x x 1 1 i i i i i i";
  7598. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  7599. "x x x x x x x x x x o o o o o o";
  7600. min_write_delay = 9000;
  7601. max_write_delay = 9000;
  7602. ;
  7603. memory "lfuse"
  7604. size = 1;
  7605. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  7606. "x x x x x x x x i i i i i i i i";
  7607. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  7608. "x x x x x x x x o o o o o o o o";
  7609. min_write_delay = 9000;
  7610. max_write_delay = 9000;
  7611. ;
  7612. memory "hfuse"
  7613. size = 1;
  7614. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  7615. "x x x x x x x x i i i i i i i i";
  7616. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  7617. "x x x x x x x x o o o o o o o o";
  7618. min_write_delay = 9000;
  7619. max_write_delay = 9000;
  7620. ;
  7621. memory "efuse"
  7622. size = 1;
  7623. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  7624. "x x x x x x x x x x x x x x x i";
  7625. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  7626. "x x x x x x x x o o o o o o o o";
  7627. min_write_delay = 9000;
  7628. max_write_delay = 9000;
  7629. ;
  7630. memory "calibration"
  7631. size = 1;
  7632. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  7633. "0 0 0 0 0 0 0 0 o o o o o o o o";
  7634. ;
  7635. ;
  7636. #------------------------------------------------------------
  7637. # AT90PWM3
  7638. #------------------------------------------------------------
  7639. # Completely identical to AT90PWM2 (including the signature!)
  7640. part
  7641. id = "pwm3";
  7642. desc = "AT90PWM3";
  7643. has_debugwire = yes;
  7644. flash_instr = 0xB6, 0x01, 0x11;
  7645. eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
  7646. 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
  7647. 0x99, 0xF9, 0xBB, 0xAF;
  7648. stk500_devcode = 0x65;
  7649. ## avr910_devcode = ?;
  7650. signature = 0x1e 0x93 0x81;
  7651. pagel = 0xD8;
  7652. bs2 = 0xE2;
  7653. reset = io;
  7654. chip_erase_delay = 9000;
  7655. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  7656. "x x x x x x x x x x x x x x x x";
  7657. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  7658. "x x x x x x x x x x x x x x x x";
  7659. timeout = 200;
  7660. stabdelay = 100;
  7661. cmdexedelay = 25;
  7662. synchloops = 32;
  7663. bytedelay = 0;
  7664. pollindex = 3;
  7665. pollvalue = 0x53;
  7666. predelay = 1;
  7667. postdelay = 1;
  7668. pollmethod = 1;
  7669. pp_controlstack =
  7670. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  7671. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  7672. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  7673. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  7674. hventerstabdelay = 100;
  7675. progmodedelay = 0;
  7676. latchcycles = 5;
  7677. togglevtg = 1;
  7678. poweroffdelay = 15;
  7679. resetdelayms = 1;
  7680. resetdelayus = 0;
  7681. hvleavestabdelay = 15;
  7682. chiperasepulsewidth = 0;
  7683. chiperasepolltimeout = 10;
  7684. programfusepulsewidth = 0;
  7685. programfusepolltimeout = 5;
  7686. programlockpulsewidth = 0;
  7687. programlockpolltimeout = 5;
  7688. memory "eeprom"
  7689. size = 512;
  7690. paged = no;
  7691. page_size = 4;
  7692. min_write_delay = 4000;
  7693. max_write_delay = 4500;
  7694. readback_p1 = 0xff;
  7695. readback_p2 = 0xff;
  7696. read = "1 0 1 0 0 0 0 0 0 0 0 x x x x a8",
  7697. "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  7698. write = "1 1 0 0 0 0 0 0 0 0 0 x x x x a8",
  7699. "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  7700. loadpage_lo = " 1 1 0 0 0 0 0 1",
  7701. " 0 0 0 0 0 0 0 0",
  7702. " 0 0 0 0 0 0 a1 a0",
  7703. " i i i i i i i i";
  7704. writepage = " 1 1 0 0 0 0 1 0",
  7705. " 0 0 x x x x x x",
  7706. " a7 a6 a5 a4 a3 a2 0 0",
  7707. " x x x x x x x x";
  7708. mode = 0x41;
  7709. delay = 6;
  7710. blocksize = 4;
  7711. readsize = 256;
  7712. ;
  7713. memory "flash"
  7714. paged = yes;
  7715. size = 8192;
  7716. page_size = 64;
  7717. num_pages = 128;
  7718. min_write_delay = 4500;
  7719. max_write_delay = 4500;
  7720. readback_p1 = 0xff;
  7721. readback_p2 = 0xff;
  7722. read_lo = " 0 0 1 0 0 0 0 0",
  7723. " 0 0 0 0 a11 a10 a9 a8",
  7724. " a7 a6 a5 a4 a3 a2 a1 a0",
  7725. " o o o o o o o o";
  7726. read_hi = " 0 0 1 0 1 0 0 0",
  7727. " 0 0 0 0 a11 a10 a9 a8",
  7728. " a7 a6 a5 a4 a3 a2 a1 a0",
  7729. " o o o o o o o o";
  7730. loadpage_lo = " 0 1 0 0 0 0 0 0",
  7731. " 0 0 0 x x x x x",
  7732. " x x x a4 a3 a2 a1 a0",
  7733. " i i i i i i i i";
  7734. loadpage_hi = " 0 1 0 0 1 0 0 0",
  7735. " 0 0 0 x x x x x",
  7736. " x x x a4 a3 a2 a1 a0",
  7737. " i i i i i i i i";
  7738. writepage = " 0 1 0 0 1 1 0 0",
  7739. " 0 0 0 0 a11 a10 a9 a8",
  7740. " a7 a6 a5 x x x x x",
  7741. " x x x x x x x x";
  7742. mode = 0x41;
  7743. delay = 6;
  7744. blocksize = 64;
  7745. readsize = 256;
  7746. ;
  7747. # AT90PWM2 has Signature Bytes: 0x1E 0x93 0x81.
  7748. memory "signature"
  7749. size = 3;
  7750. read = "0 0 1 1 0 0 0 0 0 0 x x x x x x",
  7751. "x x x x x x a1 a0 o o o o o o o o";
  7752. ;
  7753. memory "lock"
  7754. size = 1;
  7755. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  7756. "x x x x x x x x 1 1 i i i i i i";
  7757. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  7758. "x x x x x x x x x x o o o o o o";
  7759. min_write_delay = 9000;
  7760. max_write_delay = 9000;
  7761. ;
  7762. memory "lfuse"
  7763. size = 1;
  7764. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  7765. "x x x x x x x x i i i i i i i i";
  7766. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  7767. "x x x x x x x x o o o o o o o o";
  7768. min_write_delay = 9000;
  7769. max_write_delay = 9000;
  7770. ;
  7771. memory "hfuse"
  7772. size = 1;
  7773. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  7774. "x x x x x x x x i i i i i i i i";
  7775. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  7776. "x x x x x x x x o o o o o o o o";
  7777. min_write_delay = 9000;
  7778. max_write_delay = 9000;
  7779. ;
  7780. memory "efuse"
  7781. size = 1;
  7782. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  7783. "x x x x x x x x x x x x x x x i";
  7784. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  7785. "x x x x x x x x o o o o o o o o";
  7786. min_write_delay = 9000;
  7787. max_write_delay = 9000;
  7788. ;
  7789. memory "calibration"
  7790. size = 1;
  7791. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  7792. "0 0 0 0 0 0 0 0 o o o o o o o o";
  7793. ;
  7794. ;
  7795. #------------------------------------------------------------
  7796. # AT90PWM2B
  7797. #------------------------------------------------------------
  7798. # Same as AT90PWM2 but different signature.
  7799. part
  7800. id = "pwm2b";
  7801. desc = "AT90PWM2B";
  7802. has_debugwire = yes;
  7803. flash_instr = 0xB6, 0x01, 0x11;
  7804. eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
  7805. 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
  7806. 0x99, 0xF9, 0xBB, 0xAF;
  7807. stk500_devcode = 0x65;
  7808. ## avr910_devcode = ?;
  7809. signature = 0x1e 0x93 0x83;
  7810. pagel = 0xD8;
  7811. bs2 = 0xE2;
  7812. reset = io;
  7813. chip_erase_delay = 9000;
  7814. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  7815. "x x x x x x x x x x x x x x x x";
  7816. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  7817. "x x x x x x x x x x x x x x x x";
  7818. timeout = 200;
  7819. stabdelay = 100;
  7820. cmdexedelay = 25;
  7821. synchloops = 32;
  7822. bytedelay = 0;
  7823. pollindex = 3;
  7824. pollvalue = 0x53;
  7825. predelay = 1;
  7826. postdelay = 1;
  7827. pollmethod = 1;
  7828. pp_controlstack =
  7829. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  7830. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  7831. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  7832. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  7833. hventerstabdelay = 100;
  7834. progmodedelay = 0;
  7835. latchcycles = 5;
  7836. togglevtg = 1;
  7837. poweroffdelay = 15;
  7838. resetdelayms = 1;
  7839. resetdelayus = 0;
  7840. hvleavestabdelay = 15;
  7841. chiperasepulsewidth = 0;
  7842. chiperasepolltimeout = 10;
  7843. programfusepulsewidth = 0;
  7844. programfusepolltimeout = 5;
  7845. programlockpulsewidth = 0;
  7846. programlockpolltimeout = 5;
  7847. memory "eeprom"
  7848. size = 512;
  7849. paged = no;
  7850. page_size = 4;
  7851. min_write_delay = 4000;
  7852. max_write_delay = 4500;
  7853. readback_p1 = 0xff;
  7854. readback_p2 = 0xff;
  7855. read = "1 0 1 0 0 0 0 0 0 0 0 x x x x a8",
  7856. "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  7857. write = "1 1 0 0 0 0 0 0 0 0 0 x x x x a8",
  7858. "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  7859. loadpage_lo = " 1 1 0 0 0 0 0 1",
  7860. " 0 0 0 0 0 0 0 0",
  7861. " 0 0 0 0 0 0 a1 a0",
  7862. " i i i i i i i i";
  7863. writepage = " 1 1 0 0 0 0 1 0",
  7864. " 0 0 x x x x x x",
  7865. " a7 a6 a5 a4 a3 a2 0 0",
  7866. " x x x x x x x x";
  7867. mode = 0x41;
  7868. delay = 6;
  7869. blocksize = 4;
  7870. readsize = 256;
  7871. ;
  7872. memory "flash"
  7873. paged = yes;
  7874. size = 8192;
  7875. page_size = 64;
  7876. num_pages = 128;
  7877. min_write_delay = 4500;
  7878. max_write_delay = 4500;
  7879. readback_p1 = 0xff;
  7880. readback_p2 = 0xff;
  7881. read_lo = " 0 0 1 0 0 0 0 0",
  7882. " 0 0 0 0 a11 a10 a9 a8",
  7883. " a7 a6 a5 a4 a3 a2 a1 a0",
  7884. " o o o o o o o o";
  7885. read_hi = " 0 0 1 0 1 0 0 0",
  7886. " 0 0 0 0 a11 a10 a9 a8",
  7887. " a7 a6 a5 a4 a3 a2 a1 a0",
  7888. " o o o o o o o o";
  7889. loadpage_lo = " 0 1 0 0 0 0 0 0",
  7890. " 0 0 0 x x x x x",
  7891. " x x x a4 a3 a2 a1 a0",
  7892. " i i i i i i i i";
  7893. loadpage_hi = " 0 1 0 0 1 0 0 0",
  7894. " 0 0 0 x x x x x",
  7895. " x x x a4 a3 a2 a1 a0",
  7896. " i i i i i i i i";
  7897. writepage = " 0 1 0 0 1 1 0 0",
  7898. " 0 0 0 0 a11 a10 a9 a8",
  7899. " a7 a6 a5 x x x x x",
  7900. " x x x x x x x x";
  7901. mode = 0x41;
  7902. delay = 6;
  7903. blocksize = 64;
  7904. readsize = 256;
  7905. ;
  7906. memory "signature"
  7907. size = 3;
  7908. read = "0 0 1 1 0 0 0 0 0 0 x x x x x x",
  7909. "x x x x x x a1 a0 o o o o o o o o";
  7910. ;
  7911. memory "lock"
  7912. size = 1;
  7913. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  7914. "x x x x x x x x 1 1 i i i i i i";
  7915. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  7916. "x x x x x x x x x x o o o o o o";
  7917. min_write_delay = 9000;
  7918. max_write_delay = 9000;
  7919. ;
  7920. memory "lfuse"
  7921. size = 1;
  7922. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  7923. "x x x x x x x x i i i i i i i i";
  7924. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  7925. "x x x x x x x x o o o o o o o o";
  7926. min_write_delay = 9000;
  7927. max_write_delay = 9000;
  7928. ;
  7929. memory "hfuse"
  7930. size = 1;
  7931. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  7932. "x x x x x x x x i i i i i i i i";
  7933. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  7934. "x x x x x x x x o o o o o o o o";
  7935. min_write_delay = 9000;
  7936. max_write_delay = 9000;
  7937. ;
  7938. memory "efuse"
  7939. size = 1;
  7940. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  7941. "x x x x x x x x x x x x x x x i";
  7942. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  7943. "x x x x x x x x o o o o o o o o";
  7944. min_write_delay = 9000;
  7945. max_write_delay = 9000;
  7946. ;
  7947. memory "calibration"
  7948. size = 1;
  7949. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  7950. "0 0 0 0 0 0 0 0 o o o o o o o o";
  7951. ;
  7952. ;
  7953. #------------------------------------------------------------
  7954. # AT90PWM3B
  7955. #------------------------------------------------------------
  7956. # Completely identical to AT90PWM2B (including the signature!)
  7957. part
  7958. id = "pwm3b";
  7959. desc = "AT90PWM3B";
  7960. has_debugwire = yes;
  7961. flash_instr = 0xB6, 0x01, 0x11;
  7962. eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
  7963. 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
  7964. 0x99, 0xF9, 0xBB, 0xAF;
  7965. stk500_devcode = 0x65;
  7966. ## avr910_devcode = ?;
  7967. signature = 0x1e 0x93 0x83;
  7968. pagel = 0xD8;
  7969. bs2 = 0xE2;
  7970. reset = io;
  7971. chip_erase_delay = 9000;
  7972. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  7973. "x x x x x x x x x x x x x x x x";
  7974. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  7975. "x x x x x x x x x x x x x x x x";
  7976. timeout = 200;
  7977. stabdelay = 100;
  7978. cmdexedelay = 25;
  7979. synchloops = 32;
  7980. bytedelay = 0;
  7981. pollindex = 3;
  7982. pollvalue = 0x53;
  7983. predelay = 1;
  7984. postdelay = 1;
  7985. pollmethod = 1;
  7986. pp_controlstack =
  7987. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  7988. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  7989. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  7990. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  7991. hventerstabdelay = 100;
  7992. progmodedelay = 0;
  7993. latchcycles = 5;
  7994. togglevtg = 1;
  7995. poweroffdelay = 15;
  7996. resetdelayms = 1;
  7997. resetdelayus = 0;
  7998. hvleavestabdelay = 15;
  7999. chiperasepulsewidth = 0;
  8000. chiperasepolltimeout = 10;
  8001. programfusepulsewidth = 0;
  8002. programfusepolltimeout = 5;
  8003. programlockpulsewidth = 0;
  8004. programlockpolltimeout = 5;
  8005. memory "eeprom"
  8006. size = 512;
  8007. paged = no;
  8008. page_size = 4;
  8009. min_write_delay = 4000;
  8010. max_write_delay = 4500;
  8011. readback_p1 = 0xff;
  8012. readback_p2 = 0xff;
  8013. read = "1 0 1 0 0 0 0 0 0 0 0 x x x x a8",
  8014. "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  8015. write = "1 1 0 0 0 0 0 0 0 0 0 x x x x a8",
  8016. "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  8017. loadpage_lo = " 1 1 0 0 0 0 0 1",
  8018. " 0 0 0 0 0 0 0 0",
  8019. " 0 0 0 0 0 0 a1 a0",
  8020. " i i i i i i i i";
  8021. writepage = " 1 1 0 0 0 0 1 0",
  8022. " 0 0 x x x x x x",
  8023. " a7 a6 a5 a4 a3 a2 0 0",
  8024. " x x x x x x x x";
  8025. mode = 0x41;
  8026. delay = 6;
  8027. blocksize = 4;
  8028. readsize = 256;
  8029. ;
  8030. memory "flash"
  8031. paged = yes;
  8032. size = 8192;
  8033. page_size = 64;
  8034. num_pages = 128;
  8035. min_write_delay = 4500;
  8036. max_write_delay = 4500;
  8037. readback_p1 = 0xff;
  8038. readback_p2 = 0xff;
  8039. read_lo = " 0 0 1 0 0 0 0 0",
  8040. " 0 0 0 0 a11 a10 a9 a8",
  8041. " a7 a6 a5 a4 a3 a2 a1 a0",
  8042. " o o o o o o o o";
  8043. read_hi = " 0 0 1 0 1 0 0 0",
  8044. " 0 0 0 0 a11 a10 a9 a8",
  8045. " a7 a6 a5 a4 a3 a2 a1 a0",
  8046. " o o o o o o o o";
  8047. loadpage_lo = " 0 1 0 0 0 0 0 0",
  8048. " 0 0 0 x x x x x",
  8049. " x x x a4 a3 a2 a1 a0",
  8050. " i i i i i i i i";
  8051. loadpage_hi = " 0 1 0 0 1 0 0 0",
  8052. " 0 0 0 x x x x x",
  8053. " x x x a4 a3 a2 a1 a0",
  8054. " i i i i i i i i";
  8055. writepage = " 0 1 0 0 1 1 0 0",
  8056. " 0 0 0 0 a11 a10 a9 a8",
  8057. " a7 a6 a5 x x x x x",
  8058. " x x x x x x x x";
  8059. mode = 0x41;
  8060. delay = 6;
  8061. blocksize = 64;
  8062. readsize = 256;
  8063. ;
  8064. memory "signature"
  8065. size = 3;
  8066. read = "0 0 1 1 0 0 0 0 0 0 x x x x x x",
  8067. "x x x x x x a1 a0 o o o o o o o o";
  8068. ;
  8069. memory "lock"
  8070. size = 1;
  8071. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  8072. "x x x x x x x x 1 1 i i i i i i";
  8073. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  8074. "x x x x x x x x x x o o o o o o";
  8075. min_write_delay = 9000;
  8076. max_write_delay = 9000;
  8077. ;
  8078. memory "lfuse"
  8079. size = 1;
  8080. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  8081. "x x x x x x x x i i i i i i i i";
  8082. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  8083. "x x x x x x x x o o o o o o o o";
  8084. min_write_delay = 9000;
  8085. max_write_delay = 9000;
  8086. ;
  8087. memory "hfuse"
  8088. size = 1;
  8089. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  8090. "x x x x x x x x i i i i i i i i";
  8091. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  8092. "x x x x x x x x o o o o o o o o";
  8093. min_write_delay = 9000;
  8094. max_write_delay = 9000;
  8095. ;
  8096. memory "efuse"
  8097. size = 1;
  8098. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  8099. "x x x x x x x x x x x x x x x i";
  8100. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  8101. "x x x x x x x x o o o o o o o o";
  8102. min_write_delay = 9000;
  8103. max_write_delay = 9000;
  8104. ;
  8105. memory "calibration"
  8106. size = 1;
  8107. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  8108. "0 0 0 0 0 0 0 0 o o o o o o o o";
  8109. ;
  8110. ;
  8111. #------------------------------------------------------------
  8112. # ATtiny25
  8113. #------------------------------------------------------------
  8114. part
  8115. id = "t25";
  8116. desc = "ATtiny25";
  8117. has_debugwire = yes;
  8118. flash_instr = 0xB4, 0x02, 0x12;
  8119. eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
  8120. 0xBC, 0x02, 0xB4, 0x02, 0xBA, 0x0D, 0xBB, 0xBC,
  8121. 0x99, 0xE1, 0xBB, 0xAC;
  8122. ## no STK500 devcode in XML file, use the ATtiny45 one
  8123. stk500_devcode = 0x14;
  8124. ## avr910_devcode = ?;
  8125. ## Try the AT90S2313 devcode:
  8126. avr910_devcode = 0x20;
  8127. signature = 0x1e 0x91 0x08;
  8128. reset = io;
  8129. chip_erase_delay = 4500;
  8130. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  8131. "x x x x x x x x x x x x x x x x";
  8132. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  8133. "x x x x x x x x x x x x x x x x";
  8134. timeout = 200;
  8135. stabdelay = 100;
  8136. cmdexedelay = 25;
  8137. synchloops = 32;
  8138. bytedelay = 0;
  8139. pollindex = 3;
  8140. pollvalue = 0x53;
  8141. predelay = 1;
  8142. postdelay = 1;
  8143. pollmethod = 1;
  8144. hvsp_controlstack =
  8145. 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66,
  8146. 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78,
  8147. 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
  8148. 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
  8149. hventerstabdelay = 100;
  8150. hvspcmdexedelay = 0;
  8151. synchcycles = 6;
  8152. latchcycles = 1;
  8153. togglevtg = 1;
  8154. poweroffdelay = 25;
  8155. resetdelayms = 1;
  8156. resetdelayus = 0;
  8157. hvleavestabdelay = 100;
  8158. resetdelay = 25;
  8159. chiperasepolltimeout = 40;
  8160. chiperasetime = 0;
  8161. programfusepolltimeout = 25;
  8162. programlockpolltimeout = 25;
  8163. memory "eeprom"
  8164. size = 128;
  8165. paged = no;
  8166. page_size = 4;
  8167. min_write_delay = 4000;
  8168. max_write_delay = 4500;
  8169. readback_p1 = 0xff;
  8170. readback_p2 = 0xff;
  8171. read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x",
  8172. "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  8173. write = "1 1 0 0 0 0 0 0 0 0 0 x x x x x",
  8174. "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  8175. loadpage_lo = " 1 1 0 0 0 0 0 1",
  8176. " 0 0 0 0 0 0 0 0",
  8177. " 0 0 0 0 0 0 a1 a0",
  8178. " i i i i i i i i";
  8179. writepage = " 1 1 0 0 0 0 1 0",
  8180. " 0 0 x x x x x x",
  8181. " x a6 a5 a4 a3 a2 0 0",
  8182. " x x x x x x x x";
  8183. mode = 0x41;
  8184. delay = 6;
  8185. blocksize = 4;
  8186. readsize = 256;
  8187. ;
  8188. memory "flash"
  8189. paged = yes;
  8190. size = 2048;
  8191. page_size = 32;
  8192. num_pages = 64;
  8193. min_write_delay = 4500;
  8194. max_write_delay = 4500;
  8195. readback_p1 = 0xff;
  8196. readback_p2 = 0xff;
  8197. read_lo = " 0 0 1 0 0 0 0 0",
  8198. " 0 0 0 0 0 0 a9 a8",
  8199. " a7 a6 a5 a4 a3 a2 a1 a0",
  8200. " o o o o o o o o";
  8201. read_hi = " 0 0 1 0 1 0 0 0",
  8202. " 0 0 0 0 0 0 a9 a8",
  8203. " a7 a6 a5 a4 a3 a2 a1 a0",
  8204. " o o o o o o o o";
  8205. loadpage_lo = " 0 1 0 0 0 0 0 0",
  8206. " 0 0 0 x x x x x",
  8207. " x x x x a3 a2 a1 a0",
  8208. " i i i i i i i i";
  8209. loadpage_hi = " 0 1 0 0 1 0 0 0",
  8210. " 0 0 0 x x x x x",
  8211. " x x x x a3 a2 a1 a0",
  8212. " i i i i i i i i";
  8213. writepage = " 0 1 0 0 1 1 0 0",
  8214. " 0 0 0 0 0 0 a9 a8",
  8215. " a7 a6 a5 a4 x x x x",
  8216. " x x x x x x x x";
  8217. mode = 0x41;
  8218. delay = 6;
  8219. blocksize = 32;
  8220. readsize = 256;
  8221. ;
  8222. # ATtiny25 has Signature Bytes: 0x1E 0x91 0x08.
  8223. memory "signature"
  8224. size = 3;
  8225. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  8226. "x x x x x x a1 a0 o o o o o o o o";
  8227. ;
  8228. memory "lock"
  8229. size = 1;
  8230. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  8231. "x x x x x x x x 1 1 i i i i i i";
  8232. min_write_delay = 9000;
  8233. max_write_delay = 9000;
  8234. ;
  8235. memory "lfuse"
  8236. size = 1;
  8237. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  8238. "x x x x x x x x i i i i i i i i";
  8239. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  8240. "x x x x x x x x o o o o o o o o";
  8241. min_write_delay = 9000;
  8242. max_write_delay = 9000;
  8243. ;
  8244. memory "hfuse"
  8245. size = 1;
  8246. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  8247. "x x x x x x x x i i i i i i i i";
  8248. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  8249. "x x x x x x x x o o o o o o o o";
  8250. min_write_delay = 9000;
  8251. max_write_delay = 9000;
  8252. ;
  8253. memory "efuse"
  8254. size = 1;
  8255. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  8256. "x x x x x x x x x x x x x x x i";
  8257. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  8258. "x x x x x x x x o o o o o o o o";
  8259. min_write_delay = 9000;
  8260. max_write_delay = 9000;
  8261. ;
  8262. memory "calibration"
  8263. size = 2;
  8264. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  8265. "0 0 0 0 0 0 0 a0 o o o o o o o o";
  8266. ;
  8267. ;
  8268. #------------------------------------------------------------
  8269. # ATtiny45
  8270. #------------------------------------------------------------
  8271. part
  8272. id = "t45";
  8273. desc = "ATtiny45";
  8274. has_debugwire = yes;
  8275. flash_instr = 0xB4, 0x02, 0x12;
  8276. eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
  8277. 0xBC, 0x02, 0xB4, 0x02, 0xBA, 0x0D, 0xBB, 0xBC,
  8278. 0x99, 0xE1, 0xBB, 0xAC;
  8279. stk500_devcode = 0x14;
  8280. ## avr910_devcode = ?;
  8281. ## Try the AT90S2313 devcode:
  8282. avr910_devcode = 0x20;
  8283. signature = 0x1e 0x92 0x06;
  8284. reset = io;
  8285. chip_erase_delay = 4500;
  8286. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  8287. "x x x x x x x x x x x x x x x x";
  8288. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  8289. "x x x x x x x x x x x x x x x x";
  8290. timeout = 200;
  8291. stabdelay = 100;
  8292. cmdexedelay = 25;
  8293. synchloops = 32;
  8294. bytedelay = 0;
  8295. pollindex = 3;
  8296. pollvalue = 0x53;
  8297. predelay = 1;
  8298. postdelay = 1;
  8299. pollmethod = 1;
  8300. hvsp_controlstack =
  8301. 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66,
  8302. 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78,
  8303. 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
  8304. 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
  8305. hventerstabdelay = 100;
  8306. progmodedelay = 0;
  8307. hvspcmdexedelay = 0;
  8308. synchcycles = 6;
  8309. latchcycles = 1;
  8310. togglevtg = 1;
  8311. poweroffdelay = 25;
  8312. resetdelayms = 1;
  8313. resetdelayus = 0;
  8314. hvleavestabdelay = 100;
  8315. resetdelay = 25;
  8316. chiperasepolltimeout = 40;
  8317. chiperasetime = 0;
  8318. programfusepolltimeout = 25;
  8319. programlockpolltimeout = 25;
  8320. memory "eeprom"
  8321. size = 256;
  8322. page_size = 4;
  8323. min_write_delay = 4000;
  8324. max_write_delay = 4500;
  8325. readback_p1 = 0xff;
  8326. readback_p2 = 0xff;
  8327. read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x",
  8328. "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  8329. write = "1 1 0 0 0 0 0 0 0 0 0 x x x x x",
  8330. "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  8331. loadpage_lo = " 1 1 0 0 0 0 0 1",
  8332. " 0 0 0 0 0 0 0 0",
  8333. " 0 0 0 0 0 0 a1 a0",
  8334. " i i i i i i i i";
  8335. writepage = " 1 1 0 0 0 0 1 0",
  8336. " 0 0 x x x x x x",
  8337. " a7 a6 a5 a4 a3 a2 0 0",
  8338. " x x x x x x x x";
  8339. mode = 0x41;
  8340. delay = 6;
  8341. blocksize = 4;
  8342. readsize = 256;
  8343. ;
  8344. memory "flash"
  8345. paged = yes;
  8346. size = 4096;
  8347. page_size = 64;
  8348. num_pages = 64;
  8349. min_write_delay = 4500;
  8350. max_write_delay = 4500;
  8351. readback_p1 = 0xff;
  8352. readback_p2 = 0xff;
  8353. read_lo = " 0 0 1 0 0 0 0 0",
  8354. " 0 0 0 0 0 a10 a9 a8",
  8355. " a7 a6 a5 a4 a3 a2 a1 a0",
  8356. " o o o o o o o o";
  8357. read_hi = " 0 0 1 0 1 0 0 0",
  8358. " 0 0 0 0 0 a10 a9 a8",
  8359. " a7 a6 a5 a4 a3 a2 a1 a0",
  8360. " o o o o o o o o";
  8361. loadpage_lo = " 0 1 0 0 0 0 0 0",
  8362. " 0 0 0 x x x x x",
  8363. " x x x a4 a3 a2 a1 a0",
  8364. " i i i i i i i i";
  8365. loadpage_hi = " 0 1 0 0 1 0 0 0",
  8366. " 0 0 0 x x x x x",
  8367. " x x x a4 a3 a2 a1 a0",
  8368. " i i i i i i i i";
  8369. writepage = " 0 1 0 0 1 1 0 0",
  8370. " 0 0 0 0 0 a10 a9 a8",
  8371. " a7 a6 a5 x x x x x",
  8372. " x x x x x x x x";
  8373. mode = 0x41;
  8374. delay = 6;
  8375. blocksize = 32;
  8376. readsize = 256;
  8377. ;
  8378. # ATtiny45 has Signature Bytes: 0x1E 0x92 0x08. (Data sheet 2586C-AVR-06/05 (doc2586.pdf) indicates otherwise!)
  8379. memory "signature"
  8380. size = 3;
  8381. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  8382. "x x x x x x a1 a0 o o o o o o o o";
  8383. ;
  8384. memory "lock"
  8385. size = 1;
  8386. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  8387. "x x x x x x x x 1 1 i i i i i i";
  8388. min_write_delay = 9000;
  8389. max_write_delay = 9000;
  8390. ;
  8391. memory "lfuse"
  8392. size = 1;
  8393. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  8394. "x x x x x x x x i i i i i i i i";
  8395. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  8396. "x x x x x x x x o o o o o o o o";
  8397. min_write_delay = 9000;
  8398. max_write_delay = 9000;
  8399. ;
  8400. memory "hfuse"
  8401. size = 1;
  8402. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  8403. "x x x x x x x x i i i i i i i i";
  8404. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  8405. "x x x x x x x x o o o o o o o o";
  8406. min_write_delay = 9000;
  8407. max_write_delay = 9000;
  8408. ;
  8409. memory "efuse"
  8410. size = 1;
  8411. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  8412. "x x x x x x x x x x x x x x x i";
  8413. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  8414. "x x x x x x x x o o o o o o o o";
  8415. min_write_delay = 9000;
  8416. max_write_delay = 9000;
  8417. ;
  8418. memory "calibration"
  8419. size = 2;
  8420. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  8421. "0 0 0 0 0 0 0 a0 o o o o o o o o";
  8422. ;
  8423. ;
  8424. #------------------------------------------------------------
  8425. # ATtiny85
  8426. #------------------------------------------------------------
  8427. part
  8428. id = "t85";
  8429. desc = "ATtiny85";
  8430. has_debugwire = yes;
  8431. flash_instr = 0xB4, 0x02, 0x12;
  8432. eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
  8433. 0xBC, 0x02, 0xB4, 0x02, 0xBA, 0x0D, 0xBB, 0xBC,
  8434. 0x99, 0xE1, 0xBB, 0xAC;
  8435. ## no STK500 devcode in XML file, use the ATtiny45 one
  8436. stk500_devcode = 0x14;
  8437. ## avr910_devcode = ?;
  8438. ## Try the AT90S2313 devcode:
  8439. avr910_devcode = 0x20;
  8440. signature = 0x1e 0x93 0x0b;
  8441. reset = io;
  8442. chip_erase_delay = 4500;
  8443. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  8444. "x x x x x x x x x x x x x x x x";
  8445. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  8446. "x x x x x x x x x x x x x x x x";
  8447. timeout = 200;
  8448. stabdelay = 100;
  8449. cmdexedelay = 25;
  8450. synchloops = 32;
  8451. bytedelay = 0;
  8452. pollindex = 3;
  8453. pollvalue = 0x53;
  8454. predelay = 1;
  8455. postdelay = 1;
  8456. pollmethod = 1;
  8457. hvsp_controlstack =
  8458. 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66,
  8459. 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78,
  8460. 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
  8461. 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
  8462. hventerstabdelay = 100;
  8463. hvspcmdexedelay = 0;
  8464. synchcycles = 6;
  8465. latchcycles = 1;
  8466. togglevtg = 1;
  8467. poweroffdelay = 25;
  8468. resetdelayms = 1;
  8469. resetdelayus = 0;
  8470. hvleavestabdelay = 100;
  8471. resetdelay = 25;
  8472. chiperasepolltimeout = 40;
  8473. chiperasetime = 0;
  8474. programfusepolltimeout = 25;
  8475. programlockpolltimeout = 25;
  8476. memory "eeprom"
  8477. size = 512;
  8478. paged = no;
  8479. page_size = 4;
  8480. min_write_delay = 4000;
  8481. max_write_delay = 4500;
  8482. readback_p1 = 0xff;
  8483. readback_p2 = 0xff;
  8484. read = "1 0 1 0 0 0 0 0 0 0 0 x x x x a8",
  8485. "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  8486. write = "1 1 0 0 0 0 0 0 0 0 0 x x x x a8",
  8487. "a8 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  8488. loadpage_lo = " 1 1 0 0 0 0 0 1",
  8489. " 0 0 0 0 0 0 0 0",
  8490. " 0 0 0 0 0 0 a1 a0",
  8491. " i i i i i i i i";
  8492. writepage = " 1 1 0 0 0 0 1 0",
  8493. " 0 0 x x x x x a8",
  8494. " a7 a6 a5 a4 a3 a2 0 0",
  8495. " x x x x x x x x";
  8496. mode = 0x41;
  8497. delay = 6;
  8498. blocksize = 4;
  8499. readsize = 256;
  8500. ;
  8501. memory "flash"
  8502. paged = yes;
  8503. size = 8192;
  8504. page_size = 64;
  8505. num_pages = 128;
  8506. min_write_delay = 4500;
  8507. max_write_delay = 4500;
  8508. readback_p1 = 0xff;
  8509. readback_p2 = 0xff;
  8510. read_lo = " 0 0 1 0 0 0 0 0",
  8511. " 0 0 0 0 a11 a10 a9 a8",
  8512. " a7 a6 a5 a4 a3 a2 a1 a0",
  8513. " o o o o o o o o";
  8514. read_hi = " 0 0 1 0 1 0 0 0",
  8515. " 0 0 0 0 a11 a10 a9 a8",
  8516. " a7 a6 a5 a4 a3 a2 a1 a0",
  8517. " o o o o o o o o";
  8518. loadpage_lo = " 0 1 0 0 0 0 0 0",
  8519. " 0 0 0 x x x x x",
  8520. " x x x a4 a3 a2 a1 a0",
  8521. " i i i i i i i i";
  8522. loadpage_hi = " 0 1 0 0 1 0 0 0",
  8523. " 0 0 0 x x x x x",
  8524. " x x x a4 a3 a2 a1 a0",
  8525. " i i i i i i i i";
  8526. writepage = " 0 1 0 0 1 1 0 0",
  8527. " 0 0 0 0 a11 a10 a9 a8",
  8528. " a7 a6 a5 x x x x x",
  8529. " x x x x x x x x";
  8530. mode = 0x41;
  8531. delay = 6;
  8532. blocksize = 32;
  8533. readsize = 256;
  8534. ;
  8535. # ATtiny85 has Signature Bytes: 0x1E 0x93 0x08.
  8536. memory "signature"
  8537. size = 3;
  8538. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  8539. "x x x x x x a1 a0 o o o o o o o o";
  8540. ;
  8541. memory "lock"
  8542. size = 1;
  8543. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  8544. "x x x x x x x x 1 1 i i i i i i";
  8545. min_write_delay = 9000;
  8546. max_write_delay = 9000;
  8547. ;
  8548. memory "lfuse"
  8549. size = 1;
  8550. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  8551. "x x x x x x x x i i i i i i i i";
  8552. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  8553. "x x x x x x x x o o o o o o o o";
  8554. min_write_delay = 9000;
  8555. max_write_delay = 9000;
  8556. ;
  8557. memory "hfuse"
  8558. size = 1;
  8559. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  8560. "x x x x x x x x i i i i i i i i";
  8561. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  8562. "x x x x x x x x o o o o o o o o";
  8563. min_write_delay = 9000;
  8564. max_write_delay = 9000;
  8565. ;
  8566. memory "efuse"
  8567. size = 1;
  8568. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  8569. "x x x x x x x x x x x x x x x i";
  8570. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  8571. "x x x x x x x x o o o o o o o o";
  8572. min_write_delay = 9000;
  8573. max_write_delay = 9000;
  8574. ;
  8575. memory "calibration"
  8576. size = 2;
  8577. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  8578. "0 0 0 0 0 0 0 a0 o o o o o o o o";
  8579. ;
  8580. ;
  8581. #------------------------------------------------------------
  8582. # ATmega640
  8583. #------------------------------------------------------------
  8584. # Almost same as ATmega1280, except for different memory sizes
  8585. part
  8586. id = "m640";
  8587. desc = "ATMEGA640";
  8588. signature = 0x1e 0x96 0x08;
  8589. has_jtag = yes;
  8590. # stk500_devcode = 0xB2;
  8591. # avr910_devcode = 0x43;
  8592. chip_erase_delay = 9000;
  8593. pagel = 0xD7;
  8594. bs2 = 0xA0;
  8595. reset = dedicated;
  8596. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  8597. "x x x x x x x x x x x x x x x x";
  8598. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  8599. "x x x x x x x x x x x x x x x x";
  8600. timeout = 200;
  8601. stabdelay = 100;
  8602. cmdexedelay = 25;
  8603. synchloops = 32;
  8604. bytedelay = 0;
  8605. pollindex = 3;
  8606. pollvalue = 0x53;
  8607. predelay = 1;
  8608. postdelay = 1;
  8609. pollmethod = 1;
  8610. pp_controlstack =
  8611. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  8612. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  8613. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  8614. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  8615. hventerstabdelay = 100;
  8616. progmodedelay = 0;
  8617. latchcycles = 5;
  8618. togglevtg = 1;
  8619. poweroffdelay = 15;
  8620. resetdelayms = 1;
  8621. resetdelayus = 0;
  8622. hvleavestabdelay = 15;
  8623. chiperasepulsewidth = 0;
  8624. chiperasepolltimeout = 10;
  8625. programfusepulsewidth = 0;
  8626. programfusepolltimeout = 5;
  8627. programlockpulsewidth = 0;
  8628. programlockpolltimeout = 5;
  8629. idr = 0x31;
  8630. spmcr = 0x57;
  8631. rampz = 0x3b;
  8632. allowfullpagebitstream = no;
  8633. memory "eeprom"
  8634. paged = no; /* leave this "no" */
  8635. page_size = 8; /* for parallel programming */
  8636. size = 4096;
  8637. min_write_delay = 9000;
  8638. max_write_delay = 9000;
  8639. readback_p1 = 0x00;
  8640. readback_p2 = 0x00;
  8641. read = " 1 0 1 0 0 0 0 0",
  8642. " x x x x a11 a10 a9 a8",
  8643. " a7 a6 a5 a4 a3 a2 a1 a0",
  8644. " o o o o o o o o";
  8645. write = " 1 1 0 0 0 0 0 0",
  8646. " x x x x a11 a10 a9 a8",
  8647. " a7 a6 a5 a4 a3 a2 a1 a0",
  8648. " i i i i i i i i";
  8649. loadpage_lo = " 1 1 0 0 0 0 0 1",
  8650. " 0 0 0 0 0 0 0 0",
  8651. " 0 0 0 0 0 a2 a1 a0",
  8652. " i i i i i i i i";
  8653. writepage = " 1 1 0 0 0 0 1 0",
  8654. " 0 0 x x a11 a10 a9 a8",
  8655. " a7 a6 a5 a4 a3 0 0 0",
  8656. " x x x x x x x x";
  8657. mode = 0x41;
  8658. delay = 10;
  8659. blocksize = 8;
  8660. readsize = 256;
  8661. ;
  8662. memory "flash"
  8663. paged = yes;
  8664. size = 65536;
  8665. page_size = 256;
  8666. num_pages = 256;
  8667. min_write_delay = 4500;
  8668. max_write_delay = 4500;
  8669. readback_p1 = 0x00;
  8670. readback_p2 = 0x00;
  8671. read_lo = " 0 0 1 0 0 0 0 0",
  8672. " 0 a14 a13 a12 a11 a10 a9 a8",
  8673. " a7 a6 a5 a4 a3 a2 a1 a0",
  8674. " o o o o o o o o";
  8675. read_hi = " 0 0 1 0 1 0 0 0",
  8676. " 0 a14 a13 a12 a11 a10 a9 a8",
  8677. " a7 a6 a5 a4 a3 a2 a1 a0",
  8678. " o o o o o o o o";
  8679. loadpage_lo = " 0 1 0 0 0 0 0 0",
  8680. " x x x x x x x x",
  8681. " x a6 a5 a4 a3 a2 a1 a0",
  8682. " i i i i i i i i";
  8683. loadpage_hi = " 0 1 0 0 1 0 0 0",
  8684. " x x x x x x x x",
  8685. " x a6 a5 a4 a3 a2 a1 a0",
  8686. " i i i i i i i i";
  8687. writepage = " 0 1 0 0 1 1 0 0",
  8688. " 0 a14 a13 a12 a11 a10 a9 a8",
  8689. " a7 x x x x x x x",
  8690. " x x x x x x x x";
  8691. mode = 0x41;
  8692. delay = 10;
  8693. blocksize = 256;
  8694. readsize = 256;
  8695. ;
  8696. memory "lfuse"
  8697. size = 1;
  8698. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  8699. "x x x x x x x x i i i i i i i i";
  8700. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  8701. "x x x x x x x x o o o o o o o o";
  8702. min_write_delay = 9000;
  8703. max_write_delay = 9000;
  8704. ;
  8705. memory "hfuse"
  8706. size = 1;
  8707. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  8708. "x x x x x x x x i i i i i i i i";
  8709. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  8710. "x x x x x x x x o o o o o o o o";
  8711. min_write_delay = 9000;
  8712. max_write_delay = 9000;
  8713. ;
  8714. memory "efuse"
  8715. size = 1;
  8716. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  8717. "x x x x x x x x x x x x x i i i";
  8718. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  8719. "x x x x x x x x o o o o o o o o";
  8720. min_write_delay = 9000;
  8721. max_write_delay = 9000;
  8722. ;
  8723. memory "lock"
  8724. size = 1;
  8725. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  8726. "x x x x x x x x x x o o o o o o";
  8727. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  8728. "x x x x x x x x 1 1 i i i i i i";
  8729. min_write_delay = 9000;
  8730. max_write_delay = 9000;
  8731. ;
  8732. memory "calibration"
  8733. size = 1;
  8734. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  8735. "0 0 0 0 0 0 0 0 o o o o o o o o";
  8736. ;
  8737. memory "signature"
  8738. size = 3;
  8739. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  8740. "x x x x x x a1 a0 o o o o o o o o";
  8741. ;
  8742. ;
  8743. #------------------------------------------------------------
  8744. # ATmega1280
  8745. #------------------------------------------------------------
  8746. part
  8747. id = "m1280";
  8748. desc = "ATMEGA1280";
  8749. signature = 0x1e 0x97 0x03;
  8750. has_jtag = yes;
  8751. # stk500_devcode = 0xB2;
  8752. # avr910_devcode = 0x43;
  8753. chip_erase_delay = 9000;
  8754. pagel = 0xD7;
  8755. bs2 = 0xA0;
  8756. reset = dedicated;
  8757. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  8758. "x x x x x x x x x x x x x x x x";
  8759. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  8760. "x x x x x x x x x x x x x x x x";
  8761. timeout = 200;
  8762. stabdelay = 100;
  8763. cmdexedelay = 25;
  8764. synchloops = 32;
  8765. bytedelay = 0;
  8766. pollindex = 3;
  8767. pollvalue = 0x53;
  8768. predelay = 1;
  8769. postdelay = 1;
  8770. pollmethod = 1;
  8771. pp_controlstack =
  8772. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  8773. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  8774. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  8775. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  8776. hventerstabdelay = 100;
  8777. progmodedelay = 0;
  8778. latchcycles = 5;
  8779. togglevtg = 1;
  8780. poweroffdelay = 15;
  8781. resetdelayms = 1;
  8782. resetdelayus = 0;
  8783. hvleavestabdelay = 15;
  8784. chiperasepulsewidth = 0;
  8785. chiperasepolltimeout = 10;
  8786. programfusepulsewidth = 0;
  8787. programfusepolltimeout = 5;
  8788. programlockpulsewidth = 0;
  8789. programlockpolltimeout = 5;
  8790. idr = 0x31;
  8791. spmcr = 0x57;
  8792. rampz = 0x3b;
  8793. allowfullpagebitstream = no;
  8794. memory "eeprom"
  8795. paged = no; /* leave this "no" */
  8796. page_size = 8; /* for parallel programming */
  8797. size = 4096;
  8798. min_write_delay = 9000;
  8799. max_write_delay = 9000;
  8800. readback_p1 = 0x00;
  8801. readback_p2 = 0x00;
  8802. read = " 1 0 1 0 0 0 0 0",
  8803. " x x x x a11 a10 a9 a8",
  8804. " a7 a6 a5 a4 a3 a2 a1 a0",
  8805. " o o o o o o o o";
  8806. write = " 1 1 0 0 0 0 0 0",
  8807. " x x x x a11 a10 a9 a8",
  8808. " a7 a6 a5 a4 a3 a2 a1 a0",
  8809. " i i i i i i i i";
  8810. loadpage_lo = " 1 1 0 0 0 0 0 1",
  8811. " 0 0 0 0 0 0 0 0",
  8812. " 0 0 0 0 0 a2 a1 a0",
  8813. " i i i i i i i i";
  8814. writepage = " 1 1 0 0 0 0 1 0",
  8815. " 0 0 x x a11 a10 a9 a8",
  8816. " a7 a6 a5 a4 a3 0 0 0",
  8817. " x x x x x x x x";
  8818. mode = 0x41;
  8819. delay = 10;
  8820. blocksize = 8;
  8821. readsize = 256;
  8822. ;
  8823. memory "flash"
  8824. paged = yes;
  8825. size = 131072;
  8826. page_size = 256;
  8827. num_pages = 512;
  8828. min_write_delay = 4500;
  8829. max_write_delay = 4500;
  8830. readback_p1 = 0x00;
  8831. readback_p2 = 0x00;
  8832. read_lo = " 0 0 1 0 0 0 0 0",
  8833. "a15 a14 a13 a12 a11 a10 a9 a8",
  8834. " a7 a6 a5 a4 a3 a2 a1 a0",
  8835. " o o o o o o o o";
  8836. read_hi = " 0 0 1 0 1 0 0 0",
  8837. "a15 a14 a13 a12 a11 a10 a9 a8",
  8838. " a7 a6 a5 a4 a3 a2 a1 a0",
  8839. " o o o o o o o o";
  8840. loadpage_lo = " 0 1 0 0 0 0 0 0",
  8841. " x x x x x x x x",
  8842. " x a6 a5 a4 a3 a2 a1 a0",
  8843. " i i i i i i i i";
  8844. loadpage_hi = " 0 1 0 0 1 0 0 0",
  8845. " x x x x x x x x",
  8846. " x a6 a5 a4 a3 a2 a1 a0",
  8847. " i i i i i i i i";
  8848. writepage = " 0 1 0 0 1 1 0 0",
  8849. "a15 a14 a13 a12 a11 a10 a9 a8",
  8850. " a7 x x x x x x x",
  8851. " x x x x x x x x";
  8852. mode = 0x41;
  8853. delay = 10;
  8854. blocksize = 256;
  8855. readsize = 256;
  8856. ;
  8857. memory "lfuse"
  8858. size = 1;
  8859. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  8860. "x x x x x x x x i i i i i i i i";
  8861. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  8862. "x x x x x x x x o o o o o o o o";
  8863. min_write_delay = 9000;
  8864. max_write_delay = 9000;
  8865. ;
  8866. memory "hfuse"
  8867. size = 1;
  8868. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  8869. "x x x x x x x x i i i i i i i i";
  8870. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  8871. "x x x x x x x x o o o o o o o o";
  8872. min_write_delay = 9000;
  8873. max_write_delay = 9000;
  8874. ;
  8875. memory "efuse"
  8876. size = 1;
  8877. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  8878. "x x x x x x x x x x x x x i i i";
  8879. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  8880. "x x x x x x x x o o o o o o o o";
  8881. min_write_delay = 9000;
  8882. max_write_delay = 9000;
  8883. ;
  8884. memory "lock"
  8885. size = 1;
  8886. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  8887. "x x x x x x x x x x o o o o o o";
  8888. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  8889. "x x x x x x x x 1 1 i i i i i i";
  8890. min_write_delay = 9000;
  8891. max_write_delay = 9000;
  8892. ;
  8893. memory "calibration"
  8894. size = 1;
  8895. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  8896. "0 0 0 0 0 0 0 0 o o o o o o o o";
  8897. ;
  8898. memory "signature"
  8899. size = 3;
  8900. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  8901. "x x x x x x a1 a0 o o o o o o o o";
  8902. ;
  8903. ;
  8904. #------------------------------------------------------------
  8905. # ATmega1281
  8906. #------------------------------------------------------------
  8907. # Identical to ATmega1280
  8908. part
  8909. id = "m1281";
  8910. desc = "ATMEGA1281";
  8911. signature = 0x1e 0x97 0x04;
  8912. has_jtag = yes;
  8913. # stk500_devcode = 0xB2;
  8914. # avr910_devcode = 0x43;
  8915. chip_erase_delay = 9000;
  8916. pagel = 0xD7;
  8917. bs2 = 0xA0;
  8918. reset = dedicated;
  8919. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  8920. "x x x x x x x x x x x x x x x x";
  8921. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  8922. "x x x x x x x x x x x x x x x x";
  8923. timeout = 200;
  8924. stabdelay = 100;
  8925. cmdexedelay = 25;
  8926. synchloops = 32;
  8927. bytedelay = 0;
  8928. pollindex = 3;
  8929. pollvalue = 0x53;
  8930. predelay = 1;
  8931. postdelay = 1;
  8932. pollmethod = 1;
  8933. pp_controlstack =
  8934. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  8935. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  8936. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  8937. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  8938. hventerstabdelay = 100;
  8939. progmodedelay = 0;
  8940. latchcycles = 5;
  8941. togglevtg = 1;
  8942. poweroffdelay = 15;
  8943. resetdelayms = 1;
  8944. resetdelayus = 0;
  8945. hvleavestabdelay = 15;
  8946. chiperasepulsewidth = 0;
  8947. chiperasepolltimeout = 10;
  8948. programfusepulsewidth = 0;
  8949. programfusepolltimeout = 5;
  8950. programlockpulsewidth = 0;
  8951. programlockpolltimeout = 5;
  8952. idr = 0x31;
  8953. spmcr = 0x57;
  8954. rampz = 0x3b;
  8955. allowfullpagebitstream = no;
  8956. memory "eeprom"
  8957. paged = no; /* leave this "no" */
  8958. page_size = 8; /* for parallel programming */
  8959. size = 4096;
  8960. min_write_delay = 9000;
  8961. max_write_delay = 9000;
  8962. readback_p1 = 0x00;
  8963. readback_p2 = 0x00;
  8964. read = " 1 0 1 0 0 0 0 0",
  8965. " x x x x a11 a10 a9 a8",
  8966. " a7 a6 a5 a4 a3 a2 a1 a0",
  8967. " o o o o o o o o";
  8968. write = " 1 1 0 0 0 0 0 0",
  8969. " x x x x a11 a10 a9 a8",
  8970. " a7 a6 a5 a4 a3 a2 a1 a0",
  8971. " i i i i i i i i";
  8972. loadpage_lo = " 1 1 0 0 0 0 0 1",
  8973. " 0 0 0 0 0 0 0 0",
  8974. " 0 0 0 0 0 a2 a1 a0",
  8975. " i i i i i i i i";
  8976. writepage = " 1 1 0 0 0 0 1 0",
  8977. " 0 0 x x a11 a10 a9 a8",
  8978. " a7 a6 a5 a4 a3 0 0 0",
  8979. " x x x x x x x x";
  8980. mode = 0x41;
  8981. delay = 10;
  8982. blocksize = 8;
  8983. readsize = 256;
  8984. ;
  8985. memory "flash"
  8986. paged = yes;
  8987. size = 131072;
  8988. page_size = 256;
  8989. num_pages = 512;
  8990. min_write_delay = 4500;
  8991. max_write_delay = 4500;
  8992. readback_p1 = 0x00;
  8993. readback_p2 = 0x00;
  8994. read_lo = " 0 0 1 0 0 0 0 0",
  8995. "a15 a14 a13 a12 a11 a10 a9 a8",
  8996. " a7 a6 a5 a4 a3 a2 a1 a0",
  8997. " o o o o o o o o";
  8998. read_hi = " 0 0 1 0 1 0 0 0",
  8999. "a15 a14 a13 a12 a11 a10 a9 a8",
  9000. " a7 a6 a5 a4 a3 a2 a1 a0",
  9001. " o o o o o o o o";
  9002. loadpage_lo = " 0 1 0 0 0 0 0 0",
  9003. " x x x x x x x x",
  9004. " x a6 a5 a4 a3 a2 a1 a0",
  9005. " i i i i i i i i";
  9006. loadpage_hi = " 0 1 0 0 1 0 0 0",
  9007. " x x x x x x x x",
  9008. " x a6 a5 a4 a3 a2 a1 a0",
  9009. " i i i i i i i i";
  9010. writepage = " 0 1 0 0 1 1 0 0",
  9011. "a15 a14 a13 a12 a11 a10 a9 a8",
  9012. " a7 x x x x x x x",
  9013. " x x x x x x x x";
  9014. mode = 0x41;
  9015. delay = 10;
  9016. blocksize = 256;
  9017. readsize = 256;
  9018. ;
  9019. memory "lfuse"
  9020. size = 1;
  9021. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  9022. "x x x x x x x x i i i i i i i i";
  9023. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  9024. "x x x x x x x x o o o o o o o o";
  9025. min_write_delay = 9000;
  9026. max_write_delay = 9000;
  9027. ;
  9028. memory "hfuse"
  9029. size = 1;
  9030. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  9031. "x x x x x x x x i i i i i i i i";
  9032. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  9033. "x x x x x x x x o o o o o o o o";
  9034. min_write_delay = 9000;
  9035. max_write_delay = 9000;
  9036. ;
  9037. memory "efuse"
  9038. size = 1;
  9039. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  9040. "x x x x x x x x x x x x x i i i";
  9041. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  9042. "x x x x x x x x o o o o o o o o";
  9043. min_write_delay = 9000;
  9044. max_write_delay = 9000;
  9045. ;
  9046. memory "lock"
  9047. size = 1;
  9048. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  9049. "x x x x x x x x x x o o o o o o";
  9050. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  9051. "x x x x x x x x 1 1 i i i i i i";
  9052. min_write_delay = 9000;
  9053. max_write_delay = 9000;
  9054. ;
  9055. memory "calibration"
  9056. size = 1;
  9057. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  9058. "0 0 0 0 0 0 0 0 o o o o o o o o";
  9059. ;
  9060. memory "signature"
  9061. size = 3;
  9062. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  9063. "x x x x x x a1 a0 o o o o o o o o";
  9064. ;
  9065. ;
  9066. #------------------------------------------------------------
  9067. # ATmega2560
  9068. #------------------------------------------------------------
  9069. part
  9070. id = "m2560";
  9071. desc = "ATMEGA2560";
  9072. signature = 0x1e 0x98 0x01;
  9073. has_jtag = yes;
  9074. # stk500_devcode = 0xB2;
  9075. # avr910_devcode = 0x43;
  9076. chip_erase_delay = 9000;
  9077. pagel = 0xD7;
  9078. bs2 = 0xA0;
  9079. reset = dedicated;
  9080. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  9081. "x x x x x x x x x x x x x x x x";
  9082. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  9083. "x x x x x x x x x x x x x x x x";
  9084. timeout = 200;
  9085. stabdelay = 100;
  9086. cmdexedelay = 25;
  9087. synchloops = 32;
  9088. bytedelay = 0;
  9089. pollindex = 3;
  9090. pollvalue = 0x53;
  9091. predelay = 1;
  9092. postdelay = 1;
  9093. pollmethod = 1;
  9094. pp_controlstack =
  9095. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  9096. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  9097. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  9098. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02;
  9099. hventerstabdelay = 100;
  9100. progmodedelay = 0;
  9101. latchcycles = 5;
  9102. togglevtg = 1;
  9103. poweroffdelay = 15;
  9104. resetdelayms = 1;
  9105. resetdelayus = 0;
  9106. hvleavestabdelay = 15;
  9107. chiperasepulsewidth = 0;
  9108. chiperasepolltimeout = 10;
  9109. programfusepulsewidth = 0;
  9110. programfusepolltimeout = 5;
  9111. programlockpulsewidth = 0;
  9112. programlockpolltimeout = 5;
  9113. idr = 0x31;
  9114. spmcr = 0x57;
  9115. rampz = 0x3b;
  9116. allowfullpagebitstream = no;
  9117. memory "eeprom"
  9118. paged = no; /* leave this "no" */
  9119. page_size = 8; /* for parallel programming */
  9120. size = 4096;
  9121. min_write_delay = 9000;
  9122. max_write_delay = 9000;
  9123. readback_p1 = 0x00;
  9124. readback_p2 = 0x00;
  9125. read = " 1 0 1 0 0 0 0 0",
  9126. " x x x x a11 a10 a9 a8",
  9127. " a7 a6 a5 a4 a3 a2 a1 a0",
  9128. " o o o o o o o o";
  9129. write = " 1 1 0 0 0 0 0 0",
  9130. " x x x x a11 a10 a9 a8",
  9131. " a7 a6 a5 a4 a3 a2 a1 a0",
  9132. " i i i i i i i i";
  9133. loadpage_lo = " 1 1 0 0 0 0 0 1",
  9134. " 0 0 0 0 0 0 0 0",
  9135. " 0 0 0 0 0 a2 a1 a0",
  9136. " i i i i i i i i";
  9137. writepage = " 1 1 0 0 0 0 1 0",
  9138. " 0 0 x x a11 a10 a9 a8",
  9139. " a7 a6 a5 a4 a3 0 0 0",
  9140. " x x x x x x x x";
  9141. mode = 0x41;
  9142. delay = 10;
  9143. blocksize = 8;
  9144. readsize = 256;
  9145. ;
  9146. memory "flash"
  9147. paged = yes;
  9148. size = 262144;
  9149. page_size = 256;
  9150. num_pages = 1024;
  9151. min_write_delay = 4500;
  9152. max_write_delay = 4500;
  9153. readback_p1 = 0x00;
  9154. readback_p2 = 0x00;
  9155. read_lo = " 0 0 1 0 0 0 0 0",
  9156. "a15 a14 a13 a12 a11 a10 a9 a8",
  9157. " a7 a6 a5 a4 a3 a2 a1 a0",
  9158. " o o o o o o o o";
  9159. read_hi = " 0 0 1 0 1 0 0 0",
  9160. "a15 a14 a13 a12 a11 a10 a9 a8",
  9161. " a7 a6 a5 a4 a3 a2 a1 a0",
  9162. " o o o o o o o o";
  9163. loadpage_lo = " 0 1 0 0 0 0 0 0",
  9164. " x x x x x x x x",
  9165. " x a6 a5 a4 a3 a2 a1 a0",
  9166. " i i i i i i i i";
  9167. loadpage_hi = " 0 1 0 0 1 0 0 0",
  9168. " x x x x x x x x",
  9169. " x a6 a5 a4 a3 a2 a1 a0",
  9170. " i i i i i i i i";
  9171. writepage = " 0 1 0 0 1 1 0 0",
  9172. "a15 a14 a13 a12 a11 a10 a9 a8",
  9173. " a7 x x x x x x x",
  9174. " x x x x x x x x";
  9175. load_ext_addr = " 0 1 0 0 1 1 0 1",
  9176. " 0 0 0 0 0 0 0 0",
  9177. " 0 0 0 0 0 0 0 a16",
  9178. " 0 0 0 0 0 0 0 0";
  9179. mode = 0x41;
  9180. delay = 10;
  9181. blocksize = 256;
  9182. readsize = 256;
  9183. ;
  9184. memory "lfuse"
  9185. size = 1;
  9186. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  9187. "x x x x x x x x i i i i i i i i";
  9188. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  9189. "x x x x x x x x o o o o o o o o";
  9190. min_write_delay = 9000;
  9191. max_write_delay = 9000;
  9192. ;
  9193. memory "hfuse"
  9194. size = 1;
  9195. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  9196. "x x x x x x x x i i i i i i i i";
  9197. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  9198. "x x x x x x x x o o o o o o o o";
  9199. min_write_delay = 9000;
  9200. max_write_delay = 9000;
  9201. ;
  9202. memory "efuse"
  9203. size = 1;
  9204. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  9205. "x x x x x x x x x x x x x i i i";
  9206. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  9207. "x x x x x x x x o o o o o o o o";
  9208. min_write_delay = 9000;
  9209. max_write_delay = 9000;
  9210. ;
  9211. memory "lock"
  9212. size = 1;
  9213. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  9214. "x x x x x x x x x x o o o o o o";
  9215. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  9216. "x x x x x x x x 1 1 i i i i i i";
  9217. min_write_delay = 9000;
  9218. max_write_delay = 9000;
  9219. ;
  9220. memory "calibration"
  9221. size = 1;
  9222. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  9223. "0 0 0 0 0 0 0 0 o o o o o o o o";
  9224. ;
  9225. memory "signature"
  9226. size = 3;
  9227. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  9228. "x x x x x x a1 a0 o o o o o o o o";
  9229. ;
  9230. ;
  9231. #------------------------------------------------------------
  9232. # ATmega2561
  9233. #------------------------------------------------------------
  9234. part
  9235. id = "m2561";
  9236. desc = "ATMEGA2561";
  9237. signature = 0x1e 0x98 0x02;
  9238. has_jtag = yes;
  9239. # stk500_devcode = 0xB2;
  9240. # avr910_devcode = 0x43;
  9241. chip_erase_delay = 9000;
  9242. pagel = 0xD7;
  9243. bs2 = 0xA0;
  9244. reset = dedicated;
  9245. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  9246. "x x x x x x x x x x x x x x x x";
  9247. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  9248. "x x x x x x x x x x x x x x x x";
  9249. timeout = 200;
  9250. stabdelay = 100;
  9251. cmdexedelay = 25;
  9252. synchloops = 32;
  9253. bytedelay = 0;
  9254. pollindex = 3;
  9255. pollvalue = 0x53;
  9256. predelay = 1;
  9257. postdelay = 1;
  9258. pollmethod = 1;
  9259. pp_controlstack =
  9260. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  9261. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  9262. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  9263. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02;
  9264. hventerstabdelay = 100;
  9265. progmodedelay = 0;
  9266. latchcycles = 5;
  9267. togglevtg = 1;
  9268. poweroffdelay = 15;
  9269. resetdelayms = 1;
  9270. resetdelayus = 0;
  9271. hvleavestabdelay = 15;
  9272. chiperasepulsewidth = 0;
  9273. chiperasepolltimeout = 10;
  9274. programfusepulsewidth = 0;
  9275. programfusepolltimeout = 5;
  9276. programlockpulsewidth = 0;
  9277. programlockpolltimeout = 5;
  9278. idr = 0x31;
  9279. spmcr = 0x57;
  9280. rampz = 0x3b;
  9281. allowfullpagebitstream = no;
  9282. memory "eeprom"
  9283. paged = no; /* leave this "no" */
  9284. page_size = 8; /* for parallel programming */
  9285. size = 4096;
  9286. min_write_delay = 9000;
  9287. max_write_delay = 9000;
  9288. readback_p1 = 0x00;
  9289. readback_p2 = 0x00;
  9290. read = " 1 0 1 0 0 0 0 0",
  9291. " x x x x a11 a10 a9 a8",
  9292. " a7 a6 a5 a4 a3 a2 a1 a0",
  9293. " o o o o o o o o";
  9294. write = " 1 1 0 0 0 0 0 0",
  9295. " x x x x a11 a10 a9 a8",
  9296. " a7 a6 a5 a4 a3 a2 a1 a0",
  9297. " i i i i i i i i";
  9298. loadpage_lo = " 1 1 0 0 0 0 0 1",
  9299. " 0 0 0 0 0 0 0 0",
  9300. " 0 0 0 0 0 a2 a1 a0",
  9301. " i i i i i i i i";
  9302. writepage = " 1 1 0 0 0 0 1 0",
  9303. " 0 0 x x a11 a10 a9 a8",
  9304. " a7 a6 a5 a4 a3 0 0 0",
  9305. " x x x x x x x x";
  9306. mode = 0x41;
  9307. delay = 10;
  9308. blocksize = 8;
  9309. readsize = 256;
  9310. ;
  9311. memory "flash"
  9312. paged = yes;
  9313. size = 262144;
  9314. page_size = 256;
  9315. num_pages = 1024;
  9316. min_write_delay = 4500;
  9317. max_write_delay = 4500;
  9318. readback_p1 = 0x00;
  9319. readback_p2 = 0x00;
  9320. read_lo = " 0 0 1 0 0 0 0 0",
  9321. "a15 a14 a13 a12 a11 a10 a9 a8",
  9322. " a7 a6 a5 a4 a3 a2 a1 a0",
  9323. " o o o o o o o o";
  9324. read_hi = " 0 0 1 0 1 0 0 0",
  9325. "a15 a14 a13 a12 a11 a10 a9 a8",
  9326. " a7 a6 a5 a4 a3 a2 a1 a0",
  9327. " o o o o o o o o";
  9328. loadpage_lo = " 0 1 0 0 0 0 0 0",
  9329. " x x x x x x x x",
  9330. " x a6 a5 a4 a3 a2 a1 a0",
  9331. " i i i i i i i i";
  9332. loadpage_hi = " 0 1 0 0 1 0 0 0",
  9333. " x x x x x x x x",
  9334. " x a6 a5 a4 a3 a2 a1 a0",
  9335. " i i i i i i i i";
  9336. writepage = " 0 1 0 0 1 1 0 0",
  9337. "a15 a14 a13 a12 a11 a10 a9 a8",
  9338. " a7 x x x x x x x",
  9339. " x x x x x x x x";
  9340. load_ext_addr = " 0 1 0 0 1 1 0 1",
  9341. " 0 0 0 0 0 0 0 0",
  9342. " 0 0 0 0 0 0 0 a16",
  9343. " 0 0 0 0 0 0 0 0";
  9344. mode = 0x41;
  9345. delay = 10;
  9346. blocksize = 256;
  9347. readsize = 256;
  9348. ;
  9349. memory "lfuse"
  9350. size = 1;
  9351. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  9352. "x x x x x x x x i i i i i i i i";
  9353. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  9354. "x x x x x x x x o o o o o o o o";
  9355. min_write_delay = 9000;
  9356. max_write_delay = 9000;
  9357. ;
  9358. memory "hfuse"
  9359. size = 1;
  9360. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  9361. "x x x x x x x x i i i i i i i i";
  9362. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  9363. "x x x x x x x x o o o o o o o o";
  9364. min_write_delay = 9000;
  9365. max_write_delay = 9000;
  9366. ;
  9367. memory "efuse"
  9368. size = 1;
  9369. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  9370. "x x x x x x x x x x x x x i i i";
  9371. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  9372. "x x x x x x x x o o o o o o o o";
  9373. min_write_delay = 9000;
  9374. max_write_delay = 9000;
  9375. ;
  9376. memory "lock"
  9377. size = 1;
  9378. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  9379. "x x x x x x x x x x o o o o o o";
  9380. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  9381. "x x x x x x x x 1 1 i i i i i i";
  9382. min_write_delay = 9000;
  9383. max_write_delay = 9000;
  9384. ;
  9385. memory "calibration"
  9386. size = 1;
  9387. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  9388. "0 0 0 0 0 0 0 0 o o o o o o o o";
  9389. ;
  9390. memory "signature"
  9391. size = 3;
  9392. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  9393. "x x x x x x a1 a0 o o o o o o o o";
  9394. ;
  9395. ;
  9396. #------------------------------------------------------------
  9397. # ATmega128RFA1
  9398. #------------------------------------------------------------
  9399. # Identical to ATmega2561 but half the ROM
  9400. part
  9401. id = "m128rfa1";
  9402. desc = "ATMEGA128RFA1";
  9403. signature = 0x1e 0xa7 0x01;
  9404. has_jtag = yes;
  9405. # stk500_devcode = 0xB2;
  9406. # avr910_devcode = 0x43;
  9407. chip_erase_delay = 9000;
  9408. pagel = 0xD7;
  9409. bs2 = 0xE2;
  9410. reset = dedicated;
  9411. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  9412. "x x x x x x x x x x x x x x x x";
  9413. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  9414. "x x x x x x x x x x x x x x x x";
  9415. timeout = 200;
  9416. stabdelay = 100;
  9417. cmdexedelay = 25;
  9418. synchloops = 32;
  9419. bytedelay = 0;
  9420. pollindex = 3;
  9421. pollvalue = 0x53;
  9422. predelay = 1;
  9423. postdelay = 1;
  9424. pollmethod = 1;
  9425. pp_controlstack =
  9426. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  9427. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  9428. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  9429. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02;
  9430. hventerstabdelay = 100;
  9431. progmodedelay = 0;
  9432. latchcycles = 5;
  9433. togglevtg = 1;
  9434. poweroffdelay = 15;
  9435. resetdelayms = 1;
  9436. resetdelayus = 0;
  9437. hvleavestabdelay = 15;
  9438. chiperasepulsewidth = 0;
  9439. chiperasepolltimeout = 10;
  9440. programfusepulsewidth = 0;
  9441. programfusepolltimeout = 5;
  9442. programlockpulsewidth = 0;
  9443. programlockpolltimeout = 5;
  9444. idr = 0x31;
  9445. spmcr = 0x57;
  9446. rampz = 0x3b;
  9447. allowfullpagebitstream = no;
  9448. memory "eeprom"
  9449. paged = no; /* leave this "no" */
  9450. page_size = 8; /* for parallel programming */
  9451. size = 4096;
  9452. min_write_delay = 9000;
  9453. max_write_delay = 9000;
  9454. readback_p1 = 0x00;
  9455. readback_p2 = 0x00;
  9456. read = " 1 0 1 0 0 0 0 0",
  9457. " x x x x a11 a10 a9 a8",
  9458. " a7 a6 a5 a4 a3 a2 a1 a0",
  9459. " o o o o o o o o";
  9460. write = " 1 1 0 0 0 0 0 0",
  9461. " x x x x a11 a10 a9 a8",
  9462. " a7 a6 a5 a4 a3 a2 a1 a0",
  9463. " i i i i i i i i";
  9464. loadpage_lo = " 1 1 0 0 0 0 0 1",
  9465. " 0 0 0 0 0 0 0 0",
  9466. " 0 0 0 0 0 a2 a1 a0",
  9467. " i i i i i i i i";
  9468. writepage = " 1 1 0 0 0 0 1 0",
  9469. " 0 0 x x a11 a10 a9 a8",
  9470. " a7 a6 a5 a4 a3 0 0 0",
  9471. " x x x x x x x x";
  9472. mode = 0x41;
  9473. delay = 10;
  9474. blocksize = 8;
  9475. readsize = 256;
  9476. ;
  9477. memory "flash"
  9478. paged = yes;
  9479. size = 131072;
  9480. page_size = 256;
  9481. num_pages = 512;
  9482. min_write_delay = 4500;
  9483. max_write_delay = 4500;
  9484. readback_p1 = 0x00;
  9485. readback_p2 = 0x00;
  9486. read_lo = " 0 0 1 0 0 0 0 0",
  9487. "a15 a14 a13 a12 a11 a10 a9 a8",
  9488. " a7 a6 a5 a4 a3 a2 a1 a0",
  9489. " o o o o o o o o";
  9490. read_hi = " 0 0 1 0 1 0 0 0",
  9491. "a15 a14 a13 a12 a11 a10 a9 a8",
  9492. " a7 a6 a5 a4 a3 a2 a1 a0",
  9493. " o o o o o o o o";
  9494. loadpage_lo = " 0 1 0 0 0 0 0 0",
  9495. " x x x x x x x x",
  9496. " x a6 a5 a4 a3 a2 a1 a0",
  9497. " i i i i i i i i";
  9498. loadpage_hi = " 0 1 0 0 1 0 0 0",
  9499. " x x x x x x x x",
  9500. " x a6 a5 a4 a3 a2 a1 a0",
  9501. " i i i i i i i i";
  9502. writepage = " 0 1 0 0 1 1 0 0",
  9503. "a15 a14 a13 a12 a11 a10 a9 a8",
  9504. " a7 x x x x x x x",
  9505. " x x x x x x x x";
  9506. mode = 0x41;
  9507. delay = 10;
  9508. blocksize = 256;
  9509. readsize = 256;
  9510. ;
  9511. memory "lfuse"
  9512. size = 1;
  9513. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  9514. "x x x x x x x x i i i i i i i i";
  9515. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  9516. "x x x x x x x x o o o o o o o o";
  9517. min_write_delay = 9000;
  9518. max_write_delay = 9000;
  9519. ;
  9520. memory "hfuse"
  9521. size = 1;
  9522. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  9523. "x x x x x x x x i i i i i i i i";
  9524. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  9525. "x x x x x x x x o o o o o o o o";
  9526. min_write_delay = 9000;
  9527. max_write_delay = 9000;
  9528. ;
  9529. memory "efuse"
  9530. size = 1;
  9531. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  9532. "x x x x x x x x x x x x x i i i";
  9533. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  9534. "x x x x x x x x o o o o o o o o";
  9535. min_write_delay = 9000;
  9536. max_write_delay = 9000;
  9537. ;
  9538. memory "lock"
  9539. size = 1;
  9540. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  9541. "x x x x x x x x x x o o o o o o";
  9542. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  9543. "x x x x x x x x 1 1 i i i i i i";
  9544. min_write_delay = 9000;
  9545. max_write_delay = 9000;
  9546. ;
  9547. memory "calibration"
  9548. size = 1;
  9549. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  9550. "0 0 0 0 0 0 0 0 o o o o o o o o";
  9551. ;
  9552. memory "signature"
  9553. size = 3;
  9554. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  9555. "x x x x x x a1 a0 o o o o o o o o";
  9556. ;
  9557. ;
  9558. #------------------------------------------------------------
  9559. # ATtiny24
  9560. #------------------------------------------------------------
  9561. part
  9562. id = "t24";
  9563. desc = "ATtiny24";
  9564. has_debugwire = yes;
  9565. flash_instr = 0xB4, 0x07, 0x17;
  9566. eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
  9567. 0xBC, 0x07, 0xB4, 0x07, 0xBA, 0x0D, 0xBB, 0xBC,
  9568. 0x99, 0xE1, 0xBB, 0xAC;
  9569. ## no STK500 devcode in XML file, use the ATtiny45 one
  9570. stk500_devcode = 0x14;
  9571. ## avr910_devcode = ?;
  9572. ## Try the AT90S2313 devcode:
  9573. avr910_devcode = 0x20;
  9574. signature = 0x1e 0x91 0x0b;
  9575. reset = io;
  9576. chip_erase_delay = 4500;
  9577. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  9578. "x x x x x x x x x x x x x x x x";
  9579. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  9580. "x x x x x x x x x x x x x x x x";
  9581. timeout = 200;
  9582. stabdelay = 100;
  9583. cmdexedelay = 25;
  9584. synchloops = 32;
  9585. bytedelay = 0;
  9586. pollindex = 3;
  9587. pollvalue = 0x53;
  9588. predelay = 1;
  9589. postdelay = 1;
  9590. pollmethod = 1;
  9591. hvsp_controlstack =
  9592. 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66,
  9593. 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78,
  9594. 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
  9595. 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x0F;
  9596. hventerstabdelay = 100;
  9597. hvspcmdexedelay = 0;
  9598. synchcycles = 6;
  9599. latchcycles = 1;
  9600. togglevtg = 1;
  9601. poweroffdelay = 25;
  9602. resetdelayms = 0;
  9603. resetdelayus = 70;
  9604. hvleavestabdelay = 100;
  9605. resetdelay = 25;
  9606. chiperasepolltimeout = 40;
  9607. chiperasetime = 0;
  9608. programfusepolltimeout = 25;
  9609. programlockpolltimeout = 25;
  9610. memory "eeprom"
  9611. size = 128;
  9612. paged = no;
  9613. page_size = 4;
  9614. min_write_delay = 4000;
  9615. max_write_delay = 4500;
  9616. readback_p1 = 0xff;
  9617. readback_p2 = 0xff;
  9618. read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x",
  9619. "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  9620. write = "1 1 0 0 0 0 0 0 0 0 0 x x x x x",
  9621. "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  9622. loadpage_lo = " 1 1 0 0 0 0 0 1",
  9623. " 0 0 0 0 0 0 0 0",
  9624. " 0 0 0 0 0 0 a1 a0",
  9625. " i i i i i i i i";
  9626. writepage = " 1 1 0 0 0 0 1 0",
  9627. " 0 0 x x x x x x",
  9628. " x a6 a5 a4 a3 a2 0 0",
  9629. " x x x x x x x x";
  9630. mode = 0x41;
  9631. delay = 6;
  9632. blocksize = 4;
  9633. readsize = 256;
  9634. ;
  9635. memory "flash"
  9636. paged = yes;
  9637. size = 2048;
  9638. page_size = 32;
  9639. num_pages = 64;
  9640. min_write_delay = 4500;
  9641. max_write_delay = 4500;
  9642. readback_p1 = 0xff;
  9643. readback_p2 = 0xff;
  9644. read_lo = " 0 0 1 0 0 0 0 0",
  9645. " 0 0 0 0 0 0 a9 a8",
  9646. " a7 a6 a5 a4 a3 a2 a1 a0",
  9647. " o o o o o o o o";
  9648. read_hi = " 0 0 1 0 1 0 0 0",
  9649. " 0 0 0 0 0 0 a9 a8",
  9650. " a7 a6 a5 a4 a3 a2 a1 a0",
  9651. " o o o o o o o o";
  9652. loadpage_lo = " 0 1 0 0 0 0 0 0",
  9653. " 0 0 0 x x x x x",
  9654. " x x x x a3 a2 a1 a0",
  9655. " i i i i i i i i";
  9656. loadpage_hi = " 0 1 0 0 1 0 0 0",
  9657. " 0 0 0 x x x x x",
  9658. " x x x x a3 a2 a1 a0",
  9659. " i i i i i i i i";
  9660. writepage = " 0 1 0 0 1 1 0 0",
  9661. " 0 0 0 0 0 0 a9 a8",
  9662. " a7 a6 a5 a4 x x x x",
  9663. " x x x x x x x x";
  9664. mode = 0x41;
  9665. delay = 6;
  9666. blocksize = 32;
  9667. readsize = 256;
  9668. ;
  9669. # ATtiny24 has Signature Bytes: 0x1E 0x91 0x0B.
  9670. memory "signature"
  9671. size = 3;
  9672. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  9673. "x x x x x x a1 a0 o o o o o o o o";
  9674. ;
  9675. memory "lock"
  9676. size = 1;
  9677. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  9678. "x x x x x x x x x x x x x x i i";
  9679. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  9680. "0 0 0 0 0 0 0 0 o o o o o o o o";
  9681. min_write_delay = 9000;
  9682. max_write_delay = 9000;
  9683. ;
  9684. memory "lfuse"
  9685. size = 1;
  9686. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  9687. "x x x x x x x x i i i i i i i i";
  9688. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  9689. "x x x x x x x x o o o o o o o o";
  9690. min_write_delay = 9000;
  9691. max_write_delay = 9000;
  9692. ;
  9693. memory "hfuse"
  9694. size = 1;
  9695. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  9696. "x x x x x x x x i i i i i i i i";
  9697. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  9698. "x x x x x x x x o o o o o o o o";
  9699. min_write_delay = 9000;
  9700. max_write_delay = 9000;
  9701. ;
  9702. memory "efuse"
  9703. size = 1;
  9704. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  9705. "x x x x x x x x x x x x x x x i";
  9706. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  9707. "x x x x x x x x o o o o o o o o";
  9708. min_write_delay = 9000;
  9709. max_write_delay = 9000;
  9710. ;
  9711. memory "calibration"
  9712. size = 1;
  9713. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  9714. "0 0 0 0 0 0 0 a0 o o o o o o o o";
  9715. ;
  9716. ;
  9717. #------------------------------------------------------------
  9718. # ATtiny44
  9719. #------------------------------------------------------------
  9720. part
  9721. id = "t44";
  9722. desc = "ATtiny44";
  9723. has_debugwire = yes;
  9724. flash_instr = 0xB4, 0x07, 0x17;
  9725. eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
  9726. 0xBC, 0x07, 0xB4, 0x07, 0xBA, 0x0D, 0xBB, 0xBC,
  9727. 0x99, 0xE1, 0xBB, 0xAC;
  9728. ## no STK500 devcode in XML file, use the ATtiny45 one
  9729. stk500_devcode = 0x14;
  9730. ## avr910_devcode = ?;
  9731. ## Try the AT90S2313 devcode:
  9732. avr910_devcode = 0x20;
  9733. signature = 0x1e 0x92 0x07;
  9734. reset = io;
  9735. chip_erase_delay = 4500;
  9736. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  9737. "x x x x x x x x x x x x x x x x";
  9738. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  9739. "x x x x x x x x x x x x x x x x";
  9740. timeout = 200;
  9741. stabdelay = 100;
  9742. cmdexedelay = 25;
  9743. synchloops = 32;
  9744. bytedelay = 0;
  9745. pollindex = 3;
  9746. pollvalue = 0x53;
  9747. predelay = 1;
  9748. postdelay = 1;
  9749. pollmethod = 1;
  9750. hvsp_controlstack =
  9751. 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66,
  9752. 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78,
  9753. 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
  9754. 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x0F;
  9755. hventerstabdelay = 100;
  9756. hvspcmdexedelay = 0;
  9757. synchcycles = 6;
  9758. latchcycles = 1;
  9759. togglevtg = 1;
  9760. poweroffdelay = 25;
  9761. resetdelayms = 0;
  9762. resetdelayus = 70;
  9763. hvleavestabdelay = 100;
  9764. resetdelay = 25;
  9765. chiperasepolltimeout = 40;
  9766. chiperasetime = 0;
  9767. programfusepolltimeout = 25;
  9768. programlockpolltimeout = 25;
  9769. memory "eeprom"
  9770. size = 256;
  9771. paged = no;
  9772. page_size = 4;
  9773. min_write_delay = 4000;
  9774. max_write_delay = 4500;
  9775. readback_p1 = 0xff;
  9776. readback_p2 = 0xff;
  9777. read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x",
  9778. "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  9779. write = "1 1 0 0 0 0 0 0 0 0 0 x x x x x",
  9780. "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  9781. loadpage_lo = " 1 1 0 0 0 0 0 1",
  9782. " 0 0 0 0 0 0 0 0",
  9783. " 0 0 0 0 0 0 a1 a0",
  9784. " i i i i i i i i";
  9785. writepage = " 1 1 0 0 0 0 1 0",
  9786. " 0 0 x x x x x x",
  9787. " x a6 a5 a4 a3 a2 0 0",
  9788. " x x x x x x x x";
  9789. mode = 0x41;
  9790. delay = 6;
  9791. blocksize = 4;
  9792. readsize = 256;
  9793. ;
  9794. memory "flash"
  9795. paged = yes;
  9796. size = 4096;
  9797. page_size = 64;
  9798. num_pages = 64;
  9799. min_write_delay = 4500;
  9800. max_write_delay = 4500;
  9801. readback_p1 = 0xff;
  9802. readback_p2 = 0xff;
  9803. read_lo = " 0 0 1 0 0 0 0 0",
  9804. " 0 0 0 0 0 a10 a9 a8",
  9805. " a7 a6 a5 a4 a3 a2 a1 a0",
  9806. " o o o o o o o o";
  9807. read_hi = " 0 0 1 0 1 0 0 0",
  9808. " 0 0 0 0 0 a10 a9 a8",
  9809. " a7 a6 a5 a4 a3 a2 a1 a0",
  9810. " o o o o o o o o";
  9811. loadpage_lo = " 0 1 0 0 0 0 0 0",
  9812. " 0 0 0 x x x x x",
  9813. " x x x a4 a3 a2 a1 a0",
  9814. " i i i i i i i i";
  9815. loadpage_hi = " 0 1 0 0 1 0 0 0",
  9816. " 0 0 0 x x x x x",
  9817. " x x x a4 a3 a2 a1 a0",
  9818. " i i i i i i i i";
  9819. writepage = " 0 1 0 0 1 1 0 0",
  9820. " 0 0 0 0 0 a10 a9 a8",
  9821. " a7 a6 a5 x x x x x",
  9822. " x x x x x x x x";
  9823. mode = 0x41;
  9824. delay = 6;
  9825. blocksize = 32;
  9826. readsize = 256;
  9827. ;
  9828. # ATtiny44 has Signature Bytes: 0x1E 0x92 0x07.
  9829. memory "signature"
  9830. size = 3;
  9831. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  9832. "x x x x x x a1 a0 o o o o o o o o";
  9833. ;
  9834. memory "lock"
  9835. size = 1;
  9836. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  9837. "x x x x x x x x x x x x x x i i";
  9838. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  9839. "0 0 0 0 0 0 0 0 o o o o o o o o";
  9840. min_write_delay = 9000;
  9841. max_write_delay = 9000;
  9842. ;
  9843. memory "lfuse"
  9844. size = 1;
  9845. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  9846. "x x x x x x x x i i i i i i i i";
  9847. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  9848. "x x x x x x x x o o o o o o o o";
  9849. min_write_delay = 9000;
  9850. max_write_delay = 9000;
  9851. ;
  9852. memory "hfuse"
  9853. size = 1;
  9854. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  9855. "x x x x x x x x i i i i i i i i";
  9856. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  9857. "x x x x x x x x o o o o o o o o";
  9858. min_write_delay = 9000;
  9859. max_write_delay = 9000;
  9860. ;
  9861. memory "efuse"
  9862. size = 1;
  9863. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  9864. "x x x x x x x x x x x x x x x i";
  9865. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  9866. "x x x x x x x x o o o o o o o o";
  9867. min_write_delay = 9000;
  9868. max_write_delay = 9000;
  9869. ;
  9870. memory "calibration"
  9871. size = 1;
  9872. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  9873. "0 0 0 0 0 0 0 a0 o o o o o o o o";
  9874. ;
  9875. ;
  9876. #------------------------------------------------------------
  9877. # ATtiny84
  9878. #------------------------------------------------------------
  9879. part
  9880. id = "t84";
  9881. desc = "ATtiny84";
  9882. has_debugwire = yes;
  9883. flash_instr = 0xB4, 0x07, 0x17;
  9884. eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
  9885. 0xBC, 0x07, 0xB4, 0x07, 0xBA, 0x0D, 0xBB, 0xBC,
  9886. 0x99, 0xE1, 0xBB, 0xAC;
  9887. ## no STK500 devcode in XML file, use the ATtiny45 one
  9888. stk500_devcode = 0x14;
  9889. ## avr910_devcode = ?;
  9890. ## Try the AT90S2313 devcode:
  9891. avr910_devcode = 0x20;
  9892. signature = 0x1e 0x93 0x0c;
  9893. reset = io;
  9894. chip_erase_delay = 4500;
  9895. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  9896. "x x x x x x x x x x x x x x x x";
  9897. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  9898. "x x x x x x x x x x x x x x x x";
  9899. timeout = 200;
  9900. stabdelay = 100;
  9901. cmdexedelay = 25;
  9902. synchloops = 32;
  9903. bytedelay = 0;
  9904. pollindex = 3;
  9905. pollvalue = 0x53;
  9906. predelay = 1;
  9907. postdelay = 1;
  9908. pollmethod = 1;
  9909. hvsp_controlstack =
  9910. 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66,
  9911. 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78,
  9912. 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
  9913. 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x0F;
  9914. hventerstabdelay = 100;
  9915. hvspcmdexedelay = 0;
  9916. synchcycles = 6;
  9917. latchcycles = 1;
  9918. togglevtg = 1;
  9919. poweroffdelay = 25;
  9920. resetdelayms = 0;
  9921. resetdelayus = 70;
  9922. hvleavestabdelay = 100;
  9923. resetdelay = 25;
  9924. chiperasepolltimeout = 40;
  9925. chiperasetime = 0;
  9926. programfusepolltimeout = 25;
  9927. programlockpolltimeout = 25;
  9928. memory "eeprom"
  9929. size = 512;
  9930. paged = no;
  9931. page_size = 4;
  9932. min_write_delay = 4000;
  9933. max_write_delay = 4500;
  9934. readback_p1 = 0xff;
  9935. readback_p2 = 0xff;
  9936. read = "1 0 1 0 0 0 0 0 0 0 0 x x x x a8",
  9937. "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  9938. write = "1 1 0 0 0 0 0 0 0 0 0 x x x x a8",
  9939. "a8 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  9940. loadpage_lo = " 1 1 0 0 0 0 0 1",
  9941. " 0 0 0 0 0 0 0 0",
  9942. " 0 0 0 0 0 0 a1 a0",
  9943. " i i i i i i i i";
  9944. writepage = " 1 1 0 0 0 0 1 0",
  9945. " 0 0 x x x x x x",
  9946. " x a6 a5 a4 a3 a2 0 0",
  9947. " x x x x x x x x";
  9948. mode = 0x41;
  9949. delay = 6;
  9950. blocksize = 4;
  9951. readsize = 256;
  9952. ;
  9953. memory "flash"
  9954. paged = yes;
  9955. size = 8192;
  9956. page_size = 64;
  9957. num_pages = 128;
  9958. min_write_delay = 4500;
  9959. max_write_delay = 4500;
  9960. readback_p1 = 0xff;
  9961. readback_p2 = 0xff;
  9962. read_lo = " 0 0 1 0 0 0 0 0",
  9963. " 0 0 0 0 a11 a10 a9 a8",
  9964. " a7 a6 a5 a4 a3 a2 a1 a0",
  9965. " o o o o o o o o";
  9966. read_hi = " 0 0 1 0 1 0 0 0",
  9967. " 0 0 0 0 a11 a10 a9 a8",
  9968. " a7 a6 a5 a4 a3 a2 a1 a0",
  9969. " o o o o o o o o";
  9970. loadpage_lo = " 0 1 0 0 0 0 0 0",
  9971. " 0 0 0 x x x x x",
  9972. " x x x a4 a3 a2 a1 a0",
  9973. " i i i i i i i i";
  9974. loadpage_hi = " 0 1 0 0 1 0 0 0",
  9975. " 0 0 0 x x x x x",
  9976. " x x x a4 a3 a2 a1 a0",
  9977. " i i i i i i i i";
  9978. writepage = " 0 1 0 0 1 1 0 0",
  9979. " 0 0 0 0 a11 a10 a9 a8",
  9980. " a7 a6 a5 x x x x x",
  9981. " x x x x x x x x";
  9982. mode = 0x41;
  9983. delay = 6;
  9984. blocksize = 32;
  9985. readsize = 256;
  9986. ;
  9987. # ATtiny84 has Signature Bytes: 0x1E 0x93 0x0C.
  9988. memory "signature"
  9989. size = 3;
  9990. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  9991. "x x x x x x a1 a0 o o o o o o o o";
  9992. ;
  9993. memory "lock"
  9994. size = 1;
  9995. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  9996. "x x x x x x x x x x x x x x i i";
  9997. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  9998. "0 0 0 0 0 0 0 0 o o o o o o o o";
  9999. min_write_delay = 9000;
  10000. max_write_delay = 9000;
  10001. ;
  10002. memory "lfuse"
  10003. size = 1;
  10004. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  10005. "x x x x x x x x i i i i i i i i";
  10006. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  10007. "x x x x x x x x o o o o o o o o";
  10008. min_write_delay = 9000;
  10009. max_write_delay = 9000;
  10010. ;
  10011. memory "hfuse"
  10012. size = 1;
  10013. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  10014. "x x x x x x x x i i i i i i i i";
  10015. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  10016. "x x x x x x x x o o o o o o o o";
  10017. min_write_delay = 9000;
  10018. max_write_delay = 9000;
  10019. ;
  10020. memory "efuse"
  10021. size = 1;
  10022. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  10023. "x x x x x x x x x x x x x x x i";
  10024. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  10025. "x x x x x x x x o o o o o o o o";
  10026. min_write_delay = 9000;
  10027. max_write_delay = 9000;
  10028. ;
  10029. memory "calibration"
  10030. size = 1;
  10031. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  10032. "0 0 0 0 0 0 0 a0 o o o o o o o o";
  10033. ;
  10034. ;
  10035. #------------------------------------------------------------
  10036. # ATmega32u4
  10037. #------------------------------------------------------------
  10038. part
  10039. id = "m32u4";
  10040. desc = "ATmega32U4";
  10041. signature = 0x1e 0x95 0x87;
  10042. has_jtag = yes;
  10043. # stk500_devcode = 0xB2;
  10044. # avr910_devcode = 0x43;
  10045. chip_erase_delay = 9000;
  10046. pagel = 0xD7;
  10047. bs2 = 0xA0;
  10048. reset = dedicated;
  10049. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  10050. "x x x x x x x x x x x x x x x x";
  10051. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  10052. "x x x x x x x x x x x x x x x x";
  10053. timeout = 200;
  10054. stabdelay = 100;
  10055. cmdexedelay = 25;
  10056. synchloops = 32;
  10057. bytedelay = 0;
  10058. pollindex = 3;
  10059. pollvalue = 0x53;
  10060. predelay = 1;
  10061. postdelay = 1;
  10062. pollmethod = 1;
  10063. pp_controlstack =
  10064. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  10065. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  10066. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  10067. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  10068. hventerstabdelay = 100;
  10069. progmodedelay = 0;
  10070. latchcycles = 5;
  10071. togglevtg = 1;
  10072. poweroffdelay = 15;
  10073. resetdelayms = 1;
  10074. resetdelayus = 0;
  10075. hvleavestabdelay = 15;
  10076. chiperasepulsewidth = 0;
  10077. chiperasepolltimeout = 10;
  10078. programfusepulsewidth = 0;
  10079. programfusepolltimeout = 5;
  10080. programlockpulsewidth = 0;
  10081. programlockpolltimeout = 5;
  10082. idr = 0x31;
  10083. spmcr = 0x57;
  10084. rampz = 0x3b;
  10085. allowfullpagebitstream = no;
  10086. memory "eeprom"
  10087. paged = no; /* leave this "no" */
  10088. page_size = 8; /* for parallel programming */
  10089. size = 1024;
  10090. min_write_delay = 9000;
  10091. max_write_delay = 9000;
  10092. readback_p1 = 0x00;
  10093. readback_p2 = 0x00;
  10094. read = " 1 0 1 0 0 0 0 0",
  10095. " x x x x x a10 a9 a8",
  10096. " a7 a6 a5 a4 a3 a2 a1 a0",
  10097. " o o o o o o o o";
  10098. write = " 1 1 0 0 0 0 0 0",
  10099. " x x x x x a10 a9 a8",
  10100. " a7 a6 a5 a4 a3 a2 a1 a0",
  10101. " i i i i i i i i";
  10102. loadpage_lo = " 1 1 0 0 0 0 0 1",
  10103. " 0 0 0 0 0 0 0 0",
  10104. " 0 0 0 0 0 a2 a1 a0",
  10105. " i i i i i i i i";
  10106. writepage = " 1 1 0 0 0 0 1 0",
  10107. " 0 0 x x x a10 a9 a8",
  10108. " a7 a6 a5 a4 a3 0 0 0",
  10109. " x x x x x x x x";
  10110. mode = 0x41;
  10111. delay = 10;
  10112. blocksize = 8;
  10113. readsize = 256;
  10114. ;
  10115. memory "flash"
  10116. paged = yes;
  10117. size = 32768;
  10118. page_size = 128;
  10119. num_pages = 256;
  10120. min_write_delay = 4500;
  10121. max_write_delay = 4500;
  10122. readback_p1 = 0x00;
  10123. readback_p2 = 0x00;
  10124. read_lo = " 0 0 1 0 0 0 0 0",
  10125. " 0 a14 a13 a12 a11 a10 a9 a8",
  10126. " a7 a6 a5 a4 a3 a2 a1 a0",
  10127. " o o o o o o o o";
  10128. read_hi = " 0 0 1 0 1 0 0 0",
  10129. " 0 a14 a13 a12 a11 a10 a9 a8",
  10130. " a7 a6 a5 a4 a3 a2 a1 a0",
  10131. " o o o o o o o o";
  10132. loadpage_lo = " 0 1 0 0 0 0 0 0",
  10133. " x x x x x x x x",
  10134. " x x a5 a4 a3 a2 a1 a0",
  10135. " i i i i i i i i";
  10136. loadpage_hi = " 0 1 0 0 1 0 0 0",
  10137. " x x x x x x x x",
  10138. " x x a5 a4 a3 a2 a1 a0",
  10139. " i i i i i i i i";
  10140. writepage = " 0 1 0 0 1 1 0 0",
  10141. " a15 a14 a13 a12 a11 a10 a9 a8",
  10142. " a7 a6 x x x x x x",
  10143. " x x x x x x x x";
  10144. mode = 0x41;
  10145. delay = 6;
  10146. blocksize = 128;
  10147. readsize = 256;
  10148. ;
  10149. memory "lfuse"
  10150. size = 1;
  10151. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  10152. "x x x x x x x x i i i i i i i i";
  10153. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  10154. "x x x x x x x x o o o o o o o o";
  10155. min_write_delay = 9000;
  10156. max_write_delay = 9000;
  10157. ;
  10158. memory "hfuse"
  10159. size = 1;
  10160. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  10161. "x x x x x x x x i i i i i i i i";
  10162. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  10163. "x x x x x x x x o o o o o o o o";
  10164. min_write_delay = 9000;
  10165. max_write_delay = 9000;
  10166. ;
  10167. memory "efuse"
  10168. size = 1;
  10169. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  10170. "x x x x x x x x x x x x i i i i";
  10171. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  10172. "x x x x x x x x o o o o o o o o";
  10173. min_write_delay = 9000;
  10174. max_write_delay = 9000;
  10175. ;
  10176. memory "lock"
  10177. size = 1;
  10178. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  10179. "x x x x x x x x x x o o o o o o";
  10180. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  10181. "x x x x x x x x 1 1 i i i i i i";
  10182. min_write_delay = 9000;
  10183. max_write_delay = 9000;
  10184. ;
  10185. memory "calibration"
  10186. size = 1;
  10187. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  10188. "0 0 0 0 0 0 0 0 o o o o o o o o";
  10189. ;
  10190. memory "signature"
  10191. size = 3;
  10192. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  10193. "x x x x x x a1 a0 o o o o o o o o";
  10194. ;
  10195. ;
  10196. #------------------------------------------------------------
  10197. # AT90USB646
  10198. #------------------------------------------------------------
  10199. part
  10200. id = "usb646";
  10201. desc = "AT90USB646";
  10202. signature = 0x1e 0x96 0x82;
  10203. has_jtag = yes;
  10204. # stk500_devcode = 0xB2;
  10205. # avr910_devcode = 0x43;
  10206. chip_erase_delay = 9000;
  10207. pagel = 0xD7;
  10208. bs2 = 0xA0;
  10209. reset = dedicated;
  10210. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  10211. "x x x x x x x x x x x x x x x x";
  10212. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  10213. "x x x x x x x x x x x x x x x x";
  10214. timeout = 200;
  10215. stabdelay = 100;
  10216. cmdexedelay = 25;
  10217. synchloops = 32;
  10218. bytedelay = 0;
  10219. pollindex = 3;
  10220. pollvalue = 0x53;
  10221. predelay = 1;
  10222. postdelay = 1;
  10223. pollmethod = 1;
  10224. pp_controlstack =
  10225. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  10226. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  10227. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  10228. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  10229. hventerstabdelay = 100;
  10230. progmodedelay = 0;
  10231. latchcycles = 5;
  10232. togglevtg = 1;
  10233. poweroffdelay = 15;
  10234. resetdelayms = 1;
  10235. resetdelayus = 0;
  10236. hvleavestabdelay = 15;
  10237. chiperasepulsewidth = 0;
  10238. chiperasepolltimeout = 10;
  10239. programfusepulsewidth = 0;
  10240. programfusepolltimeout = 5;
  10241. programlockpulsewidth = 0;
  10242. programlockpolltimeout = 5;
  10243. idr = 0x31;
  10244. spmcr = 0x57;
  10245. rampz = 0x3b;
  10246. allowfullpagebitstream = no;
  10247. memory "eeprom"
  10248. paged = no; /* leave this "no" */
  10249. page_size = 8; /* for parallel programming */
  10250. size = 2048;
  10251. min_write_delay = 9000;
  10252. max_write_delay = 9000;
  10253. readback_p1 = 0x00;
  10254. readback_p2 = 0x00;
  10255. read = " 1 0 1 0 0 0 0 0",
  10256. " x x x x x a10 a9 a8",
  10257. " a7 a6 a5 a4 a3 a2 a1 a0",
  10258. " o o o o o o o o";
  10259. write = " 1 1 0 0 0 0 0 0",
  10260. " x x x x x a10 a9 a8",
  10261. " a7 a6 a5 a4 a3 a2 a1 a0",
  10262. " i i i i i i i i";
  10263. loadpage_lo = " 1 1 0 0 0 0 0 1",
  10264. " 0 0 0 0 0 0 0 0",
  10265. " 0 0 0 0 0 a2 a1 a0",
  10266. " i i i i i i i i";
  10267. writepage = " 1 1 0 0 0 0 1 0",
  10268. " 0 0 x x x a10 a9 a8",
  10269. " a7 a6 a5 a4 a3 0 0 0",
  10270. " x x x x x x x x";
  10271. mode = 0x41;
  10272. delay = 10;
  10273. blocksize = 8;
  10274. readsize = 256;
  10275. ;
  10276. memory "flash"
  10277. paged = yes;
  10278. size = 65536;
  10279. page_size = 256;
  10280. num_pages = 256;
  10281. min_write_delay = 4500;
  10282. max_write_delay = 4500;
  10283. readback_p1 = 0x00;
  10284. readback_p2 = 0x00;
  10285. read_lo = " 0 0 1 0 0 0 0 0",
  10286. " 0 a14 a13 a12 a11 a10 a9 a8",
  10287. " a7 a6 a5 a4 a3 a2 a1 a0",
  10288. " o o o o o o o o";
  10289. read_hi = " 0 0 1 0 1 0 0 0",
  10290. " 0 a14 a13 a12 a11 a10 a9 a8",
  10291. " a7 a6 a5 a4 a3 a2 a1 a0",
  10292. " o o o o o o o o";
  10293. loadpage_lo = " 0 1 0 0 0 0 0 0",
  10294. " x x x x x x x x",
  10295. " x a6 a5 a4 a3 a2 a1 a0",
  10296. " i i i i i i i i";
  10297. loadpage_hi = " 0 1 0 0 1 0 0 0",
  10298. " x x x x x x x x",
  10299. " x a6 a5 a4 a3 a2 a1 a0",
  10300. " i i i i i i i i";
  10301. writepage = " 0 1 0 0 1 1 0 0",
  10302. " 0 a14 a13 a12 a11 a10 a9 a8",
  10303. " a7 x x x x x x x",
  10304. " x x x x x x x x";
  10305. mode = 0x41;
  10306. delay = 6;
  10307. blocksize = 256;
  10308. readsize = 256;
  10309. ;
  10310. memory "lfuse"
  10311. size = 1;
  10312. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  10313. "x x x x x x x x i i i i i i i i";
  10314. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  10315. "x x x x x x x x o o o o o o o o";
  10316. min_write_delay = 9000;
  10317. max_write_delay = 9000;
  10318. ;
  10319. memory "hfuse"
  10320. size = 1;
  10321. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  10322. "x x x x x x x x i i i i i i i i";
  10323. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  10324. "x x x x x x x x o o o o o o o o";
  10325. min_write_delay = 9000;
  10326. max_write_delay = 9000;
  10327. ;
  10328. memory "efuse"
  10329. size = 1;
  10330. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  10331. "x x x x x x x x x x x x i i i i";
  10332. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  10333. "x x x x x x x x o o o o o o o o";
  10334. min_write_delay = 9000;
  10335. max_write_delay = 9000;
  10336. ;
  10337. memory "lock"
  10338. size = 1;
  10339. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  10340. "x x x x x x x x x x o o o o o o";
  10341. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  10342. "x x x x x x x x 1 1 i i i i i i";
  10343. min_write_delay = 9000;
  10344. max_write_delay = 9000;
  10345. ;
  10346. memory "calibration"
  10347. size = 1;
  10348. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  10349. "0 0 0 0 0 0 0 0 o o o o o o o o";
  10350. ;
  10351. memory "signature"
  10352. size = 3;
  10353. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  10354. "x x x x x x a1 a0 o o o o o o o o";
  10355. ;
  10356. ;
  10357. #------------------------------------------------------------
  10358. # AT90USB647
  10359. #------------------------------------------------------------
  10360. # identical to AT90USB646
  10361. part
  10362. id = "usb647";
  10363. desc = "AT90USB647";
  10364. signature = 0x1e 0x96 0x82;
  10365. has_jtag = yes;
  10366. # stk500_devcode = 0xB2;
  10367. # avr910_devcode = 0x43;
  10368. chip_erase_delay = 9000;
  10369. pagel = 0xD7;
  10370. bs2 = 0xA0;
  10371. reset = dedicated;
  10372. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  10373. "x x x x x x x x x x x x x x x x";
  10374. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  10375. "x x x x x x x x x x x x x x x x";
  10376. timeout = 200;
  10377. stabdelay = 100;
  10378. cmdexedelay = 25;
  10379. synchloops = 32;
  10380. bytedelay = 0;
  10381. pollindex = 3;
  10382. pollvalue = 0x53;
  10383. predelay = 1;
  10384. postdelay = 1;
  10385. pollmethod = 1;
  10386. pp_controlstack =
  10387. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  10388. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  10389. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  10390. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  10391. hventerstabdelay = 100;
  10392. progmodedelay = 0;
  10393. latchcycles = 5;
  10394. togglevtg = 1;
  10395. poweroffdelay = 15;
  10396. resetdelayms = 1;
  10397. resetdelayus = 0;
  10398. hvleavestabdelay = 15;
  10399. chiperasepulsewidth = 0;
  10400. chiperasepolltimeout = 10;
  10401. programfusepulsewidth = 0;
  10402. programfusepolltimeout = 5;
  10403. programlockpulsewidth = 0;
  10404. programlockpolltimeout = 5;
  10405. idr = 0x31;
  10406. spmcr = 0x57;
  10407. rampz = 0x3b;
  10408. allowfullpagebitstream = no;
  10409. memory "eeprom"
  10410. paged = no; /* leave this "no" */
  10411. page_size = 8; /* for parallel programming */
  10412. size = 2048;
  10413. min_write_delay = 9000;
  10414. max_write_delay = 9000;
  10415. readback_p1 = 0x00;
  10416. readback_p2 = 0x00;
  10417. read = " 1 0 1 0 0 0 0 0",
  10418. " x x x x x a10 a9 a8",
  10419. " a7 a6 a5 a4 a3 a2 a1 a0",
  10420. " o o o o o o o o";
  10421. write = " 1 1 0 0 0 0 0 0",
  10422. " x x x x x a10 a9 a8",
  10423. " a7 a6 a5 a4 a3 a2 a1 a0",
  10424. " i i i i i i i i";
  10425. loadpage_lo = " 1 1 0 0 0 0 0 1",
  10426. " 0 0 0 0 0 0 0 0",
  10427. " 0 0 0 0 0 a2 a1 a0",
  10428. " i i i i i i i i";
  10429. writepage = " 1 1 0 0 0 0 1 0",
  10430. " 0 0 x x x a10 a9 a8",
  10431. " a7 a6 a5 a4 a3 0 0 0",
  10432. " x x x x x x x x";
  10433. mode = 0x41;
  10434. delay = 10;
  10435. blocksize = 8;
  10436. readsize = 256;
  10437. ;
  10438. memory "flash"
  10439. paged = yes;
  10440. size = 65536;
  10441. page_size = 256;
  10442. num_pages = 256;
  10443. min_write_delay = 4500;
  10444. max_write_delay = 4500;
  10445. readback_p1 = 0x00;
  10446. readback_p2 = 0x00;
  10447. read_lo = " 0 0 1 0 0 0 0 0",
  10448. " 0 a14 a13 a12 a11 a10 a9 a8",
  10449. " a7 a6 a5 a4 a3 a2 a1 a0",
  10450. " o o o o o o o o";
  10451. read_hi = " 0 0 1 0 1 0 0 0",
  10452. " 0 a14 a13 a12 a11 a10 a9 a8",
  10453. " a7 a6 a5 a4 a3 a2 a1 a0",
  10454. " o o o o o o o o";
  10455. loadpage_lo = " 0 1 0 0 0 0 0 0",
  10456. " x x x x x x x x",
  10457. " x a6 a5 a4 a3 a2 a1 a0",
  10458. " i i i i i i i i";
  10459. loadpage_hi = " 0 1 0 0 1 0 0 0",
  10460. " x x x x x x x x",
  10461. " x a6 a5 a4 a3 a2 a1 a0",
  10462. " i i i i i i i i";
  10463. writepage = " 0 1 0 0 1 1 0 0",
  10464. " 0 a14 a13 a12 a11 a10 a9 a8",
  10465. " a7 x x x x x x x",
  10466. " x x x x x x x x";
  10467. mode = 0x41;
  10468. delay = 6;
  10469. blocksize = 256;
  10470. readsize = 256;
  10471. ;
  10472. memory "lfuse"
  10473. size = 1;
  10474. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  10475. "x x x x x x x x i i i i i i i i";
  10476. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  10477. "x x x x x x x x o o o o o o o o";
  10478. min_write_delay = 9000;
  10479. max_write_delay = 9000;
  10480. ;
  10481. memory "hfuse"
  10482. size = 1;
  10483. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  10484. "x x x x x x x x i i i i i i i i";
  10485. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  10486. "x x x x x x x x o o o o o o o o";
  10487. min_write_delay = 9000;
  10488. max_write_delay = 9000;
  10489. ;
  10490. memory "efuse"
  10491. size = 1;
  10492. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  10493. "x x x x x x x x x x x x i i i i";
  10494. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  10495. "x x x x x x x x o o o o o o o o";
  10496. min_write_delay = 9000;
  10497. max_write_delay = 9000;
  10498. ;
  10499. memory "lock"
  10500. size = 1;
  10501. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  10502. "x x x x x x x x x x o o o o o o";
  10503. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  10504. "x x x x x x x x 1 1 i i i i i i";
  10505. min_write_delay = 9000;
  10506. max_write_delay = 9000;
  10507. ;
  10508. memory "calibration"
  10509. size = 1;
  10510. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  10511. "0 0 0 0 0 0 0 0 o o o o o o o o";
  10512. ;
  10513. memory "signature"
  10514. size = 3;
  10515. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  10516. "x x x x x x a1 a0 o o o o o o o o";
  10517. ;
  10518. ;
  10519. #------------------------------------------------------------
  10520. # AT90USB1286
  10521. #------------------------------------------------------------
  10522. part
  10523. id = "usb1286";
  10524. desc = "AT90USB1286";
  10525. signature = 0x1e 0x97 0x82;
  10526. has_jtag = yes;
  10527. # stk500_devcode = 0xB2;
  10528. # avr910_devcode = 0x43;
  10529. chip_erase_delay = 9000;
  10530. pagel = 0xD7;
  10531. bs2 = 0xA0;
  10532. reset = dedicated;
  10533. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  10534. "x x x x x x x x x x x x x x x x";
  10535. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  10536. "x x x x x x x x x x x x x x x x";
  10537. timeout = 200;
  10538. stabdelay = 100;
  10539. cmdexedelay = 25;
  10540. synchloops = 32;
  10541. bytedelay = 0;
  10542. pollindex = 3;
  10543. pollvalue = 0x53;
  10544. predelay = 1;
  10545. postdelay = 1;
  10546. pollmethod = 1;
  10547. pp_controlstack =
  10548. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  10549. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  10550. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  10551. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  10552. hventerstabdelay = 100;
  10553. progmodedelay = 0;
  10554. latchcycles = 5;
  10555. togglevtg = 1;
  10556. poweroffdelay = 15;
  10557. resetdelayms = 1;
  10558. resetdelayus = 0;
  10559. hvleavestabdelay = 15;
  10560. chiperasepulsewidth = 0;
  10561. chiperasepolltimeout = 10;
  10562. programfusepulsewidth = 0;
  10563. programfusepolltimeout = 5;
  10564. programlockpulsewidth = 0;
  10565. programlockpolltimeout = 5;
  10566. idr = 0x31;
  10567. spmcr = 0x57;
  10568. rampz = 0x3b;
  10569. allowfullpagebitstream = no;
  10570. memory "eeprom"
  10571. paged = no; /* leave this "no" */
  10572. page_size = 8; /* for parallel programming */
  10573. size = 4096;
  10574. min_write_delay = 9000;
  10575. max_write_delay = 9000;
  10576. readback_p1 = 0x00;
  10577. readback_p2 = 0x00;
  10578. read = " 1 0 1 0 0 0 0 0",
  10579. " x x x x a11 a10 a9 a8",
  10580. " a7 a6 a5 a4 a3 a2 a1 a0",
  10581. " o o o o o o o o";
  10582. write = " 1 1 0 0 0 0 0 0",
  10583. " x x x x a11 a10 a9 a8",
  10584. " a7 a6 a5 a4 a3 a2 a1 a0",
  10585. " i i i i i i i i";
  10586. loadpage_lo = " 1 1 0 0 0 0 0 1",
  10587. " 0 0 0 0 0 0 0 0",
  10588. " 0 0 0 0 0 a2 a1 a0",
  10589. " i i i i i i i i";
  10590. writepage = " 1 1 0 0 0 0 1 0",
  10591. " 0 0 x x x a10 a9 a8",
  10592. " a7 a6 a5 a4 a3 0 0 0",
  10593. " x x x x x x x x";
  10594. mode = 0x41;
  10595. delay = 10;
  10596. blocksize = 8;
  10597. readsize = 256;
  10598. ;
  10599. memory "flash"
  10600. paged = yes;
  10601. size = 131072;
  10602. page_size = 256;
  10603. num_pages = 512;
  10604. min_write_delay = 4500;
  10605. max_write_delay = 4500;
  10606. readback_p1 = 0x00;
  10607. readback_p2 = 0x00;
  10608. read_lo = " 0 0 1 0 0 0 0 0",
  10609. "a15 a14 a13 a12 a11 a10 a9 a8",
  10610. " a7 a6 a5 a4 a3 a2 a1 a0",
  10611. " o o o o o o o o";
  10612. read_hi = " 0 0 1 0 1 0 0 0",
  10613. "a15 a14 a13 a12 a11 a10 a9 a8",
  10614. " a7 a6 a5 a4 a3 a2 a1 a0",
  10615. " o o o o o o o o";
  10616. loadpage_lo = " 0 1 0 0 0 0 0 0",
  10617. " x x x x x x x x",
  10618. " x a6 a5 a4 a3 a2 a1 a0",
  10619. " i i i i i i i i";
  10620. loadpage_hi = " 0 1 0 0 1 0 0 0",
  10621. " x x x x x x x x",
  10622. " x a6 a5 a4 a3 a2 a1 a0",
  10623. " i i i i i i i i";
  10624. writepage = " 0 1 0 0 1 1 0 0",
  10625. "a15 a14 a13 a12 a11 a10 a9 a8",
  10626. " a7 x x x x x x x",
  10627. " x x x x x x x x";
  10628. mode = 0x41;
  10629. delay = 6;
  10630. blocksize = 256;
  10631. readsize = 256;
  10632. ;
  10633. memory "lfuse"
  10634. size = 1;
  10635. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  10636. "x x x x x x x x i i i i i i i i";
  10637. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  10638. "x x x x x x x x o o o o o o o o";
  10639. min_write_delay = 9000;
  10640. max_write_delay = 9000;
  10641. ;
  10642. memory "hfuse"
  10643. size = 1;
  10644. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  10645. "x x x x x x x x i i i i i i i i";
  10646. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  10647. "x x x x x x x x o o o o o o o o";
  10648. min_write_delay = 9000;
  10649. max_write_delay = 9000;
  10650. ;
  10651. memory "efuse"
  10652. size = 1;
  10653. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  10654. "x x x x x x x x x x x x i i i i";
  10655. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  10656. "x x x x x x x x o o o o o o o o";
  10657. min_write_delay = 9000;
  10658. max_write_delay = 9000;
  10659. ;
  10660. memory "lock"
  10661. size = 1;
  10662. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  10663. "x x x x x x x x x x o o o o o o";
  10664. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  10665. "x x x x x x x x 1 1 i i i i i i";
  10666. min_write_delay = 9000;
  10667. max_write_delay = 9000;
  10668. ;
  10669. memory "calibration"
  10670. size = 1;
  10671. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  10672. "0 0 0 0 0 0 0 0 o o o o o o o o";
  10673. ;
  10674. memory "signature"
  10675. size = 3;
  10676. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  10677. "x x x x x x a1 a0 o o o o o o o o";
  10678. ;
  10679. ;
  10680. #------------------------------------------------------------
  10681. # AT90USB1287
  10682. #------------------------------------------------------------
  10683. # identical to AT90USB1286
  10684. part
  10685. id = "usb1287";
  10686. desc = "AT90USB1287";
  10687. signature = 0x1e 0x97 0x82;
  10688. has_jtag = yes;
  10689. # stk500_devcode = 0xB2;
  10690. # avr910_devcode = 0x43;
  10691. chip_erase_delay = 9000;
  10692. pagel = 0xD7;
  10693. bs2 = 0xA0;
  10694. reset = dedicated;
  10695. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  10696. "x x x x x x x x x x x x x x x x";
  10697. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  10698. "x x x x x x x x x x x x x x x x";
  10699. timeout = 200;
  10700. stabdelay = 100;
  10701. cmdexedelay = 25;
  10702. synchloops = 32;
  10703. bytedelay = 0;
  10704. pollindex = 3;
  10705. pollvalue = 0x53;
  10706. predelay = 1;
  10707. postdelay = 1;
  10708. pollmethod = 1;
  10709. pp_controlstack =
  10710. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  10711. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  10712. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  10713. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  10714. hventerstabdelay = 100;
  10715. progmodedelay = 0;
  10716. latchcycles = 5;
  10717. togglevtg = 1;
  10718. poweroffdelay = 15;
  10719. resetdelayms = 1;
  10720. resetdelayus = 0;
  10721. hvleavestabdelay = 15;
  10722. chiperasepulsewidth = 0;
  10723. chiperasepolltimeout = 10;
  10724. programfusepulsewidth = 0;
  10725. programfusepolltimeout = 5;
  10726. programlockpulsewidth = 0;
  10727. programlockpolltimeout = 5;
  10728. idr = 0x31;
  10729. spmcr = 0x57;
  10730. rampz = 0x3b;
  10731. allowfullpagebitstream = no;
  10732. memory "eeprom"
  10733. paged = no; /* leave this "no" */
  10734. page_size = 8; /* for parallel programming */
  10735. size = 4096;
  10736. min_write_delay = 9000;
  10737. max_write_delay = 9000;
  10738. readback_p1 = 0x00;
  10739. readback_p2 = 0x00;
  10740. read = " 1 0 1 0 0 0 0 0",
  10741. " x x x x a11 a10 a9 a8",
  10742. " a7 a6 a5 a4 a3 a2 a1 a0",
  10743. " o o o o o o o o";
  10744. write = " 1 1 0 0 0 0 0 0",
  10745. " x x x x a11 a10 a9 a8",
  10746. " a7 a6 a5 a4 a3 a2 a1 a0",
  10747. " i i i i i i i i";
  10748. loadpage_lo = " 1 1 0 0 0 0 0 1",
  10749. " 0 0 0 0 0 0 0 0",
  10750. " 0 0 0 0 0 a2 a1 a0",
  10751. " i i i i i i i i";
  10752. writepage = " 1 1 0 0 0 0 1 0",
  10753. " 0 0 x x x a10 a9 a8",
  10754. " a7 a6 a5 a4 a3 0 0 0",
  10755. " x x x x x x x x";
  10756. mode = 0x41;
  10757. delay = 10;
  10758. blocksize = 8;
  10759. readsize = 256;
  10760. ;
  10761. memory "flash"
  10762. paged = yes;
  10763. size = 131072;
  10764. page_size = 256;
  10765. num_pages = 512;
  10766. min_write_delay = 4500;
  10767. max_write_delay = 4500;
  10768. readback_p1 = 0x00;
  10769. readback_p2 = 0x00;
  10770. read_lo = " 0 0 1 0 0 0 0 0",
  10771. "a15 a14 a13 a12 a11 a10 a9 a8",
  10772. " a7 a6 a5 a4 a3 a2 a1 a0",
  10773. " o o o o o o o o";
  10774. read_hi = " 0 0 1 0 1 0 0 0",
  10775. "a15 a14 a13 a12 a11 a10 a9 a8",
  10776. " a7 a6 a5 a4 a3 a2 a1 a0",
  10777. " o o o o o o o o";
  10778. loadpage_lo = " 0 1 0 0 0 0 0 0",
  10779. " x x x x x x x x",
  10780. " x a6 a5 a4 a3 a2 a1 a0",
  10781. " i i i i i i i i";
  10782. loadpage_hi = " 0 1 0 0 1 0 0 0",
  10783. " x x x x x x x x",
  10784. " x a6 a5 a4 a3 a2 a1 a0",
  10785. " i i i i i i i i";
  10786. writepage = " 0 1 0 0 1 1 0 0",
  10787. "a15 a14 a13 a12 a11 a10 a9 a8",
  10788. " a7 x x x x x x x",
  10789. " x x x x x x x x";
  10790. mode = 0x41;
  10791. delay = 6;
  10792. blocksize = 256;
  10793. readsize = 256;
  10794. ;
  10795. memory "lfuse"
  10796. size = 1;
  10797. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  10798. "x x x x x x x x i i i i i i i i";
  10799. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  10800. "x x x x x x x x o o o o o o o o";
  10801. min_write_delay = 9000;
  10802. max_write_delay = 9000;
  10803. ;
  10804. memory "hfuse"
  10805. size = 1;
  10806. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  10807. "x x x x x x x x i i i i i i i i";
  10808. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  10809. "x x x x x x x x o o o o o o o o";
  10810. min_write_delay = 9000;
  10811. max_write_delay = 9000;
  10812. ;
  10813. memory "efuse"
  10814. size = 1;
  10815. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  10816. "x x x x x x x x x x x x i i i i";
  10817. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  10818. "x x x x x x x x o o o o o o o o";
  10819. min_write_delay = 9000;
  10820. max_write_delay = 9000;
  10821. ;
  10822. memory "lock"
  10823. size = 1;
  10824. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  10825. "x x x x x x x x x x o o o o o o";
  10826. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  10827. "x x x x x x x x 1 1 i i i i i i";
  10828. min_write_delay = 9000;
  10829. max_write_delay = 9000;
  10830. ;
  10831. memory "calibration"
  10832. size = 1;
  10833. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  10834. "0 0 0 0 0 0 0 0 o o o o o o o o";
  10835. ;
  10836. memory "signature"
  10837. size = 3;
  10838. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  10839. "x x x x x x a1 a0 o o o o o o o o";
  10840. ;
  10841. ;
  10842. #------------------------------------------------------------
  10843. # AT90USB162
  10844. #------------------------------------------------------------
  10845. part
  10846. id = "usb162";
  10847. desc = "AT90USB162";
  10848. has_jtag = no;
  10849. has_debugwire = yes;
  10850. signature = 0x1e 0x94 0x82;
  10851. chip_erase_delay = 9000;
  10852. reset = io;
  10853. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  10854. "x x x x x x x x x x x x x x x x";
  10855. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  10856. "x x x x x x x x x x x x x x x x";
  10857. pagel = 0xD7;
  10858. bs2 = 0xC6;
  10859. timeout = 200;
  10860. stabdelay = 100;
  10861. cmdexedelay = 25;
  10862. synchloops = 32;
  10863. bytedelay = 0;
  10864. pollindex = 3;
  10865. pollvalue = 0x53;
  10866. predelay = 1;
  10867. postdelay = 1;
  10868. pollmethod = 1;
  10869. pp_controlstack =
  10870. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  10871. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  10872. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  10873. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  10874. hventerstabdelay = 100;
  10875. progmodedelay = 0;
  10876. latchcycles = 5;
  10877. togglevtg = 1;
  10878. poweroffdelay = 15;
  10879. resetdelayms = 1;
  10880. resetdelayus = 0;
  10881. hvleavestabdelay = 15;
  10882. chiperasepulsewidth = 0;
  10883. chiperasepolltimeout = 10;
  10884. programfusepulsewidth = 0;
  10885. programfusepolltimeout = 5;
  10886. programlockpulsewidth = 0;
  10887. programlockpolltimeout = 5;
  10888. memory "eeprom"
  10889. paged = no; /* leave this "no" */
  10890. page_size = 4; /* for parallel programming */
  10891. size = 512;
  10892. num_pages = 128;
  10893. min_write_delay = 9000;
  10894. max_write_delay = 9000;
  10895. readback_p1 = 0x00;
  10896. readback_p2 = 0x00;
  10897. read = " 1 0 1 0 0 0 0 0",
  10898. " 0 0 0 0 a11 a10 a9 a8",
  10899. " a7 a6 a5 a4 a3 a2 a1 a0",
  10900. " o o o o o o o o";
  10901. write = " 1 1 0 0 0 0 0 0",
  10902. " 0 0 0 0 a11 a10 a9 a8",
  10903. " a7 a6 a5 a4 a3 a2 a1 a0",
  10904. " i i i i i i i i";
  10905. loadpage_lo = " 1 1 0 0 0 0 0 1",
  10906. " 0 0 0 0 0 0 0 0",
  10907. " 0 0 0 0 0 0 a1 a0",
  10908. " i i i i i i i i";
  10909. writepage = " 1 1 0 0 0 0 1 0",
  10910. " 0 0 0 0 a11 a10 a9 a8",
  10911. " a7 a6 a5 a4 a3 a2 0 0",
  10912. " x x x x x x x x";
  10913. mode = 0x41;
  10914. delay = 20;
  10915. blocksize = 4;
  10916. readsize = 256;
  10917. ;
  10918. memory "flash"
  10919. paged = yes;
  10920. size = 16384;
  10921. page_size = 128;
  10922. num_pages = 128;
  10923. min_write_delay = 4500;
  10924. max_write_delay = 4500;
  10925. readback_p1 = 0x00;
  10926. readback_p2 = 0x00;
  10927. read_lo = " 0 0 1 0 0 0 0 0",
  10928. "a15 a14 a13 a12 a11 a10 a9 a8",
  10929. " a7 a6 a5 a4 a3 a2 a1 a0",
  10930. " o o o o o o o o";
  10931. read_hi = " 0 0 1 0 1 0 0 0",
  10932. "a15 a14 a13 a12 a11 a10 a9 a8",
  10933. " a7 a6 a5 a4 a3 a2 a1 a0",
  10934. " o o o o o o o o";
  10935. loadpage_lo = " 0 1 0 0 0 0 0 0",
  10936. " x x x x x x x x",
  10937. " x x a5 a4 a3 a2 a1 a0",
  10938. " i i i i i i i i";
  10939. loadpage_hi = " 0 1 0 0 1 0 0 0",
  10940. " x x x x x x x x",
  10941. " x x a5 a4 a3 a2 a1 a0",
  10942. " i i i i i i i i";
  10943. writepage = " 0 1 0 0 1 1 0 0",
  10944. "a15 a14 a13 a12 a11 a10 a9 a8",
  10945. " a7 a6 x x x x x x",
  10946. " x x x x x x x x";
  10947. mode = 0x41;
  10948. delay = 6;
  10949. blocksize = 128;
  10950. readsize = 256;
  10951. ;
  10952. memory "lfuse"
  10953. size = 1;
  10954. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  10955. "x x x x x x x x i i i i i i i i";
  10956. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  10957. "x x x x x x x x o o o o o o o o";
  10958. min_write_delay = 9000;
  10959. max_write_delay = 9000;
  10960. ;
  10961. memory "hfuse"
  10962. size = 1;
  10963. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  10964. "x x x x x x x x i i i i i i i i";
  10965. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  10966. "x x x x x x x x o o o o o o o o";
  10967. min_write_delay = 9000;
  10968. max_write_delay = 9000;
  10969. ;
  10970. memory "efuse"
  10971. size = 1;
  10972. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  10973. "x x x x x x x x i i i i i i i i";
  10974. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  10975. "x x x x x x x x o o o o o o o o";
  10976. min_write_delay = 9000;
  10977. max_write_delay = 9000;
  10978. ;
  10979. memory "lock"
  10980. size = 1;
  10981. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  10982. "x x x x x x x x x x o o o o o o";
  10983. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  10984. "x x x x x x x x 1 1 i i i i i i";
  10985. min_write_delay = 9000;
  10986. max_write_delay = 9000;
  10987. ;
  10988. memory "calibration"
  10989. size = 1;
  10990. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  10991. "0 0 0 0 0 0 0 0 o o o o o o o o";
  10992. ;
  10993. memory "signature"
  10994. size = 3;
  10995. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  10996. "x x x x x x a1 a0 o o o o o o o o";
  10997. ;
  10998. ;
  10999. #------------------------------------------------------------
  11000. # AT90USB82
  11001. #------------------------------------------------------------
  11002. # Changes against AT90USB162 (beside IDs)
  11003. # memory "flash"
  11004. # size = 8192;
  11005. # num_pages = 64;
  11006. part
  11007. id = "usb82";
  11008. desc = "AT90USB82";
  11009. has_jtag = no;
  11010. has_debugwire = yes;
  11011. signature = 0x1e 0x93 0x82;
  11012. chip_erase_delay = 9000;
  11013. reset = io;
  11014. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  11015. "x x x x x x x x x x x x x x x x";
  11016. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  11017. "x x x x x x x x x x x x x x x x";
  11018. pagel = 0xD7;
  11019. bs2 = 0xC6;
  11020. timeout = 200;
  11021. stabdelay = 100;
  11022. cmdexedelay = 25;
  11023. synchloops = 32;
  11024. bytedelay = 0;
  11025. pollindex = 3;
  11026. pollvalue = 0x53;
  11027. predelay = 1;
  11028. postdelay = 1;
  11029. pollmethod = 1;
  11030. pp_controlstack =
  11031. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  11032. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  11033. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  11034. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  11035. hventerstabdelay = 100;
  11036. progmodedelay = 0;
  11037. latchcycles = 5;
  11038. togglevtg = 1;
  11039. poweroffdelay = 15;
  11040. resetdelayms = 1;
  11041. resetdelayus = 0;
  11042. hvleavestabdelay = 15;
  11043. chiperasepulsewidth = 0;
  11044. chiperasepolltimeout = 10;
  11045. programfusepulsewidth = 0;
  11046. programfusepolltimeout = 5;
  11047. programlockpulsewidth = 0;
  11048. programlockpolltimeout = 5;
  11049. memory "eeprom"
  11050. paged = no; /* leave this "no" */
  11051. page_size = 4; /* for parallel programming */
  11052. size = 512;
  11053. num_pages = 128;
  11054. min_write_delay = 9000;
  11055. max_write_delay = 9000;
  11056. readback_p1 = 0x00;
  11057. readback_p2 = 0x00;
  11058. read = " 1 0 1 0 0 0 0 0",
  11059. " 0 0 0 0 a11 a10 a9 a8",
  11060. " a7 a6 a5 a4 a3 a2 a1 a0",
  11061. " o o o o o o o o";
  11062. write = " 1 1 0 0 0 0 0 0",
  11063. " 0 0 0 0 a11 a10 a9 a8",
  11064. " a7 a6 a5 a4 a3 a2 a1 a0",
  11065. " i i i i i i i i";
  11066. loadpage_lo = " 1 1 0 0 0 0 0 1",
  11067. " 0 0 0 0 0 0 0 0",
  11068. " 0 0 0 0 0 0 a1 a0",
  11069. " i i i i i i i i";
  11070. writepage = " 1 1 0 0 0 0 1 0",
  11071. " 0 0 0 0 a11 a10 a9 a8",
  11072. " a7 a6 a5 a4 a3 a2 0 0",
  11073. " x x x x x x x x";
  11074. mode = 0x41;
  11075. delay = 20;
  11076. blocksize = 4;
  11077. readsize = 256;
  11078. ;
  11079. memory "flash"
  11080. paged = yes;
  11081. size = 8192;
  11082. page_size = 128;
  11083. num_pages = 64;
  11084. min_write_delay = 4500;
  11085. max_write_delay = 4500;
  11086. readback_p1 = 0x00;
  11087. readback_p2 = 0x00;
  11088. read_lo = " 0 0 1 0 0 0 0 0",
  11089. "a15 a14 a13 a12 a11 a10 a9 a8",
  11090. " a7 a6 a5 a4 a3 a2 a1 a0",
  11091. " o o o o o o o o";
  11092. read_hi = " 0 0 1 0 1 0 0 0",
  11093. "a15 a14 a13 a12 a11 a10 a9 a8",
  11094. " a7 a6 a5 a4 a3 a2 a1 a0",
  11095. " o o o o o o o o";
  11096. loadpage_lo = " 0 1 0 0 0 0 0 0",
  11097. " x x x x x x x x",
  11098. " x x a5 a4 a3 a2 a1 a0",
  11099. " i i i i i i i i";
  11100. loadpage_hi = " 0 1 0 0 1 0 0 0",
  11101. " x x x x x x x x",
  11102. " x x a5 a4 a3 a2 a1 a0",
  11103. " i i i i i i i i";
  11104. writepage = " 0 1 0 0 1 1 0 0",
  11105. "a15 a14 a13 a12 a11 a10 a9 a8",
  11106. " a7 a6 x x x x x x",
  11107. " x x x x x x x x";
  11108. mode = 0x41;
  11109. delay = 6;
  11110. blocksize = 128;
  11111. readsize = 256;
  11112. ;
  11113. memory "lfuse"
  11114. size = 1;
  11115. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  11116. "x x x x x x x x i i i i i i i i";
  11117. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  11118. "x x x x x x x x o o o o o o o o";
  11119. min_write_delay = 9000;
  11120. max_write_delay = 9000;
  11121. ;
  11122. memory "hfuse"
  11123. size = 1;
  11124. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  11125. "x x x x x x x x i i i i i i i i";
  11126. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  11127. "x x x x x x x x o o o o o o o o";
  11128. min_write_delay = 9000;
  11129. max_write_delay = 9000;
  11130. ;
  11131. memory "efuse"
  11132. size = 1;
  11133. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  11134. "x x x x x x x x i i i i i i i i";
  11135. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  11136. "x x x x x x x x o o o o o o o o";
  11137. min_write_delay = 9000;
  11138. max_write_delay = 9000;
  11139. ;
  11140. memory "lock"
  11141. size = 1;
  11142. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  11143. "x x x x x x x x x x o o o o o o";
  11144. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  11145. "x x x x x x x x 1 1 i i i i i i";
  11146. min_write_delay = 9000;
  11147. max_write_delay = 9000;
  11148. ;
  11149. memory "calibration"
  11150. size = 1;
  11151. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  11152. "0 0 0 0 0 0 0 0 o o o o o o o o";
  11153. ;
  11154. memory "signature"
  11155. size = 3;
  11156. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  11157. "x x x x x x a1 a0 o o o o o o o o";
  11158. ;
  11159. ;
  11160. #------------------------------------------------------------
  11161. # ATmega325
  11162. #------------------------------------------------------------
  11163. part
  11164. id = "m325";
  11165. desc = "ATMEGA325";
  11166. signature = 0x1e 0x95 0x05;
  11167. has_jtag = yes;
  11168. # stk500_devcode = 0x??; # No STK500v1 support?
  11169. # avr910_devcode = 0x??; # Try the ATmega16 one
  11170. avr910_devcode = 0x74;
  11171. pagel = 0xd7;
  11172. bs2 = 0xa0;
  11173. chip_erase_delay = 9000;
  11174. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  11175. "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0";
  11176. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  11177. "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0";
  11178. timeout = 200;
  11179. stabdelay = 100;
  11180. cmdexedelay = 25;
  11181. synchloops = 32;
  11182. bytedelay = 0;
  11183. pollindex = 3;
  11184. pollvalue = 0x53;
  11185. predelay = 1;
  11186. postdelay = 1;
  11187. pollmethod = 1;
  11188. pp_controlstack =
  11189. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  11190. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  11191. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  11192. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  11193. hventerstabdelay = 100;
  11194. progmodedelay = 0;
  11195. latchcycles = 5;
  11196. togglevtg = 1;
  11197. poweroffdelay = 15;
  11198. resetdelayms = 1;
  11199. resetdelayus = 0;
  11200. hvleavestabdelay = 15;
  11201. chiperasepulsewidth = 0;
  11202. chiperasepolltimeout = 10;
  11203. programfusepulsewidth = 0;
  11204. programfusepolltimeout = 5;
  11205. programlockpulsewidth = 0;
  11206. programlockpolltimeout = 5;
  11207. idr = 0x31;
  11208. spmcr = 0x57;
  11209. allowfullpagebitstream = no;
  11210. memory "eeprom"
  11211. paged = no; /* leave this "no" */
  11212. page_size = 4; /* for parallel programming */
  11213. size = 1024;
  11214. min_write_delay = 9000;
  11215. max_write_delay = 9000;
  11216. readback_p1 = 0xff;
  11217. readback_p2 = 0xff;
  11218. read = " 1 0 1 0 0 0 0 0",
  11219. " 0 0 0 0 0 0 a9 a8",
  11220. " a7 a6 a5 a4 a3 a2 a1 a0",
  11221. " o o o o o o o o";
  11222. write = " 1 1 0 0 0 0 0 0",
  11223. " 0 0 0 0 0 0 a9 a8",
  11224. " a7 a6 a5 a4 a3 a2 a1 a0",
  11225. " i i i i i i i i";
  11226. loadpage_lo = " 1 1 0 0 0 0 0 1",
  11227. " 0 0 0 0 0 0 0 0",
  11228. " 0 0 0 0 0 0 a1 a0",
  11229. " i i i i i i i i";
  11230. writepage = " 1 1 0 0 0 0 1 0",
  11231. " 0 0 0 0 0 0 a9 a8",
  11232. " a7 a6 a5 a4 a3 a2 0 0",
  11233. " x x x x x x x x";
  11234. mode = 0x41;
  11235. delay = 10;
  11236. blocksize = 4;
  11237. readsize = 256;
  11238. ;
  11239. memory "flash"
  11240. paged = yes;
  11241. size = 32768;
  11242. page_size = 128;
  11243. num_pages = 256;
  11244. min_write_delay = 4500;
  11245. max_write_delay = 4500;
  11246. readback_p1 = 0xff;
  11247. readback_p2 = 0xff;
  11248. read_lo = " 0 0 1 0 0 0 0 0",
  11249. " 0 a14 a13 a12 a11 a10 a9 a8",
  11250. " a7 a6 a5 a4 a3 a2 a1 a0",
  11251. " o o o o o o o o";
  11252. read_hi = " 0 0 1 0 1 0 0 0",
  11253. " 0 a14 a13 a12 a11 a10 a9 a8",
  11254. " a7 a6 a5 a4 a3 a2 a1 a0",
  11255. " o o o o o o o o";
  11256. loadpage_lo = " 0 1 0 0 0 0 0 0",
  11257. " 0 0 0 0 0 0 0 0",
  11258. " a7 a6 a5 a4 a3 a2 a1 a0",
  11259. " i i i i i i i i";
  11260. loadpage_hi = " 0 1 0 0 1 0 0 0",
  11261. " 0 0 0 0 0 0 0 0",
  11262. " a7 a6 a5 a4 a3 a2 a1 a0",
  11263. " i i i i i i i i";
  11264. writepage = " 0 1 0 0 1 1 0 0",
  11265. " 0 a14 a13 a12 a11 a10 a9 a8",
  11266. " a7 a6 a5 a4 a3 a2 a1 a0",
  11267. " x x x x x x x x";
  11268. mode = 0x41;
  11269. delay = 10;
  11270. blocksize = 128;
  11271. readsize = 256;
  11272. ;
  11273. memory "lock"
  11274. size = 1;
  11275. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  11276. "x x x x x x x x x x o o o o o o";
  11277. write = "1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0",
  11278. "0 0 0 0 0 0 0 0 1 1 i i i i i i";
  11279. min_write_delay = 9000;
  11280. max_write_delay = 9000;
  11281. ;
  11282. memory "lfuse"
  11283. size = 1;
  11284. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  11285. "0 0 0 0 0 0 0 0 o o o o o o o o";
  11286. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  11287. "0 0 0 0 0 0 0 0 i i i i i i i i";
  11288. min_write_delay = 9000;
  11289. max_write_delay = 9000;
  11290. ;
  11291. memory "hfuse"
  11292. size = 1;
  11293. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  11294. "0 0 0 0 0 0 0 0 o o o o o o o o";
  11295. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  11296. "0 0 0 0 0 0 0 0 i i i i i i i i";
  11297. min_write_delay = 9000;
  11298. max_write_delay = 9000;
  11299. ;
  11300. memory "efuse"
  11301. size = 1;
  11302. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  11303. "0 0 0 0 0 0 0 0 o o o o o o o o";
  11304. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  11305. "0 0 0 0 0 0 0 0 1 1 1 1 1 i i i";
  11306. min_write_delay = 9000;
  11307. max_write_delay = 9000;
  11308. ;
  11309. memory "signature"
  11310. size = 3;
  11311. read = "0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0",
  11312. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  11313. ;
  11314. memory "calibration"
  11315. size = 1;
  11316. read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0",
  11317. "0 0 0 0 0 0 0 0 o o o o o o o o";
  11318. ;
  11319. ;
  11320. #------------------------------------------------------------
  11321. # ATmega645
  11322. #------------------------------------------------------------
  11323. part
  11324. id = "m645";
  11325. desc = "ATMEGA645";
  11326. signature = 0x1E 0x96 0x05;
  11327. has_jtag = yes;
  11328. # stk500_devcode = 0x??; # No STK500v1 support?
  11329. # avr910_devcode = 0x??; # Try the ATmega16 one
  11330. avr910_devcode = 0x74;
  11331. pagel = 0xd7;
  11332. bs2 = 0xa0;
  11333. chip_erase_delay = 9000;
  11334. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  11335. "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0";
  11336. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  11337. "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0";
  11338. timeout = 200;
  11339. stabdelay = 100;
  11340. cmdexedelay = 25;
  11341. synchloops = 32;
  11342. bytedelay = 0;
  11343. pollindex = 3;
  11344. pollvalue = 0x53;
  11345. predelay = 1;
  11346. postdelay = 1;
  11347. pollmethod = 1;
  11348. pp_controlstack =
  11349. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  11350. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  11351. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  11352. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  11353. hventerstabdelay = 100;
  11354. progmodedelay = 0;
  11355. latchcycles = 5;
  11356. togglevtg = 1;
  11357. poweroffdelay = 15;
  11358. resetdelayms = 1;
  11359. resetdelayus = 0;
  11360. hvleavestabdelay = 15;
  11361. chiperasepulsewidth = 0;
  11362. chiperasepolltimeout = 10;
  11363. programfusepulsewidth = 0;
  11364. programfusepolltimeout = 5;
  11365. programlockpulsewidth = 0;
  11366. programlockpolltimeout = 5;
  11367. idr = 0x31;
  11368. spmcr = 0x57;
  11369. allowfullpagebitstream = no;
  11370. memory "eeprom"
  11371. paged = no; /* leave this "no" */
  11372. page_size = 8; /* for parallel programming */
  11373. size = 2048;
  11374. min_write_delay = 9000;
  11375. max_write_delay = 9000;
  11376. readback_p1 = 0xff;
  11377. readback_p2 = 0xff;
  11378. read = " 1 0 1 0 0 0 0 0",
  11379. " 0 0 0 0 0 a10 a9 a8",
  11380. " a7 a6 a5 a4 a3 a2 a1 a0",
  11381. " o o o o o o o o";
  11382. write = " 1 1 0 0 0 0 0 0",
  11383. " 0 0 0 0 0 a10 a9 a8",
  11384. " a7 a6 a5 a4 a3 a2 a1 a0",
  11385. " i i i i i i i i";
  11386. loadpage_lo = " 1 1 0 0 0 0 0 1",
  11387. " 0 0 0 0 0 0 0 0",
  11388. " 0 0 0 0 0 a2 a1 a0",
  11389. " i i i i i i i i";
  11390. writepage = " 1 1 0 0 0 0 1 0",
  11391. " 0 0 0 0 0 a10 a9 a8",
  11392. " a7 a6 a5 a4 a3 0 0 0",
  11393. " x x x x x x x x";
  11394. mode = 0x41;
  11395. delay = 10;
  11396. blocksize = 8;
  11397. readsize = 256;
  11398. ;
  11399. memory "flash"
  11400. paged = yes;
  11401. size = 65536;
  11402. page_size = 256;
  11403. num_pages = 256;
  11404. min_write_delay = 4500;
  11405. max_write_delay = 4500;
  11406. readback_p1 = 0xff;
  11407. readback_p2 = 0xff;
  11408. read_lo = " 0 0 1 0 0 0 0 0",
  11409. " a15 a14 a13 a12 a11 a10 a9 a8",
  11410. " a7 a6 a5 a4 a3 a2 a1 a0",
  11411. " o o o o o o o o";
  11412. read_hi = " 0 0 1 0 1 0 0 0",
  11413. " a15 a14 a13 a12 a11 a10 a9 a8",
  11414. " a7 a6 a5 a4 a3 a2 a1 a0",
  11415. " o o o o o o o o";
  11416. loadpage_lo = " 0 1 0 0 0 0 0 0",
  11417. " 0 0 0 0 0 0 0 0",
  11418. " a7 a6 a5 a4 a3 a2 a1 a0",
  11419. " i i i i i i i i";
  11420. loadpage_hi = " 0 1 0 0 1 0 0 0",
  11421. " 0 0 0 0 0 0 0 0",
  11422. " a7 a6 a5 a4 a3 a2 a1 a0",
  11423. " i i i i i i i i";
  11424. writepage = " 0 1 0 0 1 1 0 0",
  11425. " a15 a14 a13 a12 a11 a10 a9 a8",
  11426. " a7 a6 a5 a4 a3 a2 a1 a0",
  11427. " 0 0 0 0 0 0 0 0";
  11428. mode = 0x41;
  11429. delay = 10;
  11430. blocksize = 128;
  11431. readsize = 256;
  11432. ;
  11433. memory "lock"
  11434. size = 1;
  11435. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  11436. "x x x x x x x x x x o o o o o o";
  11437. write = "1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0",
  11438. "0 0 0 0 0 0 0 0 1 1 i i i i i i";
  11439. min_write_delay = 9000;
  11440. max_write_delay = 9000;
  11441. ;
  11442. memory "lfuse"
  11443. size = 1;
  11444. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  11445. "0 0 0 0 0 0 0 0 o o o o o o o o";
  11446. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  11447. "0 0 0 0 0 0 0 0 i i i i i i i i";
  11448. min_write_delay = 9000;
  11449. max_write_delay = 9000;
  11450. ;
  11451. memory "hfuse"
  11452. size = 1;
  11453. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  11454. "0 0 0 0 0 0 0 0 o o o o o o o o";
  11455. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  11456. "0 0 0 0 0 0 0 0 i i i i i i i i";
  11457. min_write_delay = 9000;
  11458. max_write_delay = 9000;
  11459. ;
  11460. memory "efuse"
  11461. size = 1;
  11462. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  11463. "0 0 0 0 0 0 0 0 o o o o o o o o";
  11464. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  11465. "0 0 0 0 0 0 0 0 1 1 1 1 1 i i i";
  11466. min_write_delay = 9000;
  11467. max_write_delay = 9000;
  11468. ;
  11469. memory "signature"
  11470. size = 3;
  11471. read = "0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0",
  11472. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  11473. ;
  11474. memory "calibration"
  11475. size = 1;
  11476. read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0",
  11477. "0 0 0 0 0 0 0 0 o o o o o o o o";
  11478. ;
  11479. ;
  11480. #------------------------------------------------------------
  11481. # ATmega3250
  11482. #------------------------------------------------------------
  11483. part
  11484. id = "m3250";
  11485. desc = "ATMEGA3250";
  11486. signature = 0x1E 0x95 0x06;
  11487. has_jtag = yes;
  11488. # stk500_devcode = 0x??; # No STK500v1 support?
  11489. # avr910_devcode = 0x??; # Try the ATmega16 one
  11490. avr910_devcode = 0x74;
  11491. pagel = 0xd7;
  11492. bs2 = 0xa0;
  11493. chip_erase_delay = 9000;
  11494. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  11495. "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0";
  11496. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  11497. "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0";
  11498. timeout = 200;
  11499. stabdelay = 100;
  11500. cmdexedelay = 25;
  11501. synchloops = 32;
  11502. bytedelay = 0;
  11503. pollindex = 3;
  11504. pollvalue = 0x53;
  11505. predelay = 1;
  11506. postdelay = 1;
  11507. pollmethod = 1;
  11508. pp_controlstack =
  11509. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  11510. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  11511. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  11512. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  11513. hventerstabdelay = 100;
  11514. progmodedelay = 0;
  11515. latchcycles = 5;
  11516. togglevtg = 1;
  11517. poweroffdelay = 15;
  11518. resetdelayms = 1;
  11519. resetdelayus = 0;
  11520. hvleavestabdelay = 15;
  11521. chiperasepulsewidth = 0;
  11522. chiperasepolltimeout = 10;
  11523. programfusepulsewidth = 0;
  11524. programfusepolltimeout = 5;
  11525. programlockpulsewidth = 0;
  11526. programlockpolltimeout = 5;
  11527. idr = 0x31;
  11528. spmcr = 0x57;
  11529. allowfullpagebitstream = no;
  11530. memory "eeprom"
  11531. paged = no; /* leave this "no" */
  11532. page_size = 4; /* for parallel programming */
  11533. size = 1024;
  11534. min_write_delay = 9000;
  11535. max_write_delay = 9000;
  11536. readback_p1 = 0xff;
  11537. readback_p2 = 0xff;
  11538. read = " 1 0 1 0 0 0 0 0",
  11539. " 0 0 0 0 0 0 a9 a8",
  11540. " a7 a6 a5 a4 a3 a2 a1 a0",
  11541. " o o o o o o o o";
  11542. write = " 1 1 0 0 0 0 0 0",
  11543. " 0 0 0 0 0 0 a9 a8",
  11544. " a7 a6 a5 a4 a3 a2 a1 a0",
  11545. " i i i i i i i i";
  11546. loadpage_lo = " 1 1 0 0 0 0 0 1",
  11547. " 0 0 0 0 0 0 0 0",
  11548. " 0 0 0 0 0 0 a1 a0",
  11549. " i i i i i i i i";
  11550. writepage = " 1 1 0 0 0 0 1 0",
  11551. " 0 0 0 0 0 0 a9 a8",
  11552. " a7 a6 a5 a4 a3 a2 0 0",
  11553. " x x x x x x x x";
  11554. mode = 0x41;
  11555. delay = 10;
  11556. blocksize = 4;
  11557. readsize = 256;
  11558. ;
  11559. memory "flash"
  11560. paged = yes;
  11561. size = 32768;
  11562. page_size = 128;
  11563. num_pages = 256;
  11564. min_write_delay = 4500;
  11565. max_write_delay = 4500;
  11566. readback_p1 = 0xff;
  11567. readback_p2 = 0xff;
  11568. read_lo = " 0 0 1 0 0 0 0 0",
  11569. " 0 a14 a13 a12 a11 a10 a9 a8",
  11570. " a7 a6 a5 a4 a3 a2 a1 a0",
  11571. " o o o o o o o o";
  11572. read_hi = " 0 0 1 0 1 0 0 0",
  11573. " 0 a14 a13 a12 a11 a10 a9 a8",
  11574. " a7 a6 a5 a4 a3 a2 a1 a0",
  11575. " o o o o o o o o";
  11576. loadpage_lo = " 0 1 0 0 0 0 0 0",
  11577. " 0 0 0 0 0 0 0 0",
  11578. " a7 a6 a5 a4 a3 a2 a1 a0",
  11579. " i i i i i i i i";
  11580. loadpage_hi = " 0 1 0 0 1 0 0 0",
  11581. " 0 0 0 0 0 0 0 0",
  11582. " a7 a6 a5 a4 a3 a2 a1 a0",
  11583. " i i i i i i i i";
  11584. writepage = " 0 1 0 0 1 1 0 0",
  11585. " 0 a14 a13 a12 a11 a10 a9 a8",
  11586. " a7 a6 a5 a4 a3 a2 a1 a0",
  11587. " x x x x x x x x";
  11588. mode = 0x41;
  11589. delay = 10;
  11590. blocksize = 128;
  11591. readsize = 256;
  11592. ;
  11593. memory "lock"
  11594. size = 1;
  11595. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  11596. "x x x x x x x x x x o o o o o o";
  11597. write = "1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0",
  11598. "0 0 0 0 0 0 0 0 1 1 i i i i i i";
  11599. min_write_delay = 9000;
  11600. max_write_delay = 9000;
  11601. ;
  11602. memory "lfuse"
  11603. size = 1;
  11604. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  11605. "0 0 0 0 0 0 0 0 o o o o o o o o";
  11606. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  11607. "0 0 0 0 0 0 0 0 i i i i i i i i";
  11608. min_write_delay = 9000;
  11609. max_write_delay = 9000;
  11610. ;
  11611. memory "hfuse"
  11612. size = 1;
  11613. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  11614. "0 0 0 0 0 0 0 0 o o o o o o o o";
  11615. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  11616. "0 0 0 0 0 0 0 0 i i i i i i i i";
  11617. min_write_delay = 9000;
  11618. max_write_delay = 9000;
  11619. ;
  11620. memory "efuse"
  11621. size = 1;
  11622. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  11623. "0 0 0 0 0 0 0 0 o o o o o o o o";
  11624. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  11625. "0 0 0 0 0 0 0 0 1 1 1 1 1 i i i";
  11626. min_write_delay = 9000;
  11627. max_write_delay = 9000;
  11628. ;
  11629. memory "signature"
  11630. size = 3;
  11631. read = "0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0",
  11632. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  11633. ;
  11634. memory "calibration"
  11635. size = 1;
  11636. read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0",
  11637. "0 0 0 0 0 0 0 0 o o o o o o o o";
  11638. ;
  11639. ;
  11640. #------------------------------------------------------------
  11641. # ATmega6450
  11642. #------------------------------------------------------------
  11643. part
  11644. id = "m6450";
  11645. desc = "ATMEGA6450";
  11646. signature = 0x1E 0x96 0x06;
  11647. has_jtag = yes;
  11648. # stk500_devcode = 0x??; # No STK500v1 support?
  11649. # avr910_devcode = 0x??; # Try the ATmega16 one
  11650. avr910_devcode = 0x74;
  11651. pagel = 0xd7;
  11652. bs2 = 0xa0;
  11653. chip_erase_delay = 9000;
  11654. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  11655. "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0";
  11656. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  11657. "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0";
  11658. timeout = 200;
  11659. stabdelay = 100;
  11660. cmdexedelay = 25;
  11661. synchloops = 32;
  11662. bytedelay = 0;
  11663. pollindex = 3;
  11664. pollvalue = 0x53;
  11665. predelay = 1;
  11666. postdelay = 1;
  11667. pollmethod = 1;
  11668. pp_controlstack =
  11669. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  11670. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  11671. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  11672. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  11673. hventerstabdelay = 100;
  11674. progmodedelay = 0;
  11675. latchcycles = 5;
  11676. togglevtg = 1;
  11677. poweroffdelay = 15;
  11678. resetdelayms = 1;
  11679. resetdelayus = 0;
  11680. hvleavestabdelay = 15;
  11681. chiperasepulsewidth = 0;
  11682. chiperasepolltimeout = 10;
  11683. programfusepulsewidth = 0;
  11684. programfusepolltimeout = 5;
  11685. programlockpulsewidth = 0;
  11686. programlockpolltimeout = 5;
  11687. idr = 0x31;
  11688. spmcr = 0x57;
  11689. allowfullpagebitstream = no;
  11690. memory "eeprom"
  11691. paged = no; /* leave this "no" */
  11692. page_size = 8; /* for parallel programming */
  11693. size = 2048;
  11694. min_write_delay = 9000;
  11695. max_write_delay = 9000;
  11696. readback_p1 = 0xff;
  11697. readback_p2 = 0xff;
  11698. read = " 1 0 1 0 0 0 0 0",
  11699. " 0 0 0 0 0 a10 a9 a8",
  11700. " a7 a6 a5 a4 a3 a2 a1 a0",
  11701. " o o o o o o o o";
  11702. write = " 1 1 0 0 0 0 0 0",
  11703. " 0 0 0 0 0 a10 a9 a8",
  11704. " a7 a6 a5 a4 a3 a2 a1 a0",
  11705. " i i i i i i i i";
  11706. loadpage_lo = " 1 1 0 0 0 0 0 1",
  11707. " 0 0 0 0 0 0 0 0",
  11708. " 0 0 0 0 0 a2 a1 a0",
  11709. " i i i i i i i i";
  11710. writepage = " 1 1 0 0 0 0 1 0",
  11711. " 0 0 0 0 0 a10 a9 a8",
  11712. " a7 a6 a5 a4 a3 0 0 0",
  11713. " x x x x x x x x";
  11714. mode = 0x41;
  11715. delay = 10;
  11716. blocksize = 4;
  11717. readsize = 256;
  11718. ;
  11719. memory "flash"
  11720. paged = yes;
  11721. size = 65536;
  11722. page_size = 256;
  11723. num_pages = 256;
  11724. min_write_delay = 4500;
  11725. max_write_delay = 4500;
  11726. readback_p1 = 0xff;
  11727. readback_p2 = 0xff;
  11728. read_lo = " 0 0 1 0 0 0 0 0",
  11729. " a15 a14 a13 a12 a11 a10 a9 a8",
  11730. " a7 a6 a5 a4 a3 a2 a1 a0",
  11731. " o o o o o o o o";
  11732. read_hi = " 0 0 1 0 1 0 0 0",
  11733. " a15 a14 a13 a12 a11 a10 a9 a8",
  11734. " a7 a6 a5 a4 a3 a2 a1 a0",
  11735. " o o o o o o o o";
  11736. loadpage_lo = " 0 1 0 0 0 0 0 0",
  11737. " 0 0 0 0 0 0 0 0",
  11738. " a7 a6 a5 a4 a3 a2 a1 a0",
  11739. " i i i i i i i i";
  11740. loadpage_hi = " 0 1 0 0 1 0 0 0",
  11741. " 0 0 0 0 0 0 0 0",
  11742. " a7 a6 a5 a4 a3 a2 a1 a0",
  11743. " i i i i i i i i";
  11744. writepage = " 0 1 0 0 1 1 0 0",
  11745. " a15 a14 a13 a12 a11 a10 a9 a8",
  11746. " a7 a6 a5 a4 a3 a2 a1 a0",
  11747. " 0 0 0 0 0 0 0 0";
  11748. mode = 0x41;
  11749. delay = 10;
  11750. blocksize = 128;
  11751. readsize = 256;
  11752. ;
  11753. memory "lock"
  11754. size = 1;
  11755. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  11756. "x x x x x x x x x x o o o o o o";
  11757. write = "1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0",
  11758. "0 0 0 0 0 0 0 0 1 1 i i i i i i";
  11759. min_write_delay = 9000;
  11760. max_write_delay = 9000;
  11761. ;
  11762. memory "lfuse"
  11763. size = 1;
  11764. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  11765. "0 0 0 0 0 0 0 0 o o o o o o o o";
  11766. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  11767. "0 0 0 0 0 0 0 0 i i i i i i i i";
  11768. min_write_delay = 9000;
  11769. max_write_delay = 9000;
  11770. ;
  11771. memory "hfuse"
  11772. size = 1;
  11773. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  11774. "0 0 0 0 0 0 0 0 o o o o o o o o";
  11775. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  11776. "0 0 0 0 0 0 0 0 i i i i i i i i";
  11777. min_write_delay = 9000;
  11778. max_write_delay = 9000;
  11779. ;
  11780. memory "efuse"
  11781. size = 1;
  11782. read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
  11783. "0 0 0 0 0 0 0 0 o o o o o o o o";
  11784. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
  11785. "0 0 0 0 0 0 0 0 1 1 1 1 1 i i i";
  11786. min_write_delay = 9000;
  11787. max_write_delay = 9000;
  11788. ;
  11789. memory "signature"
  11790. size = 3;
  11791. read = "0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0",
  11792. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  11793. ;
  11794. memory "calibration"
  11795. size = 1;
  11796. read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0",
  11797. "0 0 0 0 0 0 0 0 o o o o o o o o";
  11798. ;
  11799. ;
  11800. #------------------------------------------------------------
  11801. # ATXMEGA64A1
  11802. #------------------------------------------------------------
  11803. part
  11804. id = "x64a1";
  11805. desc = "ATXMEGA64A1";
  11806. signature = 0x1e 0x96 0x4e;
  11807. has_jtag = yes;
  11808. has_pdi = yes;
  11809. nvm_base = 0x01c0;
  11810. memory "eeprom"
  11811. size = 0x0800;
  11812. offset = 0x08c0000;
  11813. page_size = 0x20;
  11814. readsize = 0x100;
  11815. ;
  11816. memory "application"
  11817. size = 0x00010000;
  11818. offset = 0x0800000;
  11819. page_size = 0x100;
  11820. readsize = 0x100;
  11821. ;
  11822. memory "apptable"
  11823. size = 0x00001000;
  11824. offset = 0x0080f000;
  11825. page_size = 0x100;
  11826. readsize = 0x100;
  11827. ;
  11828. memory "boot"
  11829. size = 0x00001000;
  11830. offset = 0x00810000;
  11831. page_size = 0x100;
  11832. readsize = 0x100;
  11833. ;
  11834. memory "flash"
  11835. size = 0x00011000;
  11836. offset = 0x0800000;
  11837. page_size = 0x100;
  11838. readsize = 0x100;
  11839. ;
  11840. memory "prodsig"
  11841. size = 0x200;
  11842. offset = 0x8e0200;
  11843. page_size = 0x100;
  11844. readsize = 0x100;
  11845. ;
  11846. memory "usersig"
  11847. size = 0x200;
  11848. offset = 0x8e0400;
  11849. page_size = 0x100;
  11850. readsize = 0x100;
  11851. ;
  11852. memory "signature"
  11853. size = 3;
  11854. offset = 0x1000090;
  11855. ;
  11856. memory "fuse0"
  11857. size = 1;
  11858. offset = 0x8f0020;
  11859. ;
  11860. memory "fuse1"
  11861. size = 1;
  11862. offset = 0x8f0021;
  11863. ;
  11864. memory "fuse2"
  11865. size = 1;
  11866. offset = 0x8f0022;
  11867. ;
  11868. memory "fuse4"
  11869. size = 1;
  11870. offset = 0x8f0024;
  11871. ;
  11872. memory "fuse5"
  11873. size = 1;
  11874. offset = 0x8f0025;
  11875. ;
  11876. memory "lock"
  11877. size = 1;
  11878. offset = 0x8f0027;
  11879. ;
  11880. ;
  11881. #------------------------------------------------------------
  11882. # ATXMEGA128A1
  11883. #------------------------------------------------------------
  11884. part
  11885. id = "x128a1";
  11886. desc = "ATXMEGA128A1";
  11887. signature = 0x1e 0x97 0x4c;
  11888. has_jtag = yes;
  11889. has_pdi = yes;
  11890. nvm_base = 0x01c0;
  11891. memory "eeprom"
  11892. size = 0x0800;
  11893. offset = 0x08c0000;
  11894. page_size = 0x20;
  11895. readsize = 0x100;
  11896. ;
  11897. memory "application"
  11898. size = 0x00020000;
  11899. offset = 0x0800000;
  11900. page_size = 0x100;
  11901. readsize = 0x100;
  11902. ;
  11903. memory "apptable"
  11904. size = 0x00002000;
  11905. offset = 0x0081e000;
  11906. page_size = 0x100;
  11907. readsize = 0x100;
  11908. ;
  11909. memory "boot"
  11910. size = 0x00002000;
  11911. offset = 0x00820000;
  11912. page_size = 0x100;
  11913. readsize = 0x100;
  11914. ;
  11915. memory "flash"
  11916. size = 0x00022000;
  11917. offset = 0x0800000;
  11918. page_size = 0x100;
  11919. readsize = 0x100;
  11920. ;
  11921. memory "prodsig"
  11922. size = 0x200;
  11923. offset = 0x8e0200;
  11924. page_size = 0x100;
  11925. readsize = 0x100;
  11926. ;
  11927. memory "usersig"
  11928. size = 0x200;
  11929. offset = 0x8e0400;
  11930. page_size = 0x100;
  11931. readsize = 0x100;
  11932. ;
  11933. memory "signature"
  11934. size = 3;
  11935. offset = 0x1000090;
  11936. ;
  11937. memory "fuse0"
  11938. size = 1;
  11939. offset = 0x8f0020;
  11940. ;
  11941. memory "fuse1"
  11942. size = 1;
  11943. offset = 0x8f0021;
  11944. ;
  11945. memory "fuse2"
  11946. size = 1;
  11947. offset = 0x8f0022;
  11948. ;
  11949. memory "fuse4"
  11950. size = 1;
  11951. offset = 0x8f0024;
  11952. ;
  11953. memory "fuse5"
  11954. size = 1;
  11955. offset = 0x8f0025;
  11956. ;
  11957. memory "lock"
  11958. size = 1;
  11959. offset = 0x8f0027;
  11960. ;
  11961. ;
  11962. #------------------------------------------------------------
  11963. # ATXMEGA128A1REVD
  11964. #------------------------------------------------------------
  11965. part
  11966. id = "x128a1d";
  11967. desc = "ATXMEGA128A1REVD";
  11968. signature = 0x1e 0x97 0x41;
  11969. has_jtag = yes;
  11970. has_pdi = yes;
  11971. nvm_base = 0x01c0;
  11972. memory "eeprom"
  11973. size = 0x0800;
  11974. offset = 0x08c0000;
  11975. page_size = 0x20;
  11976. readsize = 0x100;
  11977. ;
  11978. memory "application"
  11979. size = 0x00020000;
  11980. offset = 0x0800000;
  11981. page_size = 0x100;
  11982. readsize = 0x100;
  11983. ;
  11984. memory "apptable"
  11985. size = 0x00002000;
  11986. offset = 0x0081e000;
  11987. page_size = 0x100;
  11988. readsize = 0x100;
  11989. ;
  11990. memory "boot"
  11991. size = 0x00002000;
  11992. offset = 0x00820000;
  11993. page_size = 0x100;
  11994. readsize = 0x100;
  11995. ;
  11996. memory "flash"
  11997. size = 0x00022000;
  11998. offset = 0x0800000;
  11999. page_size = 0x100;
  12000. readsize = 0x100;
  12001. ;
  12002. memory "prodsig"
  12003. size = 0x200;
  12004. offset = 0x8e0200;
  12005. page_size = 0x100;
  12006. readsize = 0x100;
  12007. ;
  12008. memory "usersig"
  12009. size = 0x200;
  12010. offset = 0x8e0400;
  12011. page_size = 0x100;
  12012. readsize = 0x100;
  12013. ;
  12014. memory "signature"
  12015. size = 3;
  12016. offset = 0x1000090;
  12017. ;
  12018. memory "fuse0"
  12019. size = 1;
  12020. offset = 0x8f0020;
  12021. ;
  12022. memory "fuse1"
  12023. size = 1;
  12024. offset = 0x8f0021;
  12025. ;
  12026. memory "fuse2"
  12027. size = 1;
  12028. offset = 0x8f0022;
  12029. ;
  12030. memory "fuse4"
  12031. size = 1;
  12032. offset = 0x8f0024;
  12033. ;
  12034. memory "fuse5"
  12035. size = 1;
  12036. offset = 0x8f0025;
  12037. ;
  12038. memory "lock"
  12039. size = 1;
  12040. offset = 0x8f0027;
  12041. ;
  12042. ;
  12043. #------------------------------------------------------------
  12044. # ATXMEGA192A1
  12045. #------------------------------------------------------------
  12046. part
  12047. id = "x192a1";
  12048. desc = "ATXMEGA192A1";
  12049. signature = 0x1e 0x97 0x4e;
  12050. has_jtag = yes;
  12051. has_pdi = yes;
  12052. nvm_base = 0x01c0;
  12053. memory "eeprom"
  12054. size = 0x0800;
  12055. offset = 0x08c0000;
  12056. page_size = 0x20;
  12057. readsize = 0x100;
  12058. ;
  12059. memory "application"
  12060. size = 0x00030000;
  12061. offset = 0x0800000;
  12062. page_size = 0x100;
  12063. readsize = 0x100;
  12064. ;
  12065. memory "apptable"
  12066. size = 0x00002000;
  12067. offset = 0x0082e000;
  12068. page_size = 0x100;
  12069. readsize = 0x100;
  12070. ;
  12071. memory "boot"
  12072. size = 0x00002000;
  12073. offset = 0x00830000;
  12074. page_size = 0x100;
  12075. readsize = 0x100;
  12076. ;
  12077. memory "flash"
  12078. size = 0x00032000;
  12079. offset = 0x0800000;
  12080. page_size = 0x100;
  12081. readsize = 0x100;
  12082. ;
  12083. memory "prodsig"
  12084. size = 0x200;
  12085. offset = 0x8e0200;
  12086. page_size = 0x100;
  12087. readsize = 0x100;
  12088. ;
  12089. memory "usersig"
  12090. size = 0x200;
  12091. offset = 0x8e0400;
  12092. page_size = 0x100;
  12093. readsize = 0x100;
  12094. ;
  12095. memory "signature"
  12096. size = 3;
  12097. offset = 0x1000090;
  12098. ;
  12099. memory "fuse0"
  12100. size = 1;
  12101. offset = 0x8f0020;
  12102. ;
  12103. memory "fuse1"
  12104. size = 1;
  12105. offset = 0x8f0021;
  12106. ;
  12107. memory "fuse2"
  12108. size = 1;
  12109. offset = 0x8f0022;
  12110. ;
  12111. memory "fuse4"
  12112. size = 1;
  12113. offset = 0x8f0024;
  12114. ;
  12115. memory "fuse5"
  12116. size = 1;
  12117. offset = 0x8f0025;
  12118. ;
  12119. memory "lock"
  12120. size = 1;
  12121. offset = 0x8f0027;
  12122. ;
  12123. ;
  12124. #------------------------------------------------------------
  12125. # ATXMEGA256A1
  12126. #------------------------------------------------------------
  12127. part
  12128. id = "x256a1";
  12129. desc = "ATXMEGA256A1";
  12130. signature = 0x1e 0x98 0x46;
  12131. has_jtag = yes;
  12132. has_pdi = yes;
  12133. nvm_base = 0x01c0;
  12134. memory "eeprom"
  12135. size = 0x1000;
  12136. offset = 0x08c0000;
  12137. page_size = 0x20;
  12138. readsize = 0x100;
  12139. ;
  12140. memory "application"
  12141. size = 0x00040000;
  12142. offset = 0x0800000;
  12143. page_size = 0x100;
  12144. readsize = 0x100;
  12145. ;
  12146. memory "apptable"
  12147. size = 0x00002000;
  12148. offset = 0x0083e000;
  12149. page_size = 0x100;
  12150. readsize = 0x100;
  12151. ;
  12152. memory "boot"
  12153. size = 0x00002000;
  12154. offset = 0x00840000;
  12155. page_size = 0x100;
  12156. readsize = 0x100;
  12157. ;
  12158. memory "flash"
  12159. size = 0x00042000;
  12160. offset = 0x0800000;
  12161. page_size = 0x100;
  12162. readsize = 0x100;
  12163. ;
  12164. memory "prodsig"
  12165. size = 0x200;
  12166. offset = 0x8e0200;
  12167. page_size = 0x100;
  12168. readsize = 0x100;
  12169. ;
  12170. memory "usersig"
  12171. size = 0x200;
  12172. offset = 0x8e0400;
  12173. page_size = 0x100;
  12174. readsize = 0x100;
  12175. ;
  12176. memory "signature"
  12177. size = 3;
  12178. offset = 0x1000090;
  12179. ;
  12180. memory "fuse0"
  12181. size = 1;
  12182. offset = 0x8f0020;
  12183. ;
  12184. memory "fuse1"
  12185. size = 1;
  12186. offset = 0x8f0021;
  12187. ;
  12188. memory "fuse2"
  12189. size = 1;
  12190. offset = 0x8f0022;
  12191. ;
  12192. memory "fuse4"
  12193. size = 1;
  12194. offset = 0x8f0024;
  12195. ;
  12196. memory "fuse5"
  12197. size = 1;
  12198. offset = 0x8f0025;
  12199. ;
  12200. memory "lock"
  12201. size = 1;
  12202. offset = 0x8f0027;
  12203. ;
  12204. ;
  12205. #------------------------------------------------------------
  12206. # ATXMEGA64A3
  12207. #------------------------------------------------------------
  12208. part
  12209. id = "x64a3";
  12210. desc = "ATXMEGA64A3";
  12211. signature = 0x1e 0x96 0x42;
  12212. has_jtag = yes;
  12213. has_pdi = yes;
  12214. nvm_base = 0x01c0;
  12215. memory "eeprom"
  12216. size = 0x0800;
  12217. offset = 0x08c0000;
  12218. page_size = 0x20;
  12219. readsize = 0x100;
  12220. ;
  12221. memory "application"
  12222. size = 0x00010000;
  12223. offset = 0x0800000;
  12224. page_size = 0x100;
  12225. readsize = 0x100;
  12226. ;
  12227. memory "apptable"
  12228. size = 0x00001000;
  12229. offset = 0x0080f000;
  12230. page_size = 0x100;
  12231. readsize = 0x100;
  12232. ;
  12233. memory "boot"
  12234. size = 0x00001000;
  12235. offset = 0x00810000;
  12236. page_size = 0x100;
  12237. readsize = 0x100;
  12238. ;
  12239. memory "flash"
  12240. size = 0x00011000;
  12241. offset = 0x0800000;
  12242. page_size = 0x100;
  12243. readsize = 0x100;
  12244. ;
  12245. memory "prodsig"
  12246. size = 0x200;
  12247. offset = 0x8e0200;
  12248. page_size = 0x100;
  12249. readsize = 0x100;
  12250. ;
  12251. memory "usersig"
  12252. size = 0x200;
  12253. offset = 0x8e0400;
  12254. page_size = 0x100;
  12255. readsize = 0x100;
  12256. ;
  12257. memory "signature"
  12258. size = 3;
  12259. offset = 0x1000090;
  12260. ;
  12261. memory "fuse0"
  12262. size = 1;
  12263. offset = 0x8f0020;
  12264. ;
  12265. memory "fuse1"
  12266. size = 1;
  12267. offset = 0x8f0021;
  12268. ;
  12269. memory "fuse2"
  12270. size = 1;
  12271. offset = 0x8f0022;
  12272. ;
  12273. memory "fuse4"
  12274. size = 1;
  12275. offset = 0x8f0024;
  12276. ;
  12277. memory "fuse5"
  12278. size = 1;
  12279. offset = 0x8f0025;
  12280. ;
  12281. memory "lock"
  12282. size = 1;
  12283. offset = 0x8f0027;
  12284. ;
  12285. ;
  12286. #------------------------------------------------------------
  12287. # ATXMEGA128A3
  12288. #------------------------------------------------------------
  12289. part
  12290. id = "x128a3";
  12291. desc = "ATXMEGA128A3";
  12292. signature = 0x1e 0x97 0x42;
  12293. has_jtag = yes;
  12294. has_pdi = yes;
  12295. nvm_base = 0x01c0;
  12296. memory "eeprom"
  12297. size = 0x0800;
  12298. offset = 0x08c0000;
  12299. page_size = 0x20;
  12300. readsize = 0x100;
  12301. ;
  12302. memory "application"
  12303. size = 0x00020000;
  12304. offset = 0x0800000;
  12305. page_size = 0x100;
  12306. readsize = 0x100;
  12307. ;
  12308. memory "apptable"
  12309. size = 0x00002000;
  12310. offset = 0x0081e000;
  12311. page_size = 0x100;
  12312. readsize = 0x100;
  12313. ;
  12314. memory "boot"
  12315. size = 0x00002000;
  12316. offset = 0x00820000;
  12317. page_size = 0x100;
  12318. readsize = 0x100;
  12319. ;
  12320. memory "flash"
  12321. size = 0x00022000;
  12322. offset = 0x0800000;
  12323. page_size = 0x100;
  12324. readsize = 0x100;
  12325. ;
  12326. memory "prodsig"
  12327. size = 0x200;
  12328. offset = 0x8e0200;
  12329. page_size = 0x100;
  12330. readsize = 0x100;
  12331. ;
  12332. memory "usersig"
  12333. size = 0x200;
  12334. offset = 0x8e0400;
  12335. page_size = 0x100;
  12336. readsize = 0x100;
  12337. ;
  12338. memory "signature"
  12339. size = 3;
  12340. offset = 0x1000090;
  12341. ;
  12342. memory "fuse0"
  12343. size = 1;
  12344. offset = 0x8f0020;
  12345. ;
  12346. memory "fuse1"
  12347. size = 1;
  12348. offset = 0x8f0021;
  12349. ;
  12350. memory "fuse2"
  12351. size = 1;
  12352. offset = 0x8f0022;
  12353. ;
  12354. memory "fuse4"
  12355. size = 1;
  12356. offset = 0x8f0024;
  12357. ;
  12358. memory "fuse5"
  12359. size = 1;
  12360. offset = 0x8f0025;
  12361. ;
  12362. memory "lock"
  12363. size = 1;
  12364. offset = 0x8f0027;
  12365. ;
  12366. ;
  12367. #------------------------------------------------------------
  12368. # ATXMEGA192A3
  12369. #------------------------------------------------------------
  12370. part
  12371. id = "x192a3";
  12372. desc = "ATXMEGA192A3";
  12373. signature = 0x1e 0x97 0x44;
  12374. has_jtag = yes;
  12375. has_pdi = yes;
  12376. nvm_base = 0x01c0;
  12377. memory "eeprom"
  12378. size = 0x0800;
  12379. offset = 0x08c0000;
  12380. page_size = 0x20;
  12381. readsize = 0x100;
  12382. ;
  12383. memory "application"
  12384. size = 0x00030000;
  12385. offset = 0x0800000;
  12386. page_size = 0x100;
  12387. readsize = 0x100;
  12388. ;
  12389. memory "apptable"
  12390. size = 0x00002000;
  12391. offset = 0x0082e000;
  12392. page_size = 0x100;
  12393. readsize = 0x100;
  12394. ;
  12395. memory "boot"
  12396. size = 0x00002000;
  12397. offset = 0x00830000;
  12398. page_size = 0x100;
  12399. readsize = 0x100;
  12400. ;
  12401. memory "flash"
  12402. size = 0x00032000;
  12403. offset = 0x0800000;
  12404. page_size = 0x100;
  12405. readsize = 0x100;
  12406. ;
  12407. memory "prodsig"
  12408. size = 0x200;
  12409. offset = 0x8e0200;
  12410. page_size = 0x100;
  12411. readsize = 0x100;
  12412. ;
  12413. memory "usersig"
  12414. size = 0x200;
  12415. offset = 0x8e0400;
  12416. page_size = 0x100;
  12417. readsize = 0x100;
  12418. ;
  12419. memory "signature"
  12420. size = 3;
  12421. offset = 0x1000090;
  12422. ;
  12423. memory "fuse0"
  12424. size = 1;
  12425. offset = 0x8f0020;
  12426. ;
  12427. memory "fuse1"
  12428. size = 1;
  12429. offset = 0x8f0021;
  12430. ;
  12431. memory "fuse2"
  12432. size = 1;
  12433. offset = 0x8f0022;
  12434. ;
  12435. memory "fuse4"
  12436. size = 1;
  12437. offset = 0x8f0024;
  12438. ;
  12439. memory "fuse5"
  12440. size = 1;
  12441. offset = 0x8f0025;
  12442. ;
  12443. memory "lock"
  12444. size = 1;
  12445. offset = 0x8f0027;
  12446. ;
  12447. ;
  12448. #------------------------------------------------------------
  12449. # ATXMEGA256A3
  12450. #------------------------------------------------------------
  12451. part
  12452. id = "x256a3";
  12453. desc = "ATXMEGA256A3";
  12454. signature = 0x1e 0x98 0x42;
  12455. has_jtag = yes;
  12456. has_pdi = yes;
  12457. nvm_base = 0x01c0;
  12458. memory "eeprom"
  12459. size = 0x1000;
  12460. offset = 0x08c0000;
  12461. page_size = 0x20;
  12462. readsize = 0x100;
  12463. ;
  12464. memory "application"
  12465. size = 0x00040000;
  12466. offset = 0x0800000;
  12467. page_size = 0x100;
  12468. readsize = 0x100;
  12469. ;
  12470. memory "apptable"
  12471. size = 0x00002000;
  12472. offset = 0x0083e000;
  12473. page_size = 0x100;
  12474. readsize = 0x100;
  12475. ;
  12476. memory "boot"
  12477. size = 0x00002000;
  12478. offset = 0x00840000;
  12479. page_size = 0x100;
  12480. readsize = 0x100;
  12481. ;
  12482. memory "flash"
  12483. size = 0x00042000;
  12484. offset = 0x0800000;
  12485. page_size = 0x100;
  12486. readsize = 0x100;
  12487. ;
  12488. memory "prodsig"
  12489. size = 0x200;
  12490. offset = 0x8e0200;
  12491. page_size = 0x100;
  12492. readsize = 0x100;
  12493. ;
  12494. memory "usersig"
  12495. size = 0x200;
  12496. offset = 0x8e0400;
  12497. page_size = 0x100;
  12498. readsize = 0x100;
  12499. ;
  12500. memory "signature"
  12501. size = 3;
  12502. offset = 0x1000090;
  12503. ;
  12504. memory "fuse0"
  12505. size = 1;
  12506. offset = 0x8f0020;
  12507. ;
  12508. memory "fuse1"
  12509. size = 1;
  12510. offset = 0x8f0021;
  12511. ;
  12512. memory "fuse2"
  12513. size = 1;
  12514. offset = 0x8f0022;
  12515. ;
  12516. memory "fuse4"
  12517. size = 1;
  12518. offset = 0x8f0024;
  12519. ;
  12520. memory "fuse5"
  12521. size = 1;
  12522. offset = 0x8f0025;
  12523. ;
  12524. memory "lock"
  12525. size = 1;
  12526. offset = 0x8f0027;
  12527. ;
  12528. ;
  12529. #------------------------------------------------------------
  12530. # ATXMEGA256A3B
  12531. #------------------------------------------------------------
  12532. part
  12533. id = "x256a3b";
  12534. desc = "ATXMEGA256A3B";
  12535. signature = 0x1e 0x98 0x43;
  12536. has_jtag = yes;
  12537. has_pdi = yes;
  12538. nvm_base = 0x01c0;
  12539. memory "eeprom"
  12540. size = 0x1000;
  12541. offset = 0x08c0000;
  12542. page_size = 0x20;
  12543. readsize = 0x100;
  12544. ;
  12545. memory "application"
  12546. size = 0x00040000;
  12547. offset = 0x0800000;
  12548. page_size = 0x100;
  12549. readsize = 0x100;
  12550. ;
  12551. memory "apptable"
  12552. size = 0x00002000;
  12553. offset = 0x0083e000;
  12554. page_size = 0x100;
  12555. readsize = 0x100;
  12556. ;
  12557. memory "boot"
  12558. size = 0x00002000;
  12559. offset = 0x00840000;
  12560. page_size = 0x100;
  12561. readsize = 0x100;
  12562. ;
  12563. memory "flash"
  12564. size = 0x00042000;
  12565. offset = 0x0800000;
  12566. page_size = 0x100;
  12567. readsize = 0x100;
  12568. ;
  12569. memory "prodsig"
  12570. size = 0x200;
  12571. offset = 0x8e0200;
  12572. page_size = 0x100;
  12573. readsize = 0x100;
  12574. ;
  12575. memory "usersig"
  12576. size = 0x200;
  12577. offset = 0x8e0400;
  12578. page_size = 0x100;
  12579. readsize = 0x100;
  12580. ;
  12581. memory "signature"
  12582. size = 3;
  12583. offset = 0x1000090;
  12584. ;
  12585. memory "fuse0"
  12586. size = 1;
  12587. offset = 0x8f0020;
  12588. ;
  12589. memory "fuse1"
  12590. size = 1;
  12591. offset = 0x8f0021;
  12592. ;
  12593. memory "fuse2"
  12594. size = 1;
  12595. offset = 0x8f0022;
  12596. ;
  12597. memory "fuse4"
  12598. size = 1;
  12599. offset = 0x8f0024;
  12600. ;
  12601. memory "fuse5"
  12602. size = 1;
  12603. offset = 0x8f0025;
  12604. ;
  12605. memory "lock"
  12606. size = 1;
  12607. offset = 0x8f0027;
  12608. ;
  12609. ;
  12610. #------------------------------------------------------------
  12611. # ATXMEGA16A4
  12612. #------------------------------------------------------------
  12613. part
  12614. id = "x16a4";
  12615. desc = "ATXMEGA16A4";
  12616. signature = 0x1e 0x94 0x41;
  12617. has_jtag = yes;
  12618. has_pdi = yes;
  12619. nvm_base = 0x01c0;
  12620. memory "eeprom"
  12621. size = 0x0400;
  12622. offset = 0x08c0000;
  12623. page_size = 0x20;
  12624. readsize = 0x100;
  12625. ;
  12626. memory "application"
  12627. size = 0x00004000;
  12628. offset = 0x0800000;
  12629. page_size = 0x100;
  12630. readsize = 0x100;
  12631. ;
  12632. memory "apptable"
  12633. size = 0x00001000;
  12634. offset = 0x00803000;
  12635. page_size = 0x100;
  12636. readsize = 0x100;
  12637. ;
  12638. memory "boot"
  12639. size = 0x00001000;
  12640. offset = 0x00804000;
  12641. page_size = 0x100;
  12642. readsize = 0x100;
  12643. ;
  12644. memory "flash"
  12645. size = 0x00005000;
  12646. offset = 0x0800000;
  12647. page_size = 0x100;
  12648. readsize = 0x100;
  12649. ;
  12650. memory "prodsig"
  12651. size = 0x200;
  12652. offset = 0x8e0200;
  12653. page_size = 0x100;
  12654. readsize = 0x100;
  12655. ;
  12656. memory "usersig"
  12657. size = 0x200;
  12658. offset = 0x8e0400;
  12659. page_size = 0x100;
  12660. readsize = 0x100;
  12661. ;
  12662. memory "signature"
  12663. size = 3;
  12664. offset = 0x1000090;
  12665. ;
  12666. memory "fuse0"
  12667. size = 1;
  12668. offset = 0x8f0020;
  12669. ;
  12670. memory "fuse1"
  12671. size = 1;
  12672. offset = 0x8f0021;
  12673. ;
  12674. memory "fuse2"
  12675. size = 1;
  12676. offset = 0x8f0022;
  12677. ;
  12678. memory "fuse4"
  12679. size = 1;
  12680. offset = 0x8f0024;
  12681. ;
  12682. memory "fuse5"
  12683. size = 1;
  12684. offset = 0x8f0025;
  12685. ;
  12686. memory "lock"
  12687. size = 1;
  12688. offset = 0x8f0027;
  12689. ;
  12690. ;
  12691. #------------------------------------------------------------
  12692. # ATXMEGA32A4
  12693. #------------------------------------------------------------
  12694. part
  12695. id = "x32a4";
  12696. desc = "ATXMEGA32A4";
  12697. signature = 0x1e 0x95 0x41;
  12698. has_jtag = yes;
  12699. has_pdi = yes;
  12700. nvm_base = 0x01c0;
  12701. memory "eeprom"
  12702. size = 0x0400;
  12703. offset = 0x08c0000;
  12704. page_size = 0x20;
  12705. readsize = 0x100;
  12706. ;
  12707. memory "application"
  12708. size = 0x00008000;
  12709. offset = 0x0800000;
  12710. page_size = 0x100;
  12711. readsize = 0x100;
  12712. ;
  12713. memory "apptable"
  12714. size = 0x00001000;
  12715. offset = 0x00807000;
  12716. page_size = 0x100;
  12717. readsize = 0x100;
  12718. ;
  12719. memory "boot"
  12720. size = 0x00001000;
  12721. offset = 0x00808000;
  12722. page_size = 0x100;
  12723. readsize = 0x100;
  12724. ;
  12725. memory "flash"
  12726. size = 0x00009000;
  12727. offset = 0x0800000;
  12728. page_size = 0x100;
  12729. readsize = 0x100;
  12730. ;
  12731. memory "prodsig"
  12732. size = 0x200;
  12733. offset = 0x8e0200;
  12734. page_size = 0x100;
  12735. readsize = 0x100;
  12736. ;
  12737. memory "usersig"
  12738. size = 0x200;
  12739. offset = 0x8e0400;
  12740. page_size = 0x100;
  12741. readsize = 0x100;
  12742. ;
  12743. memory "signature"
  12744. size = 3;
  12745. offset = 0x1000090;
  12746. ;
  12747. memory "fuse0"
  12748. size = 1;
  12749. offset = 0x8f0020;
  12750. ;
  12751. memory "fuse1"
  12752. size = 1;
  12753. offset = 0x8f0021;
  12754. ;
  12755. memory "fuse2"
  12756. size = 1;
  12757. offset = 0x8f0022;
  12758. ;
  12759. memory "fuse4"
  12760. size = 1;
  12761. offset = 0x8f0024;
  12762. ;
  12763. memory "fuse5"
  12764. size = 1;
  12765. offset = 0x8f0025;
  12766. ;
  12767. memory "lock"
  12768. size = 1;
  12769. offset = 0x8f0027;
  12770. ;
  12771. ;
  12772. #------------------------------------------------------------
  12773. # ATXMEGA64A4
  12774. #------------------------------------------------------------
  12775. part
  12776. id = "x64a4";
  12777. desc = "ATXMEGA64A4";
  12778. signature = 0x1e 0x96 0x46;
  12779. has_jtag = yes;
  12780. has_pdi = yes;
  12781. nvm_base = 0x01c0;
  12782. memory "eeprom"
  12783. size = 0x0800;
  12784. offset = 0x08c0000;
  12785. page_size = 0x20;
  12786. readsize = 0x100;
  12787. ;
  12788. memory "application"
  12789. size = 0x00010000;
  12790. offset = 0x0800000;
  12791. page_size = 0x100;
  12792. readsize = 0x100;
  12793. ;
  12794. memory "apptable"
  12795. size = 0x00001000;
  12796. offset = 0x0080f000;
  12797. page_size = 0x100;
  12798. readsize = 0x100;
  12799. ;
  12800. memory "boot"
  12801. size = 0x00001000;
  12802. offset = 0x00810000;
  12803. page_size = 0x100;
  12804. readsize = 0x100;
  12805. ;
  12806. memory "flash"
  12807. size = 0x00011000;
  12808. offset = 0x0800000;
  12809. page_size = 0x100;
  12810. readsize = 0x100;
  12811. ;
  12812. memory "prodsig"
  12813. size = 0x200;
  12814. offset = 0x8e0200;
  12815. page_size = 0x100;
  12816. readsize = 0x100;
  12817. ;
  12818. memory "usersig"
  12819. size = 0x200;
  12820. offset = 0x8e0400;
  12821. page_size = 0x100;
  12822. readsize = 0x100;
  12823. ;
  12824. memory "signature"
  12825. size = 3;
  12826. offset = 0x1000090;
  12827. ;
  12828. memory "fuse0"
  12829. size = 1;
  12830. offset = 0x8f0020;
  12831. ;
  12832. memory "fuse1"
  12833. size = 1;
  12834. offset = 0x8f0021;
  12835. ;
  12836. memory "fuse2"
  12837. size = 1;
  12838. offset = 0x8f0022;
  12839. ;
  12840. memory "fuse4"
  12841. size = 1;
  12842. offset = 0x8f0024;
  12843. ;
  12844. memory "fuse5"
  12845. size = 1;
  12846. offset = 0x8f0025;
  12847. ;
  12848. memory "lock"
  12849. size = 1;
  12850. offset = 0x8f0027;
  12851. ;
  12852. ;
  12853. #------------------------------------------------------------
  12854. # ATXMEGA128A4
  12855. #------------------------------------------------------------
  12856. part
  12857. id = "x128a4";
  12858. desc = "ATXMEGA128A4";
  12859. signature = 0x1e 0x97 0x46;
  12860. has_jtag = yes;
  12861. has_pdi = yes;
  12862. nvm_base = 0x01c0;
  12863. memory "eeprom"
  12864. size = 0x0800;
  12865. offset = 0x08c0000;
  12866. page_size = 0x20;
  12867. readsize = 0x100;
  12868. ;
  12869. memory "application"
  12870. size = 0x00020000;
  12871. offset = 0x0800000;
  12872. page_size = 0x100;
  12873. readsize = 0x100;
  12874. ;
  12875. memory "apptable"
  12876. size = 0x00002000;
  12877. offset = 0x0081e000;
  12878. page_size = 0x100;
  12879. readsize = 0x100;
  12880. ;
  12881. memory "boot"
  12882. size = 0x00002000;
  12883. offset = 0x00820000;
  12884. page_size = 0x100;
  12885. readsize = 0x100;
  12886. ;
  12887. memory "flash"
  12888. size = 0x00022000;
  12889. offset = 0x0800000;
  12890. page_size = 0x100;
  12891. readsize = 0x100;
  12892. ;
  12893. memory "prodsig"
  12894. size = 0x200;
  12895. offset = 0x8e0200;
  12896. page_size = 0x100;
  12897. readsize = 0x100;
  12898. ;
  12899. memory "usersig"
  12900. size = 0x200;
  12901. offset = 0x8e0400;
  12902. page_size = 0x100;
  12903. readsize = 0x100;
  12904. ;
  12905. memory "signature"
  12906. size = 3;
  12907. offset = 0x1000090;
  12908. ;
  12909. memory "fuse0"
  12910. size = 1;
  12911. offset = 0x8f0020;
  12912. ;
  12913. memory "fuse1"
  12914. size = 1;
  12915. offset = 0x8f0021;
  12916. ;
  12917. memory "fuse2"
  12918. size = 1;
  12919. offset = 0x8f0022;
  12920. ;
  12921. memory "fuse4"
  12922. size = 1;
  12923. offset = 0x8f0024;
  12924. ;
  12925. memory "fuse5"
  12926. size = 1;
  12927. offset = 0x8f0025;
  12928. ;
  12929. memory "lock"
  12930. size = 1;
  12931. offset = 0x8f0027;
  12932. ;
  12933. ;
  12934. #------------------------------------------------------------
  12935. # AVR32UC3A0512
  12936. #------------------------------------------------------------
  12937. part
  12938. id = "ucr2";
  12939. desc = "32UC3A0512";
  12940. signature = 0xED 0xC0 0x3F;
  12941. has_jtag = yes;
  12942. is_avr32 = yes;
  12943. memory "flash"
  12944. paged = yes;
  12945. page_size = 512; # bytes
  12946. readsize = 512; # bytes
  12947. num_pages = 1024; # could be set dynamicly
  12948. size = 0x00080000; # could be set dynamicly
  12949. offset = 0x80000000;
  12950. ;
  12951. ;
  12952. #------------------------------------------------------------
  12953. # ATtiny4
  12954. #------------------------------------------------------------
  12955. part
  12956. id = "t4";
  12957. desc = "ATtiny4";
  12958. signature = 0x1e 0x8f 0x0a;
  12959. has_tpi = yes;
  12960. memory "flash"
  12961. size = 512;
  12962. offset = 0x4000;
  12963. page_size = 16;
  12964. blocksize = 128;
  12965. ;
  12966. memory "signature"
  12967. size = 3;
  12968. offset = 0x3fc0;
  12969. ;
  12970. memory "fuse"
  12971. size = 1;
  12972. offset = 0x3f40;
  12973. blocksize = 4;
  12974. ;
  12975. memory "calibration"
  12976. size = 1;
  12977. offset = 0x3f80;
  12978. ;
  12979. memory "lockbits"
  12980. size = 1;
  12981. offset = 0x3f00;
  12982. ;
  12983. ;
  12984. #------------------------------------------------------------
  12985. # ATtiny5
  12986. #------------------------------------------------------------
  12987. part
  12988. id = "t5";
  12989. desc = "ATtiny5";
  12990. signature = 0x1e 0x8f 0x09;
  12991. has_tpi = yes;
  12992. memory "flash"
  12993. size = 512;
  12994. offset = 0x4000;
  12995. page_size = 16;
  12996. blocksize = 128;
  12997. ;
  12998. memory "signature"
  12999. size = 3;
  13000. offset = 0x3fc0;
  13001. ;
  13002. memory "fuse"
  13003. size = 1;
  13004. offset = 0x3f40;
  13005. blocksize = 4;
  13006. ;
  13007. memory "calibration"
  13008. size = 1;
  13009. offset = 0x3f80;
  13010. ;
  13011. memory "lockbits"
  13012. size = 1;
  13013. offset = 0x3f00;
  13014. ;
  13015. ;
  13016. #------------------------------------------------------------
  13017. # ATtiny9
  13018. #------------------------------------------------------------
  13019. part
  13020. id = "t8";
  13021. desc = "ATtiny9";
  13022. signature = 0x1e 0x90 0x08;
  13023. has_tpi = yes;
  13024. memory "flash"
  13025. size = 1024;
  13026. offset = 0x4000;
  13027. page_size = 16;
  13028. blocksize = 128;
  13029. ;
  13030. memory "signature"
  13031. size = 3;
  13032. offset = 0x3fc0;
  13033. ;
  13034. memory "fuse"
  13035. size = 1;
  13036. offset = 0x3f40;
  13037. blocksize = 4;
  13038. ;
  13039. memory "calibration"
  13040. size = 1;
  13041. offset = 0x3f80;
  13042. ;
  13043. memory "lockbits"
  13044. size = 1;
  13045. offset = 0x3f00;
  13046. ;
  13047. ;
  13048. #------------------------------------------------------------
  13049. # ATtiny10
  13050. #------------------------------------------------------------
  13051. part
  13052. id = "t10";
  13053. desc = "ATtiny10";
  13054. signature = 0x1e 0x90 0x03;
  13055. has_tpi = yes;
  13056. memory "flash"
  13057. size = 1024;
  13058. offset = 0x4000;
  13059. page_size = 16;
  13060. blocksize = 128;
  13061. ;
  13062. memory "signature"
  13063. size = 3;
  13064. offset = 0x3fc0;
  13065. ;
  13066. memory "fuse"
  13067. size = 1;
  13068. offset = 0x3f40;
  13069. blocksize = 4;
  13070. ;
  13071. memory "calibration"
  13072. size = 1;
  13073. offset = 0x3f80;
  13074. ;
  13075. memory "lockbits"
  13076. size = 1;
  13077. offset = 0x3f00;
  13078. ;
  13079. ;