Index: funcmap/attiny24.bs =================================================================== --- funcmap/attiny24.bs (nonexistent) +++ funcmap/attiny24.bs (revision 9181) @@ -0,0 +1,81 @@ +refdes U?? + +pinalign left center +pinalign right center +attr device attiny24 +text_size_mult 0.7 + +shape box + +begin pin Vcc + num 1 + loc left +end pin + +begin pin PB0 + num 2 + loc left +end pin + +begin pin PB1 + num 3 + loc left +end pin + +begin pin PB3 + num 4 + loc left +end pin + +begin pin PB2 + num 5 + loc left +end pin + +begin pin PB7 + num 6 + loc left +end pin + +begin pin PB6 + num 7 + loc left +end pin + + + +begin pin GND + num 14 + loc right +end pin + +begin pin PA0 + num 13 + loc right +end pin + +begin pin PA1 + num 12 + loc right +end pin + +begin pin PA2 + num 11 + loc right +end pin + +begin pin PA3 + num 10 + loc right +end pin + +begin pin PA4 + num 9 + loc right +end pin + +begin pin PA5 + num 8 + loc right +end pin + Index: funcmap/attiny24.funcmap =================================================================== --- funcmap/attiny24.funcmap (nonexistent) +++ funcmap/attiny24.funcmap (revision 9181) @@ -0,0 +1,88 @@ +ha:std_funcmap.v1 { + ha:term_attribs { + ha:PB0 { + ha:PCINT8 { sigtype=digital; dir=input; } + ha:XTAL1 { sigtype=analog; } + } + ha:PB1 { + ha:PCINT9 { sigtype=digital; dir=input; } + ha:XTAL2 { sigtype=analog; } + } + ha:PB3 { + ha:PCINT11 { sigtype=digital; dir=input; } + ha:RESET { sigtype=digital; dir=input; } + } + ha:PB2 { + ha:PCINT10 { sigtype=digital; dir=input; } + ha:OC0A { sigtype=digital; dir=output; } + ha:INT0 { sigtype=digital; dir=input; } + } + ha:PB7 { + ha:PCINT7 { sigtype=digital; dir=input; } + ha:OC0B { sigtype=digital; dir=output; } + ha:ADC7 { sigtype=digital; dir=input; } + } + ha:PB6 { + ha:PCINT6 { sigtype=digital; dir=input; } + ha:MOSI { sigtype=digital; } + ha:DI { sigtype=digital; dir=input; } + ha:SDA { sigtype=digital; } + ha:OC1A { sigtype=digital; dir=output; } + ha:ADC6 { sigtype=analog; dir=input; } + } + + ha:PA0 { + ha:PCINT0 { sigtype=digital; dir=input; } + ha:AREF { sigtype=analog; dir=input; } + ha:ADC0 { sigtype=analog; dir=input; } + } + + ha:PA1 { + ha:PCINT1 { sigtype=digital; dir=input; } + ha:AIN0 { sigtype=analog; dir=input; } + ha:ADC1 { sigtype=analog; dir=input; } + } + + ha:PA2 { + ha:PCINT2 { sigtype=digital; dir=input; } + ha:AIN1 { sigtype=analog; dir=input; } + ha:ADC2 { sigtype=analog; dir=input; } + } + + ha:PA3 { + ha:PCINT3 { sigtype=digital; dir=input; } + ha:ADC3 { sigtype=analog; dir=input; } + } + + ha:PA4 { + ha:PCINT4 { sigtype=digital; dir=input; } + ha:SCK { sigtype=digital; } + ha:SCL { sigtype=digital; } + ha:ADC4 { sigtype=analog; dir=input; } + } + + ha:PA5 { + ha:PCINT5 { sigtype=digital; dir=input; } + ha:MISO { sigtype=digital; } + ha:DO { sigtype=digital; dir=output; } + ha:OC1B { sigtype=digital; dir=output; } + ha:ADC5 { sigtype=analog; dir=input; } + } + } + +# coloring + ha:weak_groups { + li:pcint { PCINT8, PCINT9, PCINT11, PCINT10, PCINT7, PCINT6, PCINT0, PCINT1, PCINT2, PCINT3, PCINT4, PCINT5 } + li:xtal { XTAL1, XTAL2 } + li:PWM { OC0A, OC0B, OC1A, OC1B } + li:adc { AREF, ADC0, ADC1, ADC2, ADC3, ADC4, ADC5, ADC6, ADC7 } + li:comparator { AIN0, AIN1 } + } + +# have to be selected all at once + ha:strong_groups { + li:SPI { SCK, MISO, MOSI } + li:I2C { SDA, SCL } + li:USI { SCK, DI, DO } + } +} Index: funcmap/attiny24.ry =================================================================== --- funcmap/attiny24.ry (nonexistent) +++ funcmap/attiny24.ry (revision 9181) @@ -0,0 +1,227 @@ +ha:cschem-group-v1 { + ha:group.1 { + uuid=RSuLolzje3jfCK4oCZ8AAAAP; + li:objects { + ha:text.1 { x1=-8000; y1=-4000; rot=0; stroke=sym-primary; dyntext=1; floater=1; text={%../A.name%}; } + ha:polygon.2 { + li:outline { + ha:line { x1=0; y1=0; x2=0; y2=32000; stroke=sym-decor; } + ha:line { x1=0; y1=32000; x2=16000; y2=32000; stroke=sym-decor; } + ha:line { x1=16000; y1=32000; x2=16000; y2=0; stroke=sym-decor; } + ha:line { x1=16000; y1=0; x2=0; y2=0; stroke=sym-decor; } + } + stroke=sym-decor + } + ha:group.3 { + uuid=RSuLolzje3jfCK4oCZ8AAAAB; + x=0; y=28000; + rot=0; mirx=1; miry=0; + li:objects { + ha:line.1 { x1=0; y1=0; x2=4000; y2=0; stroke=term-decor; } + ha:text.2 { x1=1000; y1=0; rot=0; stroke=term-primary; dyntext=1; text={%../a.display/name%}; } + ha:text.3 { x1=-500; y1=-2000; rot=0; mirx=1term-secondary; stroke=term-secondary; dyntext=1; text={%../A.name%}; } + } + ha:attrib { + role=terminal; + pinnum=1; + name=Vcc; + } + } + ha:group.4 { + uuid=RSuLolzje3jfCK4oCZ8AAAAC; + x=0; y=24000; + rot=0; mirx=1; miry=0; + li:objects { + ha:line.1 { x1=0; y1=0; x2=4000; y2=0; stroke=term-decor; } + ha:text.2 { x1=1000; y1=0; rot=0; stroke=term-primary; dyntext=1; text={%../a.display/name%}; } + ha:text.3 { x1=-500; y1=-2000; rot=0; mirx=1term-secondary; stroke=term-secondary; dyntext=1; text={%../A.name%}; } + } + ha:attrib { + role=terminal; + pinnum=2; + name=PB0; + } + } + ha:group.5 { + uuid=RSuLolzje3jfCK4oCZ8AAAAD; + x=0; y=20000; + rot=0; mirx=1; miry=0; + li:objects { + ha:line.1 { x1=0; y1=0; x2=4000; y2=0; stroke=term-decor; } + ha:text.2 { x1=1000; y1=0; rot=0; stroke=term-primary; dyntext=1; text={%../a.display/name%}; } + ha:text.3 { x1=-500; y1=-2000; rot=0; mirx=1term-secondary; stroke=term-secondary; dyntext=1; text={%../A.name%}; } + } + ha:attrib { + role=terminal; + pinnum=3; + name=PB1; + } + } + ha:group.6 { + uuid=RSuLolzje3jfCK4oCZ8AAAAE; + x=0; y=16000; + rot=0; mirx=1; miry=0; + li:objects { + ha:line.1 { x1=0; y1=0; x2=4000; y2=0; stroke=term-decor; } + ha:text.2 { x1=1000; y1=0; rot=0; stroke=term-primary; dyntext=1; text={%../a.display/name%}; } + ha:text.3 { x1=-500; y1=-2000; rot=0; mirx=1term-secondary; stroke=term-secondary; dyntext=1; text={%../A.name%}; } + } + ha:attrib { + role=terminal; + pinnum=4; + name=PB3; + } + } + ha:group.7 { + uuid=RSuLolzje3jfCK4oCZ8AAAAF; + x=0; y=12000; + rot=0; mirx=1; miry=0; + li:objects { + ha:line.1 { x1=0; y1=0; x2=4000; y2=0; stroke=term-decor; } + ha:text.2 { x1=1000; y1=0; rot=0; stroke=term-primary; dyntext=1; text={%../a.display/name%}; } + ha:text.3 { x1=-500; y1=-2000; rot=0; mirx=1term-secondary; stroke=term-secondary; dyntext=1; text={%../A.name%}; } + } + ha:attrib { + role=terminal; + pinnum=5; + name=PB2; + } + } + ha:group.8 { + uuid=RSuLolzje3jfCK4oCZ8AAAAG; + x=0; y=8000; + rot=0; mirx=1; miry=0; + li:objects { + ha:line.1 { x1=0; y1=0; x2=4000; y2=0; stroke=term-decor; } + ha:text.2 { x1=1000; y1=0; rot=0; stroke=term-primary; dyntext=1; text={%../a.display/name%}; } + ha:text.3 { x1=-500; y1=-2000; rot=0; mirx=1term-secondary; stroke=term-secondary; dyntext=1; text={%../A.name%}; } + } + ha:attrib { + role=terminal; + pinnum=6; + name=PB7; + } + } + ha:group.9 { + uuid=RSuLolzje3jfCK4oCZ8AAAAH; + x=0; y=4000; + rot=0; mirx=1; miry=0; + li:objects { + ha:line.1 { x1=0; y1=0; x2=4000; y2=0; stroke=term-decor; } + ha:text.2 { x1=1000; y1=0; rot=0; stroke=term-primary; dyntext=1; text={%../a.display/name%}; } + ha:text.3 { x1=-500; y1=-2000; rot=0; mirx=1term-secondary; stroke=term-secondary; dyntext=1; text={%../A.name%}; } + } + ha:attrib { + role=terminal; + pinnum=7; + name=PB6; + } + } + ha:group.10 { + uuid=RSuLolzje3jfCK4oCZ8AAAAI; + x=16000; y=28000; + li:objects { + ha:line.1 { x1=0; y1=0; x2=4000; y2=0; stroke=term-decor; } + ha:text.2 { x1=1000; y1=0; rot=0; stroke=term-primary; dyntext=1; text={%../a.display/name%}; } + ha:text.3 { x1=-500; y1=-2000; rot=0; mirx=1term-secondary; stroke=term-secondary; dyntext=1; text={%../A.name%}; } + } + ha:attrib { + role=terminal; + pinnum=14; + name=GND; + } + } + ha:group.11 { + uuid=RSuLolzje3jfCK4oCZ8AAAAJ; + x=16000; y=24000; + li:objects { + ha:line.1 { x1=0; y1=0; x2=4000; y2=0; stroke=term-decor; } + ha:text.2 { x1=1000; y1=0; rot=0; stroke=term-primary; dyntext=1; text={%../a.display/name%}; } + ha:text.3 { x1=-500; y1=-2000; rot=0; mirx=1term-secondary; stroke=term-secondary; dyntext=1; text={%../A.name%}; } + } + ha:attrib { + role=terminal; + pinnum=13; + name=PA0; + } + } + ha:group.12 { + uuid=RSuLolzje3jfCK4oCZ8AAAAK; + x=16000; y=20000; + li:objects { + ha:line.1 { x1=0; y1=0; x2=4000; y2=0; stroke=term-decor; } + ha:text.2 { x1=1000; y1=0; rot=0; stroke=term-primary; dyntext=1; text={%../a.display/name%}; } + ha:text.3 { x1=-500; y1=-2000; rot=0; mirx=1term-secondary; stroke=term-secondary; dyntext=1; text={%../A.name%}; } + } + ha:attrib { + role=terminal; + pinnum=12; + name=PA1; + } + } + ha:group.13 { + uuid=RSuLolzje3jfCK4oCZ8AAAAL; + x=16000; y=16000; + li:objects { + ha:line.1 { x1=0; y1=0; x2=4000; y2=0; stroke=term-decor; } + ha:text.2 { x1=1000; y1=0; rot=0; stroke=term-primary; dyntext=1; text={%../a.display/name%}; } + ha:text.3 { x1=-500; y1=-2000; rot=0; mirx=1term-secondary; stroke=term-secondary; dyntext=1; text={%../A.name%}; } + } + ha:attrib { + role=terminal; + pinnum=11; + name=PA2; + } + } + ha:group.14 { + uuid=RSuLolzje3jfCK4oCZ8AAAAM; + x=16000; y=12000; + li:objects { + ha:line.1 { x1=0; y1=0; x2=4000; y2=0; stroke=term-decor; } + ha:text.2 { x1=1000; y1=0; rot=0; stroke=term-primary; dyntext=1; text={%../a.display/name%}; } + ha:text.3 { x1=-500; y1=-2000; rot=0; mirx=1term-secondary; stroke=term-secondary; dyntext=1; text={%../A.name%}; } + } + ha:attrib { + role=terminal; + pinnum=10; + name=PA3; + } + } + ha:group.15 { + uuid=RSuLolzje3jfCK4oCZ8AAAAN; + x=16000; y=8000; + li:objects { + ha:line.1 { x1=0; y1=0; x2=4000; y2=0; stroke=term-decor; } + ha:text.2 { x1=1000; y1=0; rot=0; stroke=term-primary; dyntext=1; text={%../a.display/name%}; } + ha:text.3 { x1=-500; y1=-2000; rot=0; mirx=1term-secondary; stroke=term-secondary; dyntext=1; text={%../A.name%}; } + } + ha:attrib { + role=terminal; + pinnum=9; + name=PA4; + } + } + ha:group.16 { + uuid=RSuLolzje3jfCK4oCZ8AAAAO; + x=16000; y=4000; + li:objects { + ha:line.1 { x1=0; y1=0; x2=4000; y2=0; stroke=term-decor; } + ha:text.2 { x1=1000; y1=0; rot=0; stroke=term-primary; dyntext=1; text={%../a.display/name%}; } + ha:text.3 { x1=-500; y1=-2000; rot=0; mirx=1term-secondary; stroke=term-secondary; dyntext=1; text={%../A.name%}; } + } + ha:attrib { + role=terminal; + pinnum=8; + name=PA5; + } + } + ha:text.17 { x1=-8000; y1=-8000; rot=0; stroke=sym-secondary; dyntext=1; floater=1; text={%../A.device%}; } + } + ha:attrib { + role=symbol; + name={U?}; + -symbol-generator=boxsym-rnd; + device=attiny24; + } + } +}