mirror of
git://projects.qi-hardware.com/antorcha.git
synced 2025-04-21 12:27:27 +03:00
rename "whirl" to "tornado"
This commit is contained in:
4
tornado/cpu/Makefile
Normal file
4
tornado/cpu/Makefile
Normal file
@@ -0,0 +1,4 @@
|
||||
NAME = cpu
|
||||
VERSION = yymmdd
|
||||
|
||||
include ../../../ben-wpan/makefiles/Makefile.kicad
|
||||
2243
tornado/cpu/cpu.brd
Normal file
2243
tornado/cpu/cpu.brd
Normal file
File diff suppressed because it is too large
Load Diff
108
tornado/cpu/cpu.cmp
Normal file
108
tornado/cpu/cpu.cmp
Normal file
@@ -0,0 +1,108 @@
|
||||
Cmp-Mod V01 Created by CvPcb (2012-04-11 BZR 3505)-testing date = Mon Nov 5 18:17:11 2012
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /509808CE;
|
||||
Reference = C1;
|
||||
ValeurCmp = 100n;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /50980865;
|
||||
Reference = C2;
|
||||
ValeurCmp = 100n;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /50980874;
|
||||
Reference = C3;
|
||||
ValeurCmp = 1u;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /509808A1;
|
||||
Reference = C4;
|
||||
ValeurCmp = 100n;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /50980FF7;
|
||||
Reference = C5;
|
||||
ValeurCmp = 1u;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /509808B0;
|
||||
Reference = C6;
|
||||
ValeurCmp = 100n;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /509808BF;
|
||||
Reference = C7;
|
||||
ValeurCmp = 100n;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /50980883;
|
||||
Reference = CON1;
|
||||
ValeurCmp = CONN_4;
|
||||
IdModule = PAD_120x60_4x100mil;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5098082E;
|
||||
Reference = CON2;
|
||||
ValeurCmp = CONN_6;
|
||||
IdModule = PAD_2mm_6x50mil;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /50980CAB;
|
||||
Reference = CON3;
|
||||
ValeurCmp = CONN_6;
|
||||
IdModule = PAD_80x80_6x100mil;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /50980818;
|
||||
Reference = CON4;
|
||||
ValeurCmp = MEMCARD8;
|
||||
IdModule = 8:10-SOCKET-RA;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /50980809;
|
||||
Reference = I1;
|
||||
ValeurCmp = ATMEGA8;
|
||||
IdModule = QFP32;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /509808F1;
|
||||
Reference = Q1;
|
||||
ValeurCmp = PMOSFET-GSD;
|
||||
IdModule = SOT-323;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /50982700;
|
||||
Reference = SW1;
|
||||
ValeurCmp = EVQQ7;
|
||||
IdModule = EVQQ7;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /50980892;
|
||||
Reference = U1;
|
||||
ValeurCmp = ADXL32X;
|
||||
IdModule = QFN16-LFCSP_LQ;
|
||||
EndCmp
|
||||
|
||||
EndListe
|
||||
56
tornado/cpu/cpu.pro
Normal file
56
tornado/cpu/cpu.pro
Normal file
@@ -0,0 +1,56 @@
|
||||
update=Mon Nov 5 18:09:01 2012
|
||||
last_client=pcbnew
|
||||
[eeschema]
|
||||
version=1
|
||||
LibDir=../../../kicad-libs/components;../../components
|
||||
NetFmtName=
|
||||
HPGLSpd=20
|
||||
HPGLDm=15
|
||||
HPGLNum=1
|
||||
RptD_X=0
|
||||
RptD_Y=100
|
||||
RptLab=1
|
||||
LabSize=60
|
||||
[eeschema/libraries]
|
||||
LibName1=c
|
||||
LibName2=r
|
||||
LibName3=Atmega8
|
||||
LibName4=con
|
||||
LibName5=sw4
|
||||
LibName6=pmosfet-gsd
|
||||
LibName7=adxl32x
|
||||
LibName8=gencon
|
||||
LibName9=pwr
|
||||
LibName10=powered
|
||||
LibName11=evqq7
|
||||
[cvpcb]
|
||||
version=1
|
||||
NetIExt=net
|
||||
[cvpcb/libraries]
|
||||
EquName1=devcms
|
||||
[pcbnew]
|
||||
version=1
|
||||
LastNetListRead=cpu.net
|
||||
PadDrlX=320
|
||||
PadDimH=600
|
||||
PadDimV=600
|
||||
BoardThickness=630
|
||||
TxtPcbV=800
|
||||
TxtPcbH=600
|
||||
TxtModV=600
|
||||
TxtModH=600
|
||||
TxtModW=120
|
||||
VEgarde=100
|
||||
DrawLar=150
|
||||
EdgeLar=150
|
||||
TxtLar=120
|
||||
MSegLar=150
|
||||
[pcbnew/libraries]
|
||||
LibDir=../../../kicad-libs/modules;../../../ben-wpan/modules
|
||||
LibName1=stdpass
|
||||
LibName2=pads-array
|
||||
LibName3=sot
|
||||
LibName4=qfn
|
||||
LibName5=qfp
|
||||
LibName6=evqq7
|
||||
LibName7=8_10-socket-ra
|
||||
642
tornado/cpu/cpu.sch
Normal file
642
tornado/cpu/cpu.sch
Normal file
@@ -0,0 +1,642 @@
|
||||
EESchema Schematic File Version 2 date Tue Nov 6 14:48:14 2012
|
||||
LIBS:c
|
||||
LIBS:r
|
||||
LIBS:Atmega8
|
||||
LIBS:con
|
||||
LIBS:sw4
|
||||
LIBS:pmosfet-gsd
|
||||
LIBS:adxl32x
|
||||
LIBS:gencon
|
||||
LIBS:pwr
|
||||
LIBS:powered
|
||||
LIBS:evqq7
|
||||
LIBS:cpu-cache
|
||||
EELAYER 25 0
|
||||
EELAYER END
|
||||
$Descr A4 11693 8268
|
||||
encoding utf-8
|
||||
Sheet 1 1
|
||||
Title ""
|
||||
Date "6 nov 2012"
|
||||
Rev ""
|
||||
Comp ""
|
||||
Comment1 ""
|
||||
Comment2 ""
|
||||
Comment3 ""
|
||||
Comment4 ""
|
||||
$EndDescr
|
||||
$Comp
|
||||
L ATMEGA8 I1
|
||||
U 1 1 50980809
|
||||
P 5000 3350
|
||||
F 0 "I1" H 5700 4750 60 0000 C CNN
|
||||
F 1 "ATMEGA8" H 5650 1900 60 0000 C CNN
|
||||
1 5000 3350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L MEMCARD8 CON4
|
||||
U 1 1 50980818
|
||||
P 10450 6100
|
||||
F 0 "CON4" H 10700 6600 60 0000 C CNN
|
||||
F 1 "MEMCARD8" H 10600 5650 60 0000 C CNN
|
||||
1 10450 6100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L CONN_6 CON2
|
||||
U 1 1 5098082E
|
||||
P 1200 2750
|
||||
F 0 "CON2" H 1200 3100 60 0000 C CNN
|
||||
F 1 "CONN_6" H 1200 2400 60 0000 C CNN
|
||||
1 1200 2750
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L C C2
|
||||
U 1 1 50980865
|
||||
P 7300 1900
|
||||
F 0 "C2" H 7350 2000 60 0000 L CNN
|
||||
F 1 "100n" H 7350 1800 60 0000 L CNN
|
||||
1 7300 1900
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L C C3
|
||||
U 1 1 50980874
|
||||
P 7700 1900
|
||||
F 0 "C3" H 7750 2000 60 0000 L CNN
|
||||
F 1 "1u" H 7750 1800 60 0000 L CNN
|
||||
1 7700 1900
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L CONN_4 CON1
|
||||
U 1 1 50980883
|
||||
P 9300 1350
|
||||
F 0 "CON1" H 9300 1750 60 0000 C CNN
|
||||
F 1 "CONN_4" H 9350 1100 60 0000 C CNN
|
||||
1 9300 1350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L ADXL32X U1
|
||||
U 1 1 50980892
|
||||
P 1950 5350
|
||||
F 0 "U1" H 1550 5850 60 0000 C CNN
|
||||
F 1 "ADXL32X" H 1950 5350 60 0000 C CNN
|
||||
1 1950 5350
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L C C4
|
||||
U 1 1 509808A1
|
||||
P 1000 4700
|
||||
F 0 "C4" H 1050 4800 60 0000 L CNN
|
||||
F 1 "100n" H 1050 4600 60 0000 L CNN
|
||||
1 1000 4700
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L C C6
|
||||
U 1 1 509808B0
|
||||
P 2900 5900
|
||||
F 0 "C6" H 2950 6000 60 0000 L CNN
|
||||
F 1 "100n" H 2950 5800 60 0000 L CNN
|
||||
1 2900 5900
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L C C7
|
||||
U 1 1 509808BF
|
||||
P 3400 5900
|
||||
F 0 "C7" H 3450 6000 60 0000 L CNN
|
||||
F 1 "100n" H 3450 5800 60 0000 L CNN
|
||||
1 3400 5900
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L C C1
|
||||
U 1 1 509808CE
|
||||
P 3600 1900
|
||||
F 0 "C1" H 3650 2000 60 0000 L CNN
|
||||
F 1 "100n" H 3650 1800 60 0000 L CNN
|
||||
1 3600 1900
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L PMOSFET-GSD Q1
|
||||
U 1 1 509808F1
|
||||
P 9200 5000
|
||||
F 0 "Q1" H 9050 5325 60 0000 C CNN
|
||||
F 1 "PMOSFET-GSD" H 8850 4700 60 0000 C CNN
|
||||
1 9200 5000
|
||||
1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L CONN_6 CON3
|
||||
U 1 1 50980CAB
|
||||
P 10500 3150
|
||||
F 0 "CON3" H 10500 3500 60 0000 C CNN
|
||||
F 1 "CONN_6" H 10500 2800 60 0000 C CNN
|
||||
1 10500 3150
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR01
|
||||
U 1 1 50980D70
|
||||
P 3600 2200
|
||||
F 0 "#PWR01" H 3600 2200 30 0001 C CNN
|
||||
F 1 "GND" H 3600 2130 30 0001 C CNN
|
||||
1 3600 2200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR02
|
||||
U 1 1 50980D7F
|
||||
P 7300 2200
|
||||
F 0 "#PWR02" H 7300 2200 30 0001 C CNN
|
||||
F 1 "GND" H 7300 2130 30 0001 C CNN
|
||||
1 7300 2200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR03
|
||||
U 1 1 50980D8C
|
||||
P 7700 2200
|
||||
F 0 "#PWR03" H 7700 2200 30 0001 C CNN
|
||||
F 1 "GND" H 7700 2130 30 0001 C CNN
|
||||
1 7700 2200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR04
|
||||
U 1 1 50980D92
|
||||
P 4800 5100
|
||||
F 0 "#PWR04" H 4800 5100 30 0001 C CNN
|
||||
F 1 "GND" H 4800 5030 30 0001 C CNN
|
||||
1 4800 5100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR05
|
||||
U 1 1 50980D98
|
||||
P 5000 5100
|
||||
F 0 "#PWR05" H 5000 5100 30 0001 C CNN
|
||||
F 1 "GND" H 5000 5030 30 0001 C CNN
|
||||
1 5000 5100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR06
|
||||
U 1 1 50980D9E
|
||||
P 5200 5100
|
||||
F 0 "#PWR06" H 5200 5100 30 0001 C CNN
|
||||
F 1 "GND" H 5200 5030 30 0001 C CNN
|
||||
1 5200 5100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR07
|
||||
U 1 1 50980DDF
|
||||
P 8700 2200
|
||||
F 0 "#PWR07" H 8700 2200 30 0001 C CNN
|
||||
F 1 "GND" H 8700 2130 30 0001 C CNN
|
||||
1 8700 2200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
NoConn ~ 8900 1200
|
||||
$Comp
|
||||
L GND #PWR08
|
||||
U 1 1 50980F6F
|
||||
P 9900 6600
|
||||
F 0 "#PWR08" H 9900 6600 30 0001 C CNN
|
||||
F 1 "GND" H 9900 6530 30 0001 C CNN
|
||||
1 9900 6600
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L C C5
|
||||
U 1 1 50980FF7
|
||||
P 9900 5000
|
||||
F 0 "C5" H 9950 5100 60 0000 L CNN
|
||||
F 1 "1u" H 9950 4900 60 0000 L CNN
|
||||
1 9900 5000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Text Label 8300 1350 0 60 ~ 0
|
||||
CTRL_3V
|
||||
Text Label 10200 4400 0 60 ~ 0
|
||||
CTRL_3V
|
||||
$Comp
|
||||
L GND #PWR09
|
||||
U 1 1 50981355
|
||||
P 9900 3600
|
||||
F 0 "#PWR09" H 9900 3600 30 0001 C CNN
|
||||
F 1 "GND" H 9900 3530 30 0001 C CNN
|
||||
1 9900 3600
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Text Label 9300 3300 0 60 ~ 0
|
||||
CTRL_3V
|
||||
NoConn ~ 6200 3300
|
||||
Text Label 8400 1050 0 60 ~ 0
|
||||
VLED
|
||||
Text Label 2000 2500 0 60 ~ 0
|
||||
VLED
|
||||
$Comp
|
||||
L GND #PWR010
|
||||
U 1 1 50981921
|
||||
P 1800 3200
|
||||
F 0 "#PWR010" H 1800 3200 30 0001 C CNN
|
||||
F 1 "GND" H 1800 3130 30 0001 C CNN
|
||||
1 1800 3200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Text Label 2000 2700 0 60 ~ 0
|
||||
CTRL_3V
|
||||
Text Label 2000 3000 0 60 ~ 0
|
||||
SCLK
|
||||
Text Label 2000 2800 0 60 ~ 0
|
||||
DS
|
||||
Text Label 2000 2900 0 60 ~ 0
|
||||
LCLK
|
||||
Text Label 9300 2900 0 60 ~ 0
|
||||
SCLK_DAT1
|
||||
Text Label 9300 3000 0 60 ~ 0
|
||||
MISO_DAT0
|
||||
Text Label 9300 3100 0 60 ~ 0
|
||||
MOSI_CMD
|
||||
Text Label 9300 3200 0 60 ~ 0
|
||||
nRESET
|
||||
Text Label 8200 5000 0 60 ~ 0
|
||||
nPWR
|
||||
$Comp
|
||||
L GND #PWR011
|
||||
U 1 1 50981CB2
|
||||
P 2900 6300
|
||||
F 0 "#PWR011" H 2900 6300 30 0001 C CNN
|
||||
F 1 "GND" H 2900 6230 30 0001 C CNN
|
||||
1 2900 6300
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR012
|
||||
U 1 1 50981CB8
|
||||
P 3400 6300
|
||||
F 0 "#PWR012" H 3400 6300 30 0001 C CNN
|
||||
F 1 "GND" H 3400 6230 30 0001 C CNN
|
||||
1 3400 6300
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR013
|
||||
U 1 1 50981E0E
|
||||
P 1800 6500
|
||||
F 0 "#PWR013" H 1800 6500 30 0001 C CNN
|
||||
F 1 "GND" H 1800 6430 30 0001 C CNN
|
||||
1 1800 6500
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR014
|
||||
U 1 1 50981E14
|
||||
P 1000 5700
|
||||
F 0 "#PWR014" H 1000 5700 30 0001 C CNN
|
||||
F 1 "GND" H 1000 5630 30 0001 C CNN
|
||||
1 1000 5700
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
NoConn ~ 2700 5300
|
||||
NoConn ~ 2700 5500
|
||||
NoConn ~ 2100 6100
|
||||
NoConn ~ 1200 5500
|
||||
NoConn ~ 1200 5200
|
||||
NoConn ~ 1200 5300
|
||||
NoConn ~ 2100 4600
|
||||
NoConn ~ 1800 4600
|
||||
Text Label 2250 4400 0 60 ~ 0
|
||||
CTRL_3V
|
||||
$Comp
|
||||
L POWERED #FLG015
|
||||
U 1 1 5098280F
|
||||
P 5900 1000
|
||||
F 0 "#FLG015" H 6100 900 60 0001 C CNN
|
||||
F 1 "POWERED" H 5900 1050 60 0000 C CNN
|
||||
1 5900 1000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L POWERED #FLG016
|
||||
U 1 1 5098281C
|
||||
P 10400 1300
|
||||
F 0 "#FLG016" H 10600 1200 60 0001 C CNN
|
||||
F 1 "POWERED" H 10400 1350 60 0000 C CNN
|
||||
1 10400 1300
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L GND #PWR017
|
||||
U 1 1 50982822
|
||||
P 10400 1700
|
||||
F 0 "#PWR017" H 10400 1700 30 0001 C CNN
|
||||
F 1 "GND" H 10400 1630 30 0001 C CNN
|
||||
1 10400 1700
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L EVQQ7 SW1
|
||||
U 1 1 50982700
|
||||
P 5400 6400
|
||||
F 0 "SW1" H 5550 6670 60 0000 C CNN
|
||||
F 1 "EVQQ7" H 5140 6120 60 0000 C CNN
|
||||
1 5400 6400
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
NoConn ~ 6200 4100
|
||||
NoConn ~ 3800 2900
|
||||
NoConn ~ 3800 3100
|
||||
NoConn ~ 3800 3200
|
||||
NoConn ~ 3800 3300
|
||||
$Comp
|
||||
L GND #PWR018
|
||||
U 1 1 5098318B
|
||||
P 5400 7100
|
||||
F 0 "#PWR018" H 5400 7100 30 0001 C CNN
|
||||
F 1 "GND" H 5400 7030 30 0001 C CNN
|
||||
1 5400 7100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
NoConn ~ 5400 6000
|
||||
NoConn ~ 5300 6000
|
||||
NoConn ~ 5800 6400
|
||||
Text Label 4500 6300 0 60 ~ 0
|
||||
SW_W
|
||||
Text Label 4500 6400 0 60 ~ 0
|
||||
SW_SW
|
||||
Text Label 4500 6500 0 60 ~ 0
|
||||
SW_S
|
||||
Text Label 6000 6500 0 60 ~ 0
|
||||
SW_E
|
||||
Text Label 6000 6300 0 60 ~ 0
|
||||
SW_N
|
||||
Text Label 6600 3600 0 60 ~ 0
|
||||
SW_S
|
||||
Text Label 6600 3700 0 60 ~ 0
|
||||
SW_SW
|
||||
Text Label 6600 3800 0 60 ~ 0
|
||||
SW_W
|
||||
Text Label 6600 3900 0 60 ~ 0
|
||||
SW_N
|
||||
Text Label 6600 4000 0 60 ~ 0
|
||||
SW_E
|
||||
Text Label 3500 3800 0 60 ~ 0
|
||||
X
|
||||
Text Label 3500 3900 0 60 ~ 0
|
||||
Y
|
||||
Text Label 3800 1500 0 60 ~ 0
|
||||
AREF
|
||||
Text Label 8250 5700 0 60 ~ 0
|
||||
DAT2
|
||||
Text Label 8250 5800 0 60 ~ 0
|
||||
DAT3
|
||||
Text Label 8250 6100 0 60 ~ 0
|
||||
CLK
|
||||
Text Label 8250 6300 0 60 ~ 0
|
||||
MISO_DAT0
|
||||
Text Label 8250 5900 0 60 ~ 0
|
||||
MOSI_CMD
|
||||
Text Label 8250 6400 0 60 ~ 0
|
||||
SCLK_DAT1
|
||||
Text Label 9400 6000 0 60 ~ 0
|
||||
VCARD
|
||||
Wire Wire Line
|
||||
3600 2100 3600 2200
|
||||
Wire Wire Line
|
||||
7300 2100 7300 2200
|
||||
Wire Wire Line
|
||||
7700 2100 7700 2200
|
||||
Wire Wire Line
|
||||
4800 5000 4800 5100
|
||||
Wire Wire Line
|
||||
5000 5000 5000 5100
|
||||
Wire Wire Line
|
||||
5200 5000 5200 5100
|
||||
Wire Wire Line
|
||||
3600 1700 3600 1500
|
||||
Wire Wire Line
|
||||
3600 1500 4700 1500
|
||||
Wire Wire Line
|
||||
4700 1500 4700 1800
|
||||
Wire Wire Line
|
||||
8700 2200 8700 1500
|
||||
Wire Wire Line
|
||||
8700 1500 8900 1500
|
||||
Wire Wire Line
|
||||
4900 1350 4900 1800
|
||||
Wire Wire Line
|
||||
4900 1350 8900 1350
|
||||
Wire Wire Line
|
||||
5100 1800 5100 1350
|
||||
Connection ~ 5100 1350
|
||||
Wire Wire Line
|
||||
5300 1800 5300 1350
|
||||
Connection ~ 5300 1350
|
||||
Wire Wire Line
|
||||
7300 1700 7300 1350
|
||||
Connection ~ 7300 1350
|
||||
Wire Wire Line
|
||||
7700 1700 7700 1350
|
||||
Connection ~ 7700 1350
|
||||
Wire Wire Line
|
||||
6200 2900 7700 2900
|
||||
Wire Wire Line
|
||||
7700 2900 7700 5900
|
||||
Wire Wire Line
|
||||
7700 5900 10100 5900
|
||||
Wire Wire Line
|
||||
6200 3000 7600 3000
|
||||
Wire Wire Line
|
||||
7600 3000 7600 6300
|
||||
Wire Wire Line
|
||||
7600 6300 10100 6300
|
||||
Wire Wire Line
|
||||
6200 3100 8500 3100
|
||||
Wire Wire Line
|
||||
7500 3100 7500 6400
|
||||
Wire Wire Line
|
||||
7500 6400 10100 6400
|
||||
Wire Wire Line
|
||||
10100 6200 9900 6200
|
||||
Wire Wire Line
|
||||
9900 5200 9900 6600
|
||||
Wire Wire Line
|
||||
10100 6000 9300 6000
|
||||
Wire Wire Line
|
||||
9300 6000 9300 5400
|
||||
Connection ~ 9900 6200
|
||||
Wire Wire Line
|
||||
9300 4600 9300 4400
|
||||
Wire Wire Line
|
||||
9300 4400 10700 4400
|
||||
Wire Wire Line
|
||||
9900 4800 9900 4400
|
||||
Connection ~ 9900 4400
|
||||
Wire Wire Line
|
||||
8500 3100 8500 2900
|
||||
Wire Wire Line
|
||||
8500 2900 10100 2900
|
||||
Connection ~ 7500 3100
|
||||
Wire Wire Line
|
||||
7600 3200 8600 3200
|
||||
Wire Wire Line
|
||||
8600 3200 8600 3000
|
||||
Wire Wire Line
|
||||
8600 3000 10100 3000
|
||||
Connection ~ 7600 3200
|
||||
Wire Wire Line
|
||||
6200 4200 8800 4200
|
||||
Wire Wire Line
|
||||
7700 3300 8700 3300
|
||||
Wire Wire Line
|
||||
8700 3300 8700 3100
|
||||
Wire Wire Line
|
||||
8700 3100 10100 3100
|
||||
Connection ~ 7700 3300
|
||||
Wire Wire Line
|
||||
8800 4200 8800 3200
|
||||
Wire Wire Line
|
||||
8800 3200 10100 3200
|
||||
Wire Wire Line
|
||||
9900 3600 9900 3400
|
||||
Wire Wire Line
|
||||
9900 3400 10100 3400
|
||||
Wire Wire Line
|
||||
9200 3300 10100 3300
|
||||
Wire Wire Line
|
||||
7800 6100 10100 6100
|
||||
Wire Wire Line
|
||||
8000 5700 10100 5700
|
||||
Wire Wire Line
|
||||
6200 3200 7400 3200
|
||||
Wire Wire Line
|
||||
7400 3200 7400 5000
|
||||
Wire Wire Line
|
||||
7400 5000 8900 5000
|
||||
Wire Wire Line
|
||||
2500 2500 1600 2500
|
||||
Wire Wire Line
|
||||
8300 1050 8900 1050
|
||||
Wire Wire Line
|
||||
1800 2600 1800 3200
|
||||
Wire Wire Line
|
||||
1600 2700 2500 2700
|
||||
Wire Wire Line
|
||||
2900 6100 2900 6300
|
||||
Wire Wire Line
|
||||
3400 6100 3400 6300
|
||||
Wire Wire Line
|
||||
1000 4900 1000 5700
|
||||
Wire Wire Line
|
||||
1200 5400 1000 5400
|
||||
Connection ~ 1000 5400
|
||||
Wire Wire Line
|
||||
1800 6100 1800 6500
|
||||
Wire Wire Line
|
||||
2000 6300 2000 6100
|
||||
Wire Wire Line
|
||||
1800 6300 2300 6300
|
||||
Connection ~ 1800 6300
|
||||
Wire Wire Line
|
||||
1900 6100 1900 6300
|
||||
Connection ~ 1900 6300
|
||||
Wire Wire Line
|
||||
2300 6300 2300 6100
|
||||
Connection ~ 2000 6300
|
||||
Wire Wire Line
|
||||
3800 3800 2900 3800
|
||||
Wire Wire Line
|
||||
2900 3800 2900 5700
|
||||
Wire Wire Line
|
||||
3800 3900 3400 3900
|
||||
Wire Wire Line
|
||||
3400 3900 3400 5700
|
||||
Wire Wire Line
|
||||
2700 5200 2900 5200
|
||||
Connection ~ 2900 5200
|
||||
Wire Wire Line
|
||||
2700 5400 3400 5400
|
||||
Connection ~ 3400 5400
|
||||
Wire Wire Line
|
||||
1000 4500 1000 4400
|
||||
Wire Wire Line
|
||||
1000 4400 2700 4400
|
||||
Wire Wire Line
|
||||
2000 4600 2000 4400
|
||||
Connection ~ 2000 4400
|
||||
Wire Wire Line
|
||||
1900 4600 1900 4400
|
||||
Connection ~ 1900 4400
|
||||
Wire Wire Line
|
||||
10400 1500 10400 1700
|
||||
Wire Wire Line
|
||||
5900 1200 5900 1350
|
||||
Connection ~ 5900 1350
|
||||
Wire Wire Line
|
||||
6200 3600 7000 3600
|
||||
Wire Wire Line
|
||||
7000 3700 6200 3700
|
||||
Wire Wire Line
|
||||
7000 3800 6200 3800
|
||||
Wire Wire Line
|
||||
7000 3900 6200 3900
|
||||
Wire Wire Line
|
||||
7000 4000 6200 4000
|
||||
Wire Wire Line
|
||||
4400 6300 5000 6300
|
||||
Wire Wire Line
|
||||
4400 6400 5000 6400
|
||||
Wire Wire Line
|
||||
4400 6500 5000 6500
|
||||
Wire Wire Line
|
||||
6400 6300 5800 6300
|
||||
Wire Wire Line
|
||||
6400 6500 5800 6500
|
||||
Wire Wire Line
|
||||
5400 6800 5400 7100
|
||||
Wire Wire Line
|
||||
5500 6800 5500 6950
|
||||
Wire Wire Line
|
||||
5500 6950 5400 6950
|
||||
Connection ~ 5400 6950
|
||||
Wire Wire Line
|
||||
8000 5700 8000 2800
|
||||
Wire Wire Line
|
||||
8000 2800 6200 2800
|
||||
Wire Wire Line
|
||||
10100 5800 7900 5800
|
||||
Wire Wire Line
|
||||
7900 5800 7900 2700
|
||||
Wire Wire Line
|
||||
7900 2700 6200 2700
|
||||
Wire Wire Line
|
||||
7800 6100 7800 2600
|
||||
Wire Wire Line
|
||||
7800 2600 6200 2600
|
||||
Wire Wire Line
|
||||
1600 2600 1800 2600
|
||||
Wire Wire Line
|
||||
3800 2700 2900 2700
|
||||
Wire Wire Line
|
||||
2900 2700 2900 2800
|
||||
Wire Wire Line
|
||||
2900 2800 1600 2800
|
||||
Wire Wire Line
|
||||
3800 2800 3000 2800
|
||||
Wire Wire Line
|
||||
3000 2800 3000 2900
|
||||
Wire Wire Line
|
||||
3000 2900 1600 2900
|
||||
Wire Wire Line
|
||||
3800 3000 1600 3000
|
||||
$EndSCHEMATC
|
||||
34
tornado/cpu/pcb/Makefile
Normal file
34
tornado/cpu/pcb/Makefile
Normal file
@@ -0,0 +1,34 @@
|
||||
MKMK=../../../../cae-tools/cameo/templates/mkmk-simple
|
||||
|
||||
NAME=cpu
|
||||
|
||||
# 11.5, 0
|
||||
|
||||
BOARD = X0=70.0mm Y0=3.0mm BOARD_Z=1.6mm CLEARANCE=3mm
|
||||
|
||||
# drill: 12.5-13.5 mil
|
||||
# mill: 35 mil (889 um) endmill, 3 mil (76 um) deflection
|
||||
#
|
||||
TOOLS = DRILL=7mil,15mil MILL_IN=32mil MILL_OUT=32mil ANY=any
|
||||
|
||||
#FAB = ROT=90 X=0 Y=1 XN=1 YN=2
|
||||
FAB = ROT=90 X=0 Y=0 XN=1 YN=2
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
all: Makefile.mkmk
|
||||
|
||||
Makefile.mkmk: $(MKMK) ../$(NAME).drl ../$(NAME)-PCB_Edges.gbr Makefile
|
||||
$(MKMK) NAME=$(NAME) $(BOARD) $(TOOLS) $(FAB)
|
||||
|
||||
../$(NAME).drl: ../$(NAME).brd
|
||||
pcbnew --drill `pwd`/../$(NAME).brd
|
||||
touch $@
|
||||
|
||||
../$(NAME)-PCB_Edges.gbr: ../$(NAME).brd
|
||||
pcbnew --plot=gerber --layers=PCB_Edges `pwd`/../$(NAME).brd
|
||||
|
||||
-include Makefile.mkmk
|
||||
|
||||
clean::
|
||||
rm -f Makefile.mkmk
|
||||
79
tornado/doc/mech.fpd
Normal file
79
tornado/doc/mech.fpd
Normal file
@@ -0,0 +1,79 @@
|
||||
/* MACHINE-GENERATED ! */
|
||||
|
||||
frame bar {
|
||||
__0: vec @(bar_w/2, top)
|
||||
__1: vec @(-bar_w/2, -bot)
|
||||
rect . __0 w
|
||||
}
|
||||
|
||||
frame led {
|
||||
__0: vec @(led_w, led_h)
|
||||
rect @ . w
|
||||
}
|
||||
|
||||
frame leds {
|
||||
loop i = 0, 3
|
||||
|
||||
__0: vec @(-led_con, 0mm)
|
||||
__1: vec .(0mm, i*led_p*n_leds)
|
||||
frame led .
|
||||
__2: vec @(0mm, n_leds*led_p)
|
||||
__3: vec @(0mm, 2*n_leds*led_p)
|
||||
__4: vec @(0mm, 3*n_leds*led_p)
|
||||
__5: vec @(led_w/2-led_con, 0mm)
|
||||
frame bar .
|
||||
__6: vec @(0mm, top)
|
||||
}
|
||||
|
||||
frame cpu {
|
||||
__0: vec @(-cpu_con, 0mm)
|
||||
__1: vec .(cpu_w, -cpu_h)
|
||||
rect __0 . w
|
||||
}
|
||||
|
||||
package "tornado"
|
||||
unit mm
|
||||
|
||||
table
|
||||
{ led_h, led_w, led_0, led_con, led_p, n_leds }
|
||||
{ 79.2mm, 15.6mm, 2.2mm, 2.8mm, 5mm, 16 }
|
||||
|
||||
table
|
||||
{ cpu_h, cpu_w, cpu_con, cpu_gap }
|
||||
{ 43.75mm, 25.25mm, 7.25mm, 20mm }
|
||||
|
||||
table
|
||||
{ bar_w, bar_bot, bar_top }
|
||||
{ 10mm, 50mm, 15mm }
|
||||
|
||||
set top = 3*n_leds*led_p+led_h+bar_top
|
||||
|
||||
set bot = cpu_gap+cpu_h+bar_bot
|
||||
|
||||
set w = 1mm
|
||||
|
||||
set s = 20mm
|
||||
|
||||
set z = led_con-cpu_con+cpu_w
|
||||
|
||||
__0: vec @(0mm, -cpu_gap/2)
|
||||
frame cpu .
|
||||
__1: vec @(0mm, cpu_gap/2)
|
||||
frame leds .
|
||||
measy cpu.__0 >> leds.__0 s
|
||||
measy cpu.__1 >> cpu.__0 cpu_w+s
|
||||
measx cpu.__0 >> cpu.__1 -cpu_h+s
|
||||
measy led.__0 -> leds.__1 led_w+s
|
||||
measy leds.__0 -> led.__0 s
|
||||
measy cpu.__1 >> led.__0 cpu_w+3*s
|
||||
measy leds.__0 >> led.__0 2*s
|
||||
measx leds.__0 -> led.__0 s
|
||||
measy cpu.__1 >> __1 -3*s
|
||||
measy leds.__0 >> leds.__2 -z-s
|
||||
measy leds.__0 >> leds.__3 -z-2*s
|
||||
measy leds.__0 >> leds.__4 -z-3*s
|
||||
measx bar.__1 >> bar.__0 s
|
||||
measy bar.__1 >> bar.__0 5*s
|
||||
measy bar.__1 >> cpu.__1 -4*s+2mm
|
||||
measy bar.__0 << led.__0 led_w+s
|
||||
measy leds.__4 >> leds.__6 -z-3*s+led_con
|
||||
155
tornado/fw/Makefile
Normal file
155
tornado/fw/Makefile
Normal file
@@ -0,0 +1,155 @@
|
||||
#
|
||||
# Makefile - Makefile of the Tornado firmware
|
||||
#
|
||||
# Written 2012 by Werner Almesberger
|
||||
# Copyright 2012 by Werner Almesberger
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
|
||||
SHELL = /bin/bash
|
||||
|
||||
NAME = tornado
|
||||
|
||||
CFLAGS = -g -mmcu=$(CHIP) \
|
||||
-DBOOT_ADDR=$(BOOT_ADDR) \
|
||||
-Wall -Wextra -Wshadow -Wno-unused-parameter \
|
||||
-Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes \
|
||||
-I../../ben-wpan/atusb/fw/include/
|
||||
# -Wall -Wextra -Wshadow -Werror -Wno-unused-parameter \
|
||||
|
||||
CHIP = atmega168
|
||||
HOST = jlime
|
||||
BOOT_ADDR = 0x3800
|
||||
|
||||
AVR_PREFIX = $(BIN_PATH) avr-
|
||||
CC = $(AVR_PREFIX)gcc
|
||||
OBJCOPY = $(AVR_PREFIX)objcopy
|
||||
#OBJDUMP = $(AVR_PREFIX)objdump
|
||||
SIZE = $(AVR_PREFIX)size
|
||||
|
||||
OBJS = $(NAME).o $(COMMON_OBJS)
|
||||
BOOT_OBJS = boot.o $(COMMON_OBJS)
|
||||
COMMON_OBJS =
|
||||
|
||||
# ----- Verbosity control -----------------------------------------------------
|
||||
|
||||
CC_normal := $(CC)
|
||||
BUILD_normal :=
|
||||
DEPEND_normal := $(CPP) $(CFLAGS) -MM -MG
|
||||
|
||||
CC_quiet = @echo " CC " $@ && $(CC_normal)
|
||||
BUILD_quiet = @echo " BUILD " $@ && $(BUILD_normal)
|
||||
DEPEND_quiet = @$(DEPEND_normal)
|
||||
|
||||
ifeq ($(V),1)
|
||||
CC = $(CC_normal)
|
||||
BUILD = $(BUILD_normal)
|
||||
DEPEND = $(DEPEND_normal)
|
||||
else
|
||||
CC = $(CC_quiet)
|
||||
BUILD = $(BUILD_quiet)
|
||||
DEPEND = $(DEPEND_quiet)
|
||||
endif
|
||||
|
||||
# ----- Rules -----------------------------------------------------------------
|
||||
|
||||
.PHONY: all clean nosecrets upload prog version.c
|
||||
.PHONY: prog-app prog-read
|
||||
|
||||
all: $(NAME).bin boot.bin
|
||||
|
||||
$(NAME).elf: $(OBJS)
|
||||
$(MAKE) version.o
|
||||
$(CC) $(CFLAGS) -o $@ $(OBJS) version.o
|
||||
|
||||
boot.elf: $(BOOT_OBJS)
|
||||
$(CC) $(CFLAGS) -o $@ $(BOOT_OBJS) \
|
||||
-Wl,--section-start=.text=$(BOOT_ADDR)
|
||||
|
||||
%.bin: %.elf
|
||||
$(BUILD) $(OBJCOPY) -j .text -j .data -O binary $< $@
|
||||
@echo "build #`cat .version`, `ls -l $@`"
|
||||
|
||||
%.hex: %.elf
|
||||
$(BUILD) $(OBJCOPY) -j .text -j .data -O ihex $< $@
|
||||
$(SIZE) $@
|
||||
|
||||
# ----- Cleanup ---------------------------------------------------------------
|
||||
|
||||
clean:
|
||||
rm -f $(NAME).bin $(NAME).elf
|
||||
rm -f $(OBJS) $(OBJS:.o=.d)
|
||||
rm -f boot.hex boot.elf
|
||||
rm -f $(BOOT_OBJS) $(BOOT_OBJS:.o=.d)
|
||||
rm -f version.c version.d version.o
|
||||
|
||||
# ----- Build version ---------------------------------------------------------
|
||||
|
||||
version.c:
|
||||
@if [ -f .version ]; then \
|
||||
v=`cat .version`; \
|
||||
expr $$v + 1 >.version; \
|
||||
else \
|
||||
echo 0 >.version; \
|
||||
fi
|
||||
@[ -s .version ] || echo 0 >.version
|
||||
@echo '/* MACHINE-GENERATED. DO NOT EDIT ! */' >version.c
|
||||
@echo '#include "version.h"' >>version.c
|
||||
@echo "const char *build_date = \"`date`\";" >>version.c
|
||||
@echo "const uint16_t build_number = `cat .version`;" \
|
||||
>>version.c
|
||||
|
||||
# ----- Dependencies ----------------------------------------------------------
|
||||
|
||||
MKDEP = \
|
||||
$(DEPEND) $< | \
|
||||
sed \
|
||||
-e 's|^$(basename $(notdir $<)).o:|$@:|' \
|
||||
-e '/^\(.*:\)\? */{p;s///;s/ *\\\?$$/ /;s/ */:\n/g;H;}' \
|
||||
-e '$${g;p;}' \
|
||||
-e d >$(basename $@).d; \
|
||||
[ "$${PIPESTATUS[*]}" = "0 0" ] || \
|
||||
{ rm -f $(basename $@).d; exit 1; }
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(CFLAGS) -Os -c $<
|
||||
$(MKDEP)
|
||||
|
||||
-include $(OBJS:.o=.d)
|
||||
|
||||
# ----- Programming and device control ----------------------------------------
|
||||
|
||||
upload: $(NAME).bin boot.hex
|
||||
scp $(NAME).bin boot.hex ../../common/avrdude-antorcha.conf \
|
||||
$(HOST):
|
||||
|
||||
# lfuse: external clock, slow start-up
|
||||
# hfuse: 4 kB boot loader, reset into boot loader
|
||||
# lock: allow everything but SPM to the boot loader
|
||||
# Note: when trying to program 0xef, we get back 0x2f, failing
|
||||
# verification. So we just program 0x2f.
|
||||
|
||||
prog-app:
|
||||
ssh $(HOST) avrdude -F -p $(CHIP) \
|
||||
-L avrdude-antorcha.conf -c nanonote_antorcha -e \
|
||||
-U flash:w:$(NAME).bin:r \
|
||||
-U efuse:w:0x01:m \
|
||||
-U lfuse:w:0xe2:m
|
||||
|
||||
prog:
|
||||
ssh $(HOST) avrdude -F -p $(CHIP) \
|
||||
-L avrdude-antorcha.conf -c nanonote_antorcha -e \
|
||||
-U flash:w:boot.hex:i \
|
||||
-U efuse:w:0x00:m \
|
||||
-U lfuse:w:0xe2:m
|
||||
# -U lfuse:w:0x60:m \
|
||||
# -U hfuse:w:0xd8:m \
|
||||
# -U lock:w:0x2f:m
|
||||
|
||||
prog-read:
|
||||
ssh $(HOST) avrdude -F -p $(CHIP) -c nanonote_antorcha \
|
||||
-U flash:r:mcu.bin:r
|
||||
29
tornado/fw/boot.c
Normal file
29
tornado/fw/boot.c
Normal file
@@ -0,0 +1,29 @@
|
||||
#include <stdint.h>
|
||||
|
||||
#define F_CPU 8000000UL
|
||||
#include <util/delay.h>
|
||||
|
||||
#include "io.h"
|
||||
|
||||
|
||||
#define HIGH(port) \
|
||||
(MASK(port, CARD_nPWR) | \
|
||||
MASK(port, SW_N) | MASK(port, SW_E) | MASK(port, SW_S) | \
|
||||
MASK(port, SW_W) | MASK(port, SW_SW))
|
||||
|
||||
#define OUTPUTS(port) \
|
||||
(MASK(port, CARD_nPWR) | MASK(port, CARD_CLK) | \
|
||||
MASK(port, LED_DS) | MASK(port, LED_LCLK) | MASK(port, LED_SCLK))
|
||||
|
||||
|
||||
int main(void)
|
||||
{
|
||||
PORTB = HIGH(B);
|
||||
PORTC = HIGH(C);
|
||||
PORTD = HIGH(D);
|
||||
DDRB = OUTPUTS(B);
|
||||
DDRC = OUTPUTS(C);
|
||||
DDRD = OUTPUTS(D);
|
||||
|
||||
while (1);
|
||||
}
|
||||
66
tornado/fw/io.h
Normal file
66
tornado/fw/io.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* fw/io.h - I/O helper macros
|
||||
*
|
||||
* Written 2012 by Werner Almesberger
|
||||
* Copyright 2012 Werner Almesberger
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef IO_H
|
||||
#define IO_H
|
||||
|
||||
#include <avr/io.h>
|
||||
|
||||
|
||||
#define LED_DS D, 1
|
||||
#define LED_LCLK D, 2
|
||||
#define LED_SCLK D, 4
|
||||
|
||||
#define CARD_nPWR B, 6
|
||||
#define CARD_DAT2 B, 2
|
||||
#define CARD_DAT3 B, 1
|
||||
#define CARD_CMD B, 3
|
||||
#define CARD_CLK B, 0
|
||||
#define CARD_DAT0 B, 4
|
||||
#define CARD_DAT1 B, 5
|
||||
|
||||
#define SW_N C, 3
|
||||
#define SW_E C, 4
|
||||
#define SW_S C, 0
|
||||
#define SW_W C, 2
|
||||
#define SW_SW C, 1
|
||||
|
||||
#define ADC_X 6
|
||||
#define ADC_Y 7
|
||||
|
||||
#define __SET(port, bit) PORT##port |= 1 << (bit)
|
||||
#define __CLR(port, bit) PORT##port &= ~(1 << (bit))
|
||||
#define __OUT(port, bit) DDR##port |= 1 << (bit)
|
||||
#define __IN(port, bit) DDR##port &= ~(1 << (bit))
|
||||
#define __PIN(port, bit) ((PIN##port >> (bit)) & 1)
|
||||
|
||||
#define SET(...) __SET(__VA_ARGS__)
|
||||
#define CLR(...) __CLR(__VA_ARGS__)
|
||||
#define OUT(...) __OUT(__VA_ARGS__)
|
||||
#define IN(...) __IN(__VA_ARGS__)
|
||||
#define PIN(...) __PIN(__VA_ARGS__)
|
||||
|
||||
#define __SEL_BB(v) (v)
|
||||
#define __SEL_CC(v) (v)
|
||||
#define __SEL_DD(v) (v)
|
||||
|
||||
#define __SEL_BC(v) (0)
|
||||
#define __SEL_BD(v) (0)
|
||||
#define __SEL_CB(v) (0)
|
||||
#define __SEL_CD(v) (0)
|
||||
#define __SEL_DB(v) (0)
|
||||
#define __SEL_DC(v) (0)
|
||||
|
||||
#define __MASK(sel, port, bit) __SEL_##sel##port(1 << (bit))
|
||||
#define MASK(...) __MASK(__VA_ARGS__)
|
||||
|
||||
#endif /* IO_H */
|
||||
124
tornado/fw/tornado.c
Normal file
124
tornado/fw/tornado.c
Normal file
@@ -0,0 +1,124 @@
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#define F_CPU 8000000UL
|
||||
#include <util/delay.h>
|
||||
|
||||
#include "io.h"
|
||||
|
||||
|
||||
#define HIGH(port) \
|
||||
(MASK(port, CARD_nPWR) | \
|
||||
MASK(port, SW_N) | MASK(port, SW_E) | MASK(port, SW_S) | \
|
||||
MASK(port, SW_W) | MASK(port, SW_SW))
|
||||
|
||||
#define OUTPUTS(port) \
|
||||
(MASK(port, CARD_nPWR) | MASK(port, CARD_CLK) | \
|
||||
MASK(port, LED_DS) | MASK(port, LED_LCLK) | MASK(port, LED_SCLK))
|
||||
|
||||
|
||||
/*
|
||||
* @@@ For testing, connect the LED bar via the 8:10 card slot, so that it
|
||||
* can be disconnected without soldering.
|
||||
*/
|
||||
|
||||
#define SCLK CARD_DAT1
|
||||
#define LCLK CARD_DAT0
|
||||
#define DS CARD_CLK
|
||||
#define VDD CARD_CMD
|
||||
|
||||
|
||||
static void send(uint16_t pattern)
|
||||
{
|
||||
uint8_t i;
|
||||
|
||||
for (i = 0; i != 16; i++) {
|
||||
if (pattern & 0x8000)
|
||||
SET(DS);
|
||||
else
|
||||
CLR(DS);
|
||||
SET(SCLK);
|
||||
CLR(SCLK);
|
||||
pattern <<= 1;
|
||||
}
|
||||
SET(LCLK);
|
||||
CLR(LCLK);
|
||||
}
|
||||
|
||||
|
||||
static inline void admux(bool x)
|
||||
{
|
||||
ADMUX =
|
||||
1 << REFS0 | /* Vref is AVcc */
|
||||
(x ? ADC_X : ADC_Y);
|
||||
}
|
||||
|
||||
|
||||
static inline void adcsra(bool start)
|
||||
{
|
||||
/*
|
||||
* The ADC needs to run at clkADC <= 200 kHz for full resolution.
|
||||
* At clkADC = 125 kHz, a conversion takes about 110 us.
|
||||
*/
|
||||
ADCSRA =
|
||||
1 << ADEN | /* enable ADC */
|
||||
(start ? 1 << ADSC : 0) |
|
||||
1 << ADIE | /* enable ADC interrupts */
|
||||
6; /* clkADC = clk/64 -> 125 kHz */
|
||||
}
|
||||
|
||||
|
||||
static uint16_t adc(bool x)
|
||||
{
|
||||
adcsra(0);
|
||||
admux(x);
|
||||
adcsra(1);
|
||||
while (ADCSRA & (1 << ADSC));
|
||||
return ADC;
|
||||
}
|
||||
|
||||
|
||||
int main(void)
|
||||
{
|
||||
uint8_t mode = 0;
|
||||
uint16_t n = 0;
|
||||
|
||||
PORTB = HIGH(B);
|
||||
PORTC = HIGH(C);
|
||||
PORTD = HIGH(D);
|
||||
DDRB = OUTPUTS(B);
|
||||
DDRC = OUTPUTS(C);
|
||||
DDRD = OUTPUTS(D);
|
||||
|
||||
CLR(CARD_nPWR);
|
||||
CLR(SCLK);
|
||||
CLR(LCLK);
|
||||
OUT(SCLK);
|
||||
OUT(LCLK);
|
||||
OUT(DS);
|
||||
|
||||
SET(VDD);
|
||||
OUT(VDD);
|
||||
|
||||
while (1) {
|
||||
while (!PIN(SW_SW));
|
||||
if (!PIN(SW_N))
|
||||
mode = 0;
|
||||
if (!PIN(SW_E))
|
||||
mode = 1;
|
||||
if (!PIN(SW_S))
|
||||
mode = 2;
|
||||
switch (mode) {
|
||||
case 1:
|
||||
send(adc(0));
|
||||
break;
|
||||
case 2:
|
||||
send(adc(1));
|
||||
break;
|
||||
default:
|
||||
send(n);
|
||||
n++;
|
||||
}
|
||||
// _delay_ms(100);
|
||||
}
|
||||
}
|
||||
23
tornado/fw/version.h
Normal file
23
tornado/fw/version.h
Normal file
@@ -0,0 +1,23 @@
|
||||
/*
|
||||
* fw/version.h - Automatically generated version string
|
||||
*
|
||||
* Written 2008, 2011 by Werner Almesberger
|
||||
* Copyright 2008, 2011 Werner Almesberger
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef VERSION_H
|
||||
#define VERSION_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
|
||||
extern const char *build_date;
|
||||
extern const uint16_t build_number;
|
||||
|
||||
#endif /* !VERSION_H */
|
||||
4
tornado/led/Makefile
Normal file
4
tornado/led/Makefile
Normal file
@@ -0,0 +1,4 @@
|
||||
NAME = led
|
||||
VERSION = yymmdd
|
||||
|
||||
include ../../../ben-wpan/makefiles/Makefile.kicad
|
||||
3223
tornado/led/led.brd
Normal file
3223
tornado/led/led.brd
Normal file
File diff suppressed because it is too large
Load Diff
381
tornado/led/led.cmp
Normal file
381
tornado/led/led.cmp
Normal file
@@ -0,0 +1,381 @@
|
||||
Cmp-Mod V01 Created by CvPcb (2012-04-11 BZR 3505)-testing date = Sun Nov 4 17:22:03 2012
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094939E;
|
||||
Reference = C1;
|
||||
ValeurCmp = 100n;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /509499C6;
|
||||
Reference = C2;
|
||||
ValeurCmp = 100n;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /50949AF1;
|
||||
Reference = CON1;
|
||||
ValeurCmp = CONN_6;
|
||||
IdModule = PAD_2mm_6x50mil;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /50949AFE;
|
||||
Reference = CON2;
|
||||
ValeurCmp = CONN_6;
|
||||
IdModule = PAD_2mm_6x50mil;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A927;
|
||||
Reference = D1;
|
||||
ValeurCmp = LED;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A95F;
|
||||
Reference = D2;
|
||||
ValeurCmp = LED;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A997;
|
||||
Reference = D3;
|
||||
ValeurCmp = LED;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A9CF;
|
||||
Reference = D4;
|
||||
ValeurCmp = LED;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA07;
|
||||
Reference = D5;
|
||||
ValeurCmp = LED;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA3F;
|
||||
Reference = D6;
|
||||
ValeurCmp = LED;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA77;
|
||||
Reference = D7;
|
||||
ValeurCmp = LED;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AAAF;
|
||||
Reference = D8;
|
||||
ValeurCmp = LED;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A85B;
|
||||
Reference = D9;
|
||||
ValeurCmp = LED;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A943;
|
||||
Reference = D10;
|
||||
ValeurCmp = LED;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A97B;
|
||||
Reference = D11;
|
||||
ValeurCmp = LED;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A9B3;
|
||||
Reference = D12;
|
||||
ValeurCmp = LED;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A9EB;
|
||||
Reference = D13;
|
||||
ValeurCmp = LED;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA23;
|
||||
Reference = D14;
|
||||
ValeurCmp = LED;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA5B;
|
||||
Reference = D15;
|
||||
ValeurCmp = LED;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA93;
|
||||
Reference = D16;
|
||||
ValeurCmp = LED;
|
||||
IdModule = 0603;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A92D;
|
||||
Reference = Q1;
|
||||
ValeurCmp = NMOSFET-GSD;
|
||||
IdModule = SOT-523;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A965;
|
||||
Reference = Q2;
|
||||
ValeurCmp = NMOSFET-GSD;
|
||||
IdModule = SOT-523;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A99D;
|
||||
Reference = Q3;
|
||||
ValeurCmp = NMOSFET-GSD;
|
||||
IdModule = SOT-523;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A9D5;
|
||||
Reference = Q4;
|
||||
ValeurCmp = NMOSFET-GSD;
|
||||
IdModule = SOT-523;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA0D;
|
||||
Reference = Q5;
|
||||
ValeurCmp = NMOSFET-GSD;
|
||||
IdModule = SOT-523;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA45;
|
||||
Reference = Q6;
|
||||
ValeurCmp = NMOSFET-GSD;
|
||||
IdModule = SOT-523;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA7D;
|
||||
Reference = Q7;
|
||||
ValeurCmp = NMOSFET-GSD;
|
||||
IdModule = SOT-523;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AAB5;
|
||||
Reference = Q8;
|
||||
ValeurCmp = NMOSFET-GSD;
|
||||
IdModule = SOT-523;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A861;
|
||||
Reference = Q9;
|
||||
ValeurCmp = NMOSFET-GSD;
|
||||
IdModule = SOT-523;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A949;
|
||||
Reference = Q10;
|
||||
ValeurCmp = NMOSFET-GSD;
|
||||
IdModule = SOT-523;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A981;
|
||||
Reference = Q11;
|
||||
ValeurCmp = NMOSFET-GSD;
|
||||
IdModule = SOT-523;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A9B9;
|
||||
Reference = Q12;
|
||||
ValeurCmp = NMOSFET-GSD;
|
||||
IdModule = SOT-523;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A9F1;
|
||||
Reference = Q13;
|
||||
ValeurCmp = NMOSFET-GSD;
|
||||
IdModule = SOT-523;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA29;
|
||||
Reference = Q14;
|
||||
ValeurCmp = NMOSFET-GSD;
|
||||
IdModule = SOT-523;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA61;
|
||||
Reference = Q15;
|
||||
ValeurCmp = NMOSFET-GSD;
|
||||
IdModule = SOT-523;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA99;
|
||||
Reference = Q16;
|
||||
ValeurCmp = NMOSFET-GSD;
|
||||
IdModule = SOT-523;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A933;
|
||||
Reference = R1;
|
||||
ValeurCmp = 120;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A96B;
|
||||
Reference = R2;
|
||||
ValeurCmp = 120;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A9A3;
|
||||
Reference = R3;
|
||||
ValeurCmp = 120;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A9DB;
|
||||
Reference = R4;
|
||||
ValeurCmp = 120;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA13;
|
||||
Reference = R5;
|
||||
ValeurCmp = 120;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA4B;
|
||||
Reference = R6;
|
||||
ValeurCmp = 120;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA83;
|
||||
Reference = R7;
|
||||
ValeurCmp = 120;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AABB;
|
||||
Reference = R8;
|
||||
ValeurCmp = 120;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A867;
|
||||
Reference = R9;
|
||||
ValeurCmp = 120;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A94F;
|
||||
Reference = R10;
|
||||
ValeurCmp = 120;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A987;
|
||||
Reference = R11;
|
||||
ValeurCmp = 120;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A9BF;
|
||||
Reference = R12;
|
||||
ValeurCmp = 120;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094A9F7;
|
||||
Reference = R13;
|
||||
ValeurCmp = 120;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA2F;
|
||||
Reference = R14;
|
||||
ValeurCmp = 120;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA67;
|
||||
Reference = R15;
|
||||
ValeurCmp = 120;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094AA9F;
|
||||
Reference = R16;
|
||||
ValeurCmp = 120;
|
||||
IdModule = 0402;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094934C;
|
||||
Reference = U1;
|
||||
ValeurCmp = 74HC595;
|
||||
IdModule = TSSOP-16;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /5094999C;
|
||||
Reference = U2;
|
||||
ValeurCmp = 74HC595;
|
||||
IdModule = TSSOP-16;
|
||||
EndCmp
|
||||
|
||||
EndListe
|
||||
50
tornado/led/led.pro
Normal file
50
tornado/led/led.pro
Normal file
@@ -0,0 +1,50 @@
|
||||
update=Sat Nov 3 01:38:12 2012
|
||||
last_client=pcbnew
|
||||
[eeschema]
|
||||
version=1
|
||||
LibDir=../../../kicad-libs/components;../../components
|
||||
NetFmtName=
|
||||
HPGLSpd=20
|
||||
HPGLDm=15
|
||||
HPGLNum=1
|
||||
RptD_X=0
|
||||
RptD_Y=100
|
||||
RptLab=1
|
||||
LabSize=60
|
||||
[eeschema/libraries]
|
||||
LibName1=c
|
||||
LibName2=r
|
||||
LibName3=led
|
||||
LibName4=nmosfet-gsd
|
||||
LibName5=pwr
|
||||
LibName6=74x595
|
||||
LibName7=gencon
|
||||
LibName8=powered
|
||||
[cvpcb]
|
||||
version=1
|
||||
NetIExt=net
|
||||
[cvpcb/libraries]
|
||||
EquName1=devcms
|
||||
[pcbnew]
|
||||
version=1
|
||||
LastNetListRead=led.net
|
||||
PadDrlX=320
|
||||
PadDimH=600
|
||||
PadDimV=600
|
||||
BoardThickness=630
|
||||
TxtPcbV=800
|
||||
TxtPcbH=600
|
||||
TxtModV=600
|
||||
TxtModH=600
|
||||
TxtModW=120
|
||||
VEgarde=100
|
||||
DrawLar=150
|
||||
EdgeLar=150
|
||||
TxtLar=120
|
||||
MSegLar=150
|
||||
[pcbnew/libraries]
|
||||
LibDir=../../../kicad-libs/modules;../../../ben-wpan/modules
|
||||
LibName1=stdpass
|
||||
LibName2=pads-array
|
||||
LibName3=sot
|
||||
LibName4=ssop
|
||||
1117
tornado/led/led.sch
Normal file
1117
tornado/led/led.sch
Normal file
File diff suppressed because it is too large
Load Diff
34
tornado/led/pcb/Makefile
Normal file
34
tornado/led/pcb/Makefile
Normal file
@@ -0,0 +1,34 @@
|
||||
MKMK=../../../../cae-tools/cameo/templates/mkmk-simple
|
||||
|
||||
NAME=led
|
||||
|
||||
# 11.5, 0
|
||||
|
||||
BOARD = X0=15.0mm Y0=3.0mm BOARD_Z=1.6mm CLEARANCE=3mm
|
||||
|
||||
# drill: 12.5-13.5 mil
|
||||
# mill: 35 mil (889 um) endmill, 3 mil (76 um) deflection
|
||||
#
|
||||
TOOLS = DRILL=7mil,15mil MILL_IN=32mil MILL_OUT=32mil ANY=any
|
||||
|
||||
#FAB = ROT=90 X=0 Y=1 XN=1 YN=2
|
||||
FAB = ROT=90 X=0 Y=0 XN=2 YN=1
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
all: Makefile.mkmk
|
||||
|
||||
Makefile.mkmk: $(MKMK) ../$(NAME).drl ../$(NAME)-PCB_Edges.gbr Makefile
|
||||
$(MKMK) NAME=$(NAME) $(BOARD) $(TOOLS) $(FAB)
|
||||
|
||||
../$(NAME).drl: ../$(NAME).brd
|
||||
pcbnew --drill `pwd`/../$(NAME).brd
|
||||
touch $@
|
||||
|
||||
../$(NAME)-PCB_Edges.gbr: ../$(NAME).brd
|
||||
pcbnew --plot=gerber --layers=PCB_Edges `pwd`/../$(NAME).brd
|
||||
|
||||
-include Makefile.mkmk
|
||||
|
||||
clean::
|
||||
rm -f Makefile.mkmk
|
||||
Reference in New Issue
Block a user