GEX thesis source code, full text, references

thesis.bib 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570
  1. % USB tutorials and articles
  2. @string{USBIF = {{USB Implementers Forum, Inc.}}}
  3. @string{MSFT = {{Microsoft Corporation}}}
  4. @string{STM = {{ST Microelectronics}}}
  5. @online{usb-nutshell,
  6. title = {USB in a NutShell},
  7. author = {Craig Peacock},
  8. url = {https://www.beyondlogic.org/usbnutshell},
  9. urldate = {2018-05-12}
  10. }
  11. @online{usb-made-simple,
  12. title = {USB Made Simple},
  13. author = {{MQP Electronics Ltd.}},
  14. url = {http://www.usbmadesimple.co.uk/},
  15. year = {2008},
  16. urldate = {2018-05-12}
  17. }
  18. @online{tty-usb-acm,
  19. title = {What is the difference between /dev/ttyUSB and /dev/ttyACM?},
  20. author = {Samuel Tardieu},
  21. url = {https://rfc1149.net/blog/2013/03/05/what-is-the-difference-between-devttyusbx-and-devttyacmx/},
  22. year = {2013},
  23. urldate = {2018-05-12}
  24. }
  25. @online{usb-tscsi,
  26. title = {Mass Storage FAQ},
  27. author = {Jan Axelson},
  28. url = {http://janaxelson.com/mass_storage_faq.htm},
  29. year = {2013},
  30. urldate = {2018-05-12}
  31. }
  32. @online{usb-tscsi-wtf,
  33. title = {Discussion in a USB storage driver development mailing list (site defunct, available via Archive.org)},
  34. url = {https://lists.one-eyed-alien.net/pipermail/usb-storage/2004-September/000795.html},
  35. year = {2004},
  36. urldate = {2018-05-12}
  37. }
  38. @online{usb-function,
  39. title = {Windows 2000 Professional Resource Kit / USB Functions},
  40. author = MSFT,
  41. url = {https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc939102(v%3dtechnet.10)},
  42. year = {2008},
  43. urldate = {2018-05-12}
  44. }
  45. @techreport{usb-class-list,
  46. title = {USB Class Codes},
  47. author = USBIF,
  48. url = {http://www.usb.org/developers/defined_class},
  49. year = {2016},
  50. urldate = {2018-05-12}
  51. }
  52. % USB specification
  53. @techreport{usbif-spec,
  54. title = {Universal Serial Bus Specification},
  55. author = USBIF,
  56. url = {http://www.usb.org/developers/docs/usb20_docs/},
  57. year = {2000},
  58. urldate = {2018-05-12}
  59. }
  60. @techreport{usbif-msco,
  61. title = {USB Mass Storage Class, Specification Overview},
  62. author = USBIF,
  63. url = {http://www.usb.org/developers/docs/devclass_docs/Mass_Storage_Specification_Overview_v1.4_2-19-2010.pdf},
  64. year = {2010},
  65. urldate = {2018-05-12}
  66. }
  67. @techreport{usbif-bot,
  68. title = {USB Mass Storage Class, Bulk-Only Transport},
  69. author = USBIF,
  70. url = {http://www.usb.org/developers/docs/devclass_docs/usbmassbulk_10.pdf},
  71. year = {1999},
  72. urldate = {2018-05-12}
  73. }
  74. @techreport{usbif-dfu,
  75. title = {USB Device Class Specification for Device Firmware Upgrade},
  76. author = USBIF,
  77. url = {http://www.usb.org/developers/docs/devclass_docs/DFU_1.1.pdf},
  78. year = {2004},
  79. urldate = {2018-05-17}
  80. }
  81. @online{dfu-util,
  82. title = {dfu-util},
  83. author = {{Harald Welte and Stefan Schmidt and Tormod Volden}},
  84. url = {http://dfu-util.sourceforge.net/},
  85. year = {2016},
  86. urldate = {2018-05-17}
  87. }
  88. @techreport{usbif-cdc,
  89. title = {Class definitions for Communication Devices 1.2},
  90. author = USBIF,
  91. url = {http://www.usb.org/developers/docs/devclass_docs/CDC1.2_WMC1.1_012011.zip},
  92. year = {2010},
  93. urldate = {2018-05-12}
  94. }
  95. @techreport{usbif-iad,
  96. title = {USB Interface Association Descriptor, Device Class Code and Use Model},
  97. author = USBIF,
  98. url = {http://www.usb.org/developers/docs/whitepapers/iadclasscode_r10.pdf},
  99. year = {2003},
  100. urldate = {2018-05-12}
  101. }
  102. % Virtual FS
  103. @online{ms-fat,
  104. title = {How FAT Works},
  105. author = MSFT,
  106. url = {https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc776720(v=ws.10)},
  107. year = {2009},
  108. urldate = {2018-05-12}
  109. }
  110. @online{os-support-table,
  111. title = {Comparison of File Systems: OS Support},
  112. author = {{Wikipedia contributors}},
  113. url = {https://en.wikipedia.org/wiki/Comparison_of_file_systems#OS_support},
  114. urldate = {2018-05-12}
  115. }
  116. @online{daplink,
  117. title = {Arm Mbed DAPLink},
  118. author = {{ARM Limited}},
  119. url = {https://github.com/ARMmbed/DAPLink},
  120. year = {2018},
  121. urldate = {2018-05-12}
  122. }
  123. @online{fat16-brainy,
  124. title = {FAT16 Structure Information},
  125. author = {Jack Dobiash},
  126. url = {http://home.teleport.com/~brainy/fat16.htm},
  127. year = {1999},
  128. urldate = {2018-05-12}
  129. }
  130. @online{fat16-maverick,
  131. title = {FAT16 File System},
  132. author = {{LKT Software}},
  133. url = {http://www.maverick-os.dk/FileSystemFormats/FAT16_FileSystem.html},
  134. year = {1999},
  135. urldate = {2018-05-12}
  136. }
  137. @online{fat16-phobos,
  138. title = {A tutorial on the FAT file system},
  139. author = {Bob Eager},
  140. url = {http://www.tavi.co.uk/phobos/fat.html},
  141. year = {2017},
  142. urldate = {2018-05-12}
  143. }
  144. @online{fat-lfn,
  145. author = {vinDaci},
  146. title = {Long Filename Specification},
  147. year = {1998},
  148. url = {http://home.teleport.com/~brainy/lfn.htm},
  149. urldate = {2018-05-12}
  150. }
  151. @techreport{fat-whitepaper,
  152. author = MSFT,
  153. title = {FAT: General Overview of On-Disk Format},
  154. url = {https://staff.washington.edu/dittrich/misc/fatgen103.pdf},
  155. year = {2000},
  156. urldate = {2018-05-12}
  157. }
  158. % FreeRTOS
  159. @online{freertos-ports-list,
  160. title = {FreeRTOS Ports},
  161. author = {{Real Time Engineers Ltd.}},
  162. url = {https://www.freertos.org/a00090.html},
  163. urldate = {2018-05-12}
  164. }
  165. @online{freertos-task-switching,
  166. title = {How FreeRTOS Works: FreeRTOS Implementation},
  167. author = {{Real Time Engineers Ltd.}},
  168. url = {https://www.freertos.org/implementation/main.html},
  169. urldate = {2018-05-12}
  170. }
  171. @online{freertos-stackov,
  172. title = {FreeRTOS Stack Usage and Stack Overflow Checking},
  173. author = {{Real Time Engineers Ltd.}},
  174. url = {https://www.freertos.org/Stacks-and-stack-overflow-checking.html},
  175. urldate = {2018-05-12}
  176. }
  177. @book{freertos-book,
  178. title = {Mastering the FreeRTOS™ Real Time Kernel},
  179. subtitle = {A Hands-On Tutorial Guide},
  180. author = {Richard Barry},
  181. publisher= {Real Time Engineers Ltd.},
  182. url = {https://www.freertos.org/Documentation/161204_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf},
  183. year = {2016},
  184. urldate = {2018-05-12}
  185. }
  186. @manual{freertos-rm,
  187. title = {The FreeRTOS™ Reference Manual},
  188. publisher= {Real Time Engineers Ltd.},
  189. url = {https://www.freertos.org/Documentation/FreeRTOS_Reference_Manual_V10.0.0.pdf},
  190. year = {2018},
  191. urldate = {2018-05-12}
  192. }
  193. % STM32
  194. @online{stm-vcom,
  195. author = STM,
  196. title = {STSW-STM32102: STM32 Virtual COM Port Driver},
  197. url = {http://www.st.com/en/development-tools/stsw-stm32102.html},
  198. urldate = {2018-05-17}
  199. }
  200. @techreport{stm-timer-coockbook,
  201. author = STM,
  202. title = {AN4776: General-purpose timer cookbook},
  203. year = {2017},
  204. url = {http://www.st.com/resource/en/application_note/dm00236305.pdf},
  205. urldate = {2018-05-12}
  206. }
  207. @techreport{stm-tsc-training,
  208. author = STM,
  209. title = {STM32L4 training: Touch Sensing Controller},
  210. year = {2017},
  211. url = {http://www.st.com/resource/en/product_training/stm32l4_peripheral_touchsense.pdf},
  212. urldate = {2018-05-12}
  213. }
  214. % (couldnt find a proper link)
  215. @techreport{stm-tsc-ppt,
  216. author = STM,
  217. title = {Touch Sensing Controller (TSC) presentation},
  218. year = {2015},
  219. url = {https://wenku.baidu.com/view/8472044a6137ee06eef9180c.html?re=view},
  220. urldate = {2018-05-12}
  221. }
  222. @techreport{stm-tsc-an1,
  223. author = STM,
  224. title = {AN4299: Guidelines to improve conducted noise robustness on STM32F0 Series, STM32F3 Series, STM32L0 Series and STM32L4 Series touch sensing applications},
  225. year = {2018},
  226. url = {http://www.st.com/resource/en/application_note/dm00085385.pdf},
  227. urldate = {2018-05-12}
  228. }
  229. @techreport{stm-tsc-an2,
  230. author = STM,
  231. title = {AN4310: Sampling capacitor selection guide for MCU based touch sensing
  232. applications},
  233. year = {2015},
  234. url = {http://www.st.com/resource/en/application_note/dm00087593.pdf},
  235. urldate = {2018-05-12}
  236. }
  237. @techreport{stm-tsc-an3,
  238. author = STM,
  239. title = {AN4312: Guidelines for designing touch sensing applications
  240. with surface sensors},
  241. year = {2017},
  242. url = {http://www.st.com/resource/en/application_note/dm00087990.pdf},
  243. urldate = {2018-05-12}
  244. }
  245. @techreport{stm-tsc-an4,
  246. author = STM,
  247. title = {AN4316: Tuning a STMTouch-based application},
  248. year = {2015},
  249. url = {http://www.st.com/resource/en/application_note/dm00088471.pdf},
  250. urldate = {2018-05-12}
  251. }
  252. @techreport{sd-spec,
  253. author = {{SD Group}},
  254. title = {SD Specifications, Part 1: Physical Layer Simplified Specification},
  255. year = {2010},
  256. url = {https://www.cs.utexas.edu/~simon/395t_os/resources/Part_1_Physical_Layer_Simplified_Specification_Ver_3.01_Final_100518.pdf},
  257. urldate = {2018-05-13}
  258. }
  259. % other articles
  260. @article{all-about-dds,
  261. title={All about direct digital synthesis},
  262. author={Murphy, Eva and Slattery, Colm},
  263. series={Ask The Application Engineer},
  264. volume={33},
  265. url={http://www.analog.com/media/en/analog-dialogue/volume-38/number-3/articles/all-about-direct-digital-synthesis.pdf},
  266. year={2004}
  267. }
  268. @techreport{understanding-i2c,
  269. author = {Jonathan Valdez, Jared Becker},
  270. title = {Understanding the I2C Bus},
  271. year = {2015},
  272. url = {http://www.ti.com/lit/an/slva704/slva704.pdf},
  273. urldate = {2018-05-12},
  274. organization = {Texas Instruments}
  275. }
  276. @manual{i2c-spec,
  277. title = {I2C-bus specification and user manual},
  278. author = {{NXP Semiconductors}},
  279. url = {https://www.nxp.com/docs/en/user-guide/UM10204.pdf},
  280. year = {2014},
  281. urldate = {2018-05-12}
  282. }
  283. @manual{nrf-manual,
  284. title = {nRF24L01+ Single Chip 2.4GHz Transceiver Product Specification v1.0},
  285. author = {{Nordic Semiconductor}},
  286. url = {http://www.nordicsemi.com/eng/content/download/2726/34069/file/nRF24L01P_Product_Specification_1_0.pdf},
  287. year = {2008},
  288. urldate = {2018-05-12}
  289. }
  290. @manual{semtech-manual,
  291. title = {SX1276/77/78/79 datasheet},
  292. author = {{Semtech Corporation}},
  293. url = {https://www.semtech.com/uploads/documents/DS_SX1276-7-8-9_W_APP_V5.pdf},
  294. year = {2016},
  295. urldate = {2018-05-12}
  296. }
  297. @manual{f072-rm,
  298. title = {RM0091: STM32F0x1/STM32F0x2/STM32F0x8 reference manual},
  299. author = STM,
  300. url = {http://www.st.com/resource/en/reference_manual/dm00031936.pdf},
  301. year = {2017},
  302. urldate = {2018-05-12}
  303. }
  304. @manual{f072-ds,
  305. title = {STM32F072x8/STM32F072xB datasheet},
  306. author = STM,
  307. url = {http://www.st.com/resource/en/datasheet/stm32f072c8.pdf},
  308. year = {2017},
  309. urldate = {2018-05-12}
  310. }
  311. @manual{f103-rm,
  312. title = {RM0008: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx reference manual},
  313. author = STM,
  314. url = {http://www.st.com/resource/en/reference_manual/cd00171190.pdf},
  315. year = {2009},
  316. urldate = {2018-05-12}
  317. }
  318. @manual{f103-ds,
  319. title = {STM32F103x8/STM32F103xB datasheet},
  320. author = STM,
  321. url = {http://www.st.com/resource/en/datasheet/CD00161566.pdf},
  322. year = {2015},
  323. urldate = {2018-05-12}
  324. }
  325. @online{pidcodes,
  326. title = {pid.codes, a registry of USB PID codes for open source hardware projects},
  327. url = {http://pid.codes/},
  328. urldate = {2018-05-12}
  329. }
  330. @online{eev-gpio-pu,
  331. author = {{EEVblog Electronics Community Forum}},
  332. title = {Driving the 1K5 USB pull-up resistor on D+},
  333. url = {https://www.eevblog.com/forum/projects/driving-the-1k5-usb-pull-up-resistor-on-d/},
  334. urldate = {2018-05-12}
  335. }
  336. @online{disco-f072,
  337. author = STM,
  338. title = {Discovery kit with STM32F072RB MCU},
  339. url = {http://www.st.com/en/evaluation-tools/32f072bdiscovery.html},
  340. urldate = {2018-05-16}
  341. }
  342. @online{cubemx,
  343. author = STM,
  344. title = {STM32Cube initialization code generator},
  345. url = {http://www.st.com/en/development-tools/stm32cubemx.html},
  346. urldate = {2018-05-18}
  347. }
  348. % Figure sources
  349. @online{buspirate-product-page,
  350. author = {{Seeed Technology Co.,Ltd.}},
  351. title = {Bus Pirate v4},
  352. url = {https://www.seeedstudio.com/Bus-Pirate-v4-p-740.html},
  353. urldate = {2018-05-12}
  354. }
  355. @online{buspirate,
  356. author = {Ian Lesnet},
  357. title = {Bus Pirate},
  358. url = {http://dangerousprototypes.com/docs/Bus_Pirate},
  359. urldate = {2018-05-20}
  360. }
  361. @online{nidevice1,
  362. author = {{National Instruments}},
  363. title = {I²C/SPI Interface Device},
  364. url = {https://www.ni.com/en-gb/shop/select/i2c-spi-interface-device},
  365. urldate = {2018-05-12}
  366. }
  367. @online{nidevice2,
  368. author = {{National Instruments}},
  369. title = {USB-6008},
  370. url = {http://www.ni.com/en-gb/support/model.usb-6008.html},
  371. urldate = {2018-05-12}
  372. }
  373. @online{tphasedevice,
  374. author = {{Total Phase, Inc.}},
  375. title = {USB-6008 product page},
  376. url = {https://www.totalphase.com/products/aardvark-i2cspi/},
  377. urldate = {2018-05-12}
  378. }
  379. @online{arduinodtr,
  380. author = {{NKC Electronics}},
  381. title = {Retrofitting AutoReset feature into an old Arduino serial board},
  382. url = {https://playground.arduino.cc/Learning/AutoResetRetrofit},
  383. urldate = {2018-05-13}
  384. }
  385. @online{tinyframerepo,
  386. author = {Hruška, Ondřej},
  387. title = {TinyFrame, a library for building and parsing data frames for serial interfaces},
  388. url = {https://github.com/MightyPork/TinyFrame},
  389. urldate = {2018-05-13}
  390. }
  391. @online{matlabpy,
  392. author = {{The MathWorks, Inc.}},
  393. title = {Using MATLAB with Python},
  394. url = {https://www.mathworks.com/solutions/matlab-and-python.html},
  395. urldate = {2018-05-13}
  396. }
  397. @online{numpyscipy,
  398. author = {{SciPy developers}},
  399. title = {SciPy.org},
  400. url = {https://www.scipy.org/},
  401. urldate = {2018-05-13}
  402. }
  403. @techreport{ow-datasheet,
  404. author = {{Dallas Semiconductor}},
  405. title = {DS18S20 High Precision 1-Wire Digital Thermometer},
  406. url = {https://datasheets.maximintegrated.com/en/ds/DS18S20.pdf},
  407. urldate = {2018-05-13}
  408. }
  409. @techreport{ow-appnote,
  410. author = {{Dallas Semiconductor}},
  411. title = {AN162: Interfacing the DS18X20/DS1822 1-Wire Temperature Sensor in a Micro-controller Environment},
  412. url = {https://www.maximintegrated.com/en/app-notes/index.mvp/id/162},
  413. urldate = {2018-05-13}
  414. }
  415. @techreport{ow-uart,
  416. author = {{Dallas Semiconductor}},
  417. title = {AN214: Using a UART to Implement a 1-Wire Bus Master},
  418. url = {https://www.maximintegrated.com/en/app-notes/index.mvp/id/214},
  419. urldate = {2018-05-13}
  420. }
  421. @techreport{neopixel-ds,
  422. author = {{Worldsemi}},
  423. title = {WS2812B datasheet},
  424. url = {www.world-semi.com/DownLoadFile/108},
  425. urldate = {2018-05-13}
  426. }
  427. @techreport{adc-sar,
  428. author = {{Maxim Integrated}},
  429. title = {AN1080: Understanding SAR ADCs: Their Architecture and Comparison with Other ADCs},
  430. year = {2001},
  431. url = {https://pdfserv.maximintegrated.com/en/an/AN1080.pdf},
  432. urldate = {2018-05-13}
  433. }
  434. @techreport{fcap-twotypes,
  435. author = {{SiTime Corporation}},
  436. title = {AN10033: Frequency Measurement Guidelines for Oscillators},
  437. url = {https://www.sitime.com/api/gated/AN10033-Frequency-Measurement-Guidelines-for-Oscillators.pdf},
  438. urldate = {2018-05-13}
  439. }
  440. @inproceedings{fcap-increasing,
  441. author = {Paul Boven},
  442. booktitle = {Proceedings of the 50. VHF meeting in Weinheim},
  443. title = {Increasing the resolution of reciprocal frequency counters},
  444. url = {https://www.febo.com/pipermail/time-nuts/attachments/20071201/e7833af5/attachment.pdf},
  445. urldate = {2018-05-13}
  446. }
  447. @ARTICLE{floatpaper,
  448. journal={IEEE Std 754-2008},
  449. title={IEEE Standard for Floating-Point Arithmetic},
  450. year={2008},
  451. pages={1-70},
  452. keywords={IEEE standards;floating point arithmetic;programming;IEEE standard;arithmetic formats;computer programming;decimal floating-point arithmetic;754-2008;NaN;arithmetic;binary;computer;decimal;exponent;floating-point;format;interchange;number;rounding;significand;subnormal},
  453. doi={10.1109/IEEESTD.2008.4610935}
  454. }
  455. @online{piheader,
  456. author = {{Raspberry Pi Foundation}},
  457. title = {GPIO - Raspberry Pi Documentation},
  458. url = {https://www.raspberrypi.org/documentation/usage/gpio/README.md},
  459. urldate = {2018-05-19}
  460. }
  461. @online{piheaderxyz,
  462. author = {Phil Howard},
  463. title = {Raspberry Pi GPIO Pinout interactive diagram},
  464. url = {https://pinout.xyz/},
  465. urldate = {2018-05-19}
  466. }
  467. @online{gex-gh,
  468. title = {GEX USB GPIO platform source code repository},
  469. author = {Ondřej Hruška},
  470. url = {https://github.com/gexpander},
  471. year = {2018},
  472. urldate = {2018-05-21}
  473. }