aboutsummaryrefslogtreecommitdiff
path: root/src/tcl/chip/st/stm32/stm32_rcc.tcl
blob: 0e0969126811701a0933ca301ad736cc0eb7cd03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
set RCC_CR            [expr $RCC_BASE + 0x00]
set RCC_CFGR          [expr $RCC_BASE + 0x04]
set RCC_CIR           [expr $RCC_BASE + 0x08]
set RCC_APB2RSTR      [expr $RCC_BASE + 0x0c]
set RCC_APB1RSTR      [expr $RCC_BASE + 0x10]
set RCC_AHBENR        [expr $RCC_BASE + 0x14]
set RCC_APB2ENR       [expr $RCC_BASE + 0x18]
set RCC_APB1ENR       [expr $RCC_BASE + 0x1c]
set RCC_BDCR          [expr $RCC_BASE + 0x20]
set RCC_CSR           [expr $RCC_BASE + 0x24]


proc show_RCC_CR { } {
    if [ catch { set val [show_mmr32_reg RCC_CR] } msg ] {
	error $msg
    }

    show_mmr_bitfield  0  0 $val HSI      { OFF ON } 
    show_mmr_bitfield  1  1 $val HSIRDY   { NOTRDY RDY  }
    show_mmr_bitfield  7  3 $val HSITRIM  { _NUMBER_ }
    show_mmr_bitfield 15  8 $val HSICAL   { _NUMBER_ }
    show_mmr_bitfield 16 16 $val HSEON    { OFF ON }
    show_mmr_bitfield 17 17 $val HSERDY   { NOTRDY RDY  }
    show_mmr_bitfield 18 18 $val HSEBYP   { NOTBYPASSED BYPASSED }
    show_mmr_bitfield 19 19 $val CSSON    { OFF ON }
    show_mmr_bitfield 24 24 $val PLLON    { OFF ON }
    show_mmr_bitfield 25 25 $val PLLRDY   { NOTRDY RDY }
}    
	
proc show_RCC_CFGR { } {
    if [ catch { set val [show_mmr32_reg RCC_CFGR] } msg ] {
	error $msg
    }


    show_mmr_bitfield  1  0 $val  SW     { HSI HSE PLL ILLEGAL }
    show_mmr_bitfield  3  2 $val  SWS    { HSI HSE PLL ILLEGAL }
    show_mmr_bitfield  7  4 $val  HPRE   { sysclk_div_1 sysclk_div_1 sysclk_div_1 sysclk_div_1 sysclk_div_1 sysclk_div_1 sysclk_div_1 sysclk_div_1 sysclk_div_2 sysclk_div_4 sysclk_div_8 sysclk_div_16 sysclk_div_64 sysclk_div_128 sysclk_div_256 sysclk_div_512 }
    show_mmr_bitfield 10  8 $val  PPRE1  { hclk_div1 hclk_div1 hclk_div1 hclk_div1 hclk_div2 hclk_div4 hclk_div8 hclk_div16 }
    show_mmr_bitfield 13 11 $val  PPRE2  { hclk_div1 hclk_div1 hclk_div1 hclk_div1 hclk_div2 hclk_div4 hclk_div8 hclk_div16 }
    show_mmr_bitfield 15 14 $val  ADCPRE { pclk2_div1 pclk2_div1 pclk2_div1 pclk2_div1 pclk2_div2 pclk2_div4 pclk2_div8 pclk2_div16 }
    show_mmr_bitfield 16 16 $val  PLLSRC { HSI_div_2 HSE }
    show_mmr_bitfield 17 17 $val  PLLXTPRE { hse_div1 hse_div2 }
    show_mmr_bitfield 21 18 $val  PLLMUL { x2 x3 x4 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x16 }
    show_mmr_bitfield 22 22 $val  USBPRE { div1 div1_5 }
    show_mmr_bitfield 26 24 $val  MCO    { none none none none SysClk HSI HSE PLL_div2 }
}

    
proc show_RCC_CIR { } {
    if [ catch { set val [show_mmr32_reg RCC_CIR] } msg ] {
	error $msg
    }
 
}

proc show_RCC_APB2RSTR { } {
    if [ catch { set val [ show_mmr32_reg RCC_APB2RSTR] } msg ] {
	error $msg
    }
    for { set x 0 } { $x < 32 } { incr x } {
	set bits($x) xxx
    }
    set bits(15) adc3
    set bits(14) usart1
    set bits(13) tim8
    set bits(12) spi1
    set bits(11) tim1
    set bits(10) adc2
    set bits(9) adc1
    set bits(8) iopg
    set bits(7) iopf
    set bits(6) iope
    set bits(5) iopd
    set bits(4) iopc
    set bits(3) iopb
    set bits(2) iopa
    set bits(1) xxx
    set bits(0) afio
    show_mmr32_bits bits $val
}

proc show_RCC_APB1RSTR { } {
    if [ catch { set val [ show_mmr32_reg RCC_APB1RSTR] } msg ] {
	error $msg
    }
    set bits(31) xxx
    set bits(30) xxx
    set bits(29) dac
    set bits(28) pwr
    set bits(27) bkp
    set bits(26) xxx
    set bits(25) can
    set bits(24) xxx
    set bits(23) usb
    set bits(22) i2c2
    set bits(21) i2c1
    set bits(20) uart5
    set bits(19) uart4
    set bits(18) uart3
    set bits(17) uart2
    set bits(16) xxx
    set bits(15) spi3
    set bits(14) spi2
    set bits(13) xxx
    set bits(12) xxx
    set bits(11) wwdg
    set bits(10) xxx 
    set bits(9) xxx
    set bits(8) xxx
    set bits(7) xxx
    set bits(6) xxx
    set bits(5) tim7
    set bits(4) tim6
    set bits(3) tim5
    set bits(2) tim4
    set bits(1) tim3
    set bits(0) tim2
    show_mmr32_bits bits $val
    
}

proc show_RCC_AHBENR   { } {
    if [ catch { set val [ show_mmr32_reg RCC_AHBENR  ] } msg ] {
	error $msg
    }
    set bits(31) xxx
    set bits(30) xxx
    set bits(29) xxx
    set bits(28) xxx
    set bits(27) xxx
    set bits(26) xxx
    set bits(25) xxx
    set bits(24) xxx
    set bits(23) xxx
    set bits(22) xxx
    set bits(21) xxx
    set bits(20) xxx
    set bits(19) xxx
    set bits(18) xxx
    set bits(17) xxx
    set bits(16) xxx
    set bits(15) xxx  
    set bits(14) xxx
    set bits(13) xxx
    set bits(12) xxx
    set bits(11) xxx
    set bits(10) sdio
    set bits(9) xxx
    set bits(8) fsmc
    set bits(7) xxx
    set bits(6) crce
    set bits(5) xxx
    set bits(4) flitf
    set bits(3) xxx
    set bits(2) sram
    set bits(1) dma2
    set bits(0) dma1
    show_mmr32_bits bits $val
}

proc show_RCC_APB2ENR  { } {
    if [ catch { set val [ show_mmr32_reg RCC_APB2ENR ] } msg ] {
	error $msg
    }
    set bits(31) xxx
    set bits(30) xxx
    set bits(29) xxx
    set bits(28) xxx
    set bits(27) xxx
    set bits(26) xxx
    set bits(25) xxx
    set bits(24) xxx
    set bits(23) xxx
    set bits(22) xxx
    set bits(21) xxx
    set bits(20) xxx
    set bits(19) xxx
    set bits(18) xxx
    set bits(17) xxx
    set bits(16) xxx
    set bits(15) adc3  
    set bits(14) usart1
    set bits(13) tim8
    set bits(12) spi1
    set bits(11) tim1
    set bits(10) adc2
    set bits(9) adc1
    set bits(8) iopg
    set bits(7) iopf
    set bits(6) iope
    set bits(5) iopd
    set bits(4) iopc
    set bits(3) iopb
    set bits(2) iopa
    set bits(1) xxx
    set bits(0) afio
    show_mmr32_bits bits $val

}

proc show_RCC_APB1ENR  { } {
    if [ catch { set val [ show_mmr32_reg RCC_APB1ENR ] } msg ] {
	error $msg
    }
    set bits(31) xxx
    set bits(30) xxx
    set bits(29) dac
    set bits(28) pwr
    set bits(27) bkp
    set bits(26) xxx
    set bits(25) can
    set bits(24) xxx
    set bits(23) usb
    set bits(22) i2c2
    set bits(21) i2c1
    set bits(20) usart5
    set bits(19) usart4
    set bits(18) usart3
    set bits(17) usart2
    set bits(16) xxx
    set bits(15) spi3
    set bits(14) spi2
    set bits(13) xxx
    set bits(12) xxx
    set bits(11) wwdg
    set bits(10) xxx
    set bits(9) xxx
    set bits(8) xxx
    set bits(7) xxx
    set bits(6) xxx
    set bits(5) tim7
    set bits(4) tim6
    set bits(3) tim5
    set bits(2) tim4
    set bits(1) tim3
    set bits(0) tim2
    show_mmr32_bits bits $val
}

proc show_RCC_BDCR     { } {
    if [ catch { set val [ show_mmr32_reg RCC_BDCR    ] } msg ] {
	error $msg
    }
    for { set x 0 } { $x < 32 } { incr x } {
	set bits($x) xxx
    }
    set bits(0) lseon
    set bits(1) lserdy
    set bits(2) lsebyp
    set bits(8) rtcsel0
    set bits(9) rtcsel1
    set bits(15) rtcen
    set bits(16) bdrst
    show_mmr32_bits bits $val
}

proc show_RCC_CSR      { } {
    if [ catch { set val [ show_mmr32_reg RCC_CSR     ] } msg ] {
	error $msg
    }
    for { set x 0 } { $x < 32 } { incr x } {
	set bits($x) xxx
    }
    set bits(0) lsion
    set bits(1) lsirdy
    set bits(24) rmvf
    set bits(26) pin
    set bits(27) por
    set bits(28) sft
    set bits(29) iwdg
    set bits(30) wwdg
    set bits(31) lpwr
    show_mmr32_bits bits $val
}

proc show_RCC { } {

    show_RCC_CR
    show_RCC_CFGR
    show_RCC_CIR
    show_RCC_APB2RSTR
    show_RCC_APB1RSTR
    show_RCC_AHBENR
    show_RCC_APB2ENR
    show_RCC_APB1ENR
    show_RCC_BDCR
    show_RCC_CSR
}