Skip to content

Commit 0c43015

Browse files
committed
Additional docs
1 parent 9c73cde commit 0c43015

File tree

1 file changed

+55
-12
lines changed

1 file changed

+55
-12
lines changed

README.md

Lines changed: 55 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ tt.shuttle.<TAB><TAB>
8080

8181
will show you all the projects that might be enabled, etc.
8282

83+
84+
8385
Here's a sample REPL interaction with an overview of things to do
8486

8587
```
@@ -211,21 +213,53 @@ tt.shuttle.tt_um_gatecat_fpga_top.enable()
211213

212214
This does all the control signal twiddling needed to select and enable the project using the snazzy TinyTapeout MUX.
213215

216+
217+
218+
219+
If you know the specific project's official name, great, you can use that
220+
```
221+
tt.shuttle.tt_um_urish_usb_cdc.enable()
222+
```
223+
224+
If you don't, you can get a list of matching projects using `find()`, and call enable on any of the returned elements:
225+
226+
```
227+
>>> tt.shuttle.find('traffic')
228+
[<Design 71: wokwi_german_traffic_light>, <Design 180: wokwi_traffic_light>, <Design 115: wokwi_traffic_light_1>]
229+
>>>
230+
>>> tt.shuttle.find('traffic')[0].enable()
231+
ttboard.project_mux: Enable design wokwi_german_traffic_light
232+
233+
```
234+
235+
Wokwi projects have horrible names like *tt_um_wokwi_375288605206694913* by default, which makes it pretty tough to peruse. Instead, they get aliases based on their name in the shuttle, prefixed by wokwi:
236+
237+
```
238+
>>> tt.shuttle.wokwi_<TAB>
239+
wokwi_uart_character_tx
240+
wokwi_customizable_uart_string_tx
241+
wokwi_padlock
242+
wokwi_7seg_tiny_tapeout_display
243+
wokwi_test_4x4_memory
244+
wokwi_8_bit_4_data_sorting_network
245+
wokwi_multichannel_pulse_counter_with_serial_output_v01a
246+
wokwi_traffic_light
247+
# etc...
248+
```
249+
250+
251+
214252
The currently enabled project, if any, is accessible in
215253

216254
```
217-
>>> tt.shuttle.tt_um_test.enable()
255+
>>> ttt.shuttle.tt_um_factory_test.enable()
218256
219257
>>> tt.shuttle.enabled
220-
<Design 54: tt_um_test>
221-
222-
>>> tt
223-
<DemoBoard as ASIC_RP_CONTROL, auto-clocking @ 10, project 'tt_um_test' (in RESET)>
258+
<Design 1: tt_um_factory_test>
224259
225-
>>> tt.reset_project(False)
226260
227261
>>> tt
228-
<DemoBoard as ASIC_RP_CONTROL, auto-clocking @ 10, project 'tt_um_test'>
262+
<DemoBoard in ASIC_RP_CONTROL tt04 project 'tt_um_factory_test (1) @ https://github.com/TinyTapeout/tt04-factory-test'>
229263
230264
```
231265

@@ -449,11 +483,20 @@ Just note that the MUX stuff needs to be handled for those pins.
449483
### Available pins
450484
The pins available on the tt object include
451485

452-
* out0 - out7
453-
* in0 - in7
454-
* uio0 - uio7
455-
* project_clk
456-
* project_nrst
486+
* out0 - out7 # outputs, available as output_byte as well
487+
* in0 - in7 # inputs, available as input_byte
488+
* uio0 - uio7 # bidirectional pins, available as bidir_byte
489+
* project_clk # the clock for synch projects
490+
* project_nrst # the reset pin
491+
492+
493+
Though you can play with these two last to your heart's content, the easiest way to interact with these functions is through the utility methods:
494+
495+
* clock_project_PWM(FREQHz) / clock_project_stop()
496+
* clock_project_once()
497+
* tt.reset_project(BOOL) (True puts project in reset)
498+
499+
457500

458501

459502

0 commit comments

Comments
 (0)