Difference between revisions of "CricketProbe/v1.00"

From PaparazziUAV
Jump to navigation Jump to search
(CricketProbe debbuging tool based on Black Magic Probe)
 
m
 
(24 intermediate revisions by 5 users not shown)
Line 1: Line 1:
The CricketProbe is a debugging tool for microprocessors.<br>
The CricketProbe is a debugging tool for ARM Cortex Microprocessors.<br>
It is a PCB re-design and connectors improvement of the [http://http://www.blacksphere.co.nz Black Sphere Technologies] [http://http://www.blacksphere.co.nz/main/blackmagic Black Magic Probe] and is fully software-compatible.<br>
It is a [http://www.blacksphere.co.nz Black Sphere Technologies] [http://www.blacksphere.co.nz/main/blackmagic Black Magic Probe] PCB re-design, with some improvements made to the connectors, and is fully software-compatible.<br>


[[Image:CricketProbe_v100_3D_top.png|right|500px|CricketProbe v1.00 3D top view]]
[[Image:CricketProbe_v100.jpg|right|400px|CricketProbe v1.00]]


== Hardware Revision History ==
== Hardware Revision History ==
Line 15: Line 15:


== Detailed Features ==
== Detailed Features ==
As it is fully compatible with the [http://http://www.blacksphere.co.nz/main/blackmagic Black Magic Probe], features are idebtical:<br>
Fully compatible with the [http://www.blacksphere.co.nz/main/blackmagic Black Magic Probe], the features are identical:<br>
''(following is a copy of [http://http://www.blacksphere.co.nz/main/blackmagic Black Magic Probe]'s webpage)''
''(following is a copy of [http://www.blacksphere.co.nz/main/blackmagic Black Magic Probe]'s webpage)''
:* Targets ARM Cortex based microcontrollers.
:* Aimed at ARM Cortex based microcontrollers.
:* Connects to the target processor using the JTAG interface.  Alternatively, the ARM Serial Wire Debug protocol may be used.
:* Allows direct connection to the targeted processors JTAG interface.  Alternatively, you may use the ARM Serial Wire Debug protocol as well.
:* Provides full debugging functionality, including: watchpoints, flash memory breakpoints, memory and register examination, flash memory programming, etc.
:* Full debugging functionality is provided. This includes: watchpoints, flash memory breakpoints, memory and register examination, flash memory programming, etc.
:* Supports multiple targets on a single JTAG scan chain.
:* Multiple targets on a single JTAG scan chain is supported.
:* Interface to the host computer is a standard USB CDC ACM device (virtual serial port), which does not require special drivers on Linux.
:* Interface to the host computer is a standard USB CDC ACM device (a virtual serial port), which does not require special drivers on Linux.
:* Implements the GDB extended remote debugging protocol for seamless integration with the GNU debugger and other GNU development tools.
:* Implements the GDB extended remote debugging protocol for seamless integration with the GNU debugger and other GNU development tools.
:* Implements USB DFU class for easy firmware upgrade as updates become available.
:* Implements USB DFU class for easy firmware upgrades (as updates become available).
:* Works with Windows, Linux and Mac environments.
:* Windows, Linux and Mac environments supported.


Allows you to:
This board allows you to:


:* Load your application into the target Flash memory or RAM.
:* Load your application into the target processor Flash memory or RAM.
:* Single step through your program.
:* Single step through your program.
:* Run your program in real-time and halt on demand.
:* Run your program in real-time with halt on demand.
:* Examine and modify CPU registers and memory.
:* Examine and modify CPU registers and memory.
:* Obtain a call stack backtrace.
:* Obtain a call stack backtrace.
Line 39: Line 39:
== Pictures ==
== Pictures ==


<gallery>
Image:CricketProbe_v100_side.jpg|Side view
Image:CricketProbe_v100_top.jpg|Top view
Image:CricketProbe_v100_bottom.jpg|Bottom view
Image:CricketProbe_v100_bottom_wo_header.jpg|Bottom view w/o header
</gallery>


== Pinout ==
== Pinout ==
''Pins Name and Type are specified with respect to the CricketProbe Board''
[[Image:CricketProbe_v100_pinout.png]]


== Schematic ==
== Schematic ==
[[Image:CricketProbe_v100_schematic.png|left|900px|CricketProbe v1.00 Schematic]]
<br style="clear:both">


== PCB ==
== PCB ==
Line 48: Line 59:
=== Gerber & Drill Files  ===
=== Gerber & Drill Files  ===


2 Layers PCB design  [http://www.eurocircuits.com/images/stories/ec09/ec-classification-english-1-2010-v2.pdf Eurocircuits 6-C class] compliant:
'''''[[Media:CricketProbe_v100_gerber_files.zip|Download CricketProbe v1.00 gerber & drill files (zip)]]'''''
RS274X, units = Inches, format = 2:5
:*CricketProbe_v100_Silkscreen_Top.GBR (Top Print Layer)
:*CricketProbe_v100_Soldermask_Top.GBR (Top Solder Mask)
:*CricketProbe_v100_Paste_Mask_Top.GBR (Top Paste Mask, stencil)
:*CricketProbe_v100_Signal_Top.GBR (Top Copper Layer)
:*CricketProbe_v100_Signal_Bottom.GBR (Bottom Copper Layer)
:*CricketProbe_v100_Soldermask_Bottom.GBR (Bottom Solder Mask)
:*CricketProbe_v100_Silkscreen_Bottom.GBR (Bottom Print Layer)
:*CricketProbe_v100_Outline.GBR (Board Outline)
:*CricketProbe_v100_Drill.GBR (NC XY coordinates & Drill tools sizes)


== Assembly ==
== Assembly ==


===Components Layout===
===Components Layout===
<gallery>
Image:CricketProbe_v100_2D_top_components.png|CricketProbe v1.00 top components Layout
Image:CricketProbe_v100_2D_bottom_components.png|CricketProbe v1.00 bottom components Layout
Image:CricketProbe_v100_top_components.png|CricketProbe v1.00 top components detail
Image:CricketProbe_v100_bottom_components.png|CricketProbe v1.00 bottom components detail
</gallery>


=== Bill Of Material ===
=== Bill Of Material ===
'''''[[Media:CricketProbe_v100_BoM.zip|Download CricketProbe v1.00 Bill of Material (zipped .xls file)]]'''''
<br>
<br>


=== PCB and assembled boards suppliers ===
=== PCB and assembled boards suppliers ===


Check availability on [[Get_Hardware|Get Hardware]] page
Check availability on [[Get_Hardware|Get Hardware]] page
==== OSH Park PCB ====
If you like to order from the OSH Park PCB pooling service, there is a project you can order: [https://oshpark.com/shared_projects/QRwGK8jt CricketProbe v1.00 OSH Park]


== Mechanical Dimensions ==
== Mechanical Dimensions ==
[[Image:CricketProbe_v100_top_mechanical_dimensions.png|500px|CricketProbe v1.00 Top Mechanical Dimensions]]
== Programming ==


=== "Factory" (Bootloader) Programming ===
[[Image:CricketProbe_bootloader_programming_with_discovery.png|800px|CricketProbe v1.00 connection diagram for factory bootloader flashing]]


== Programming ==


== Source Files ==
== Getting, compiling flashing firmware ==
 
Since the criquet probe is an accurate copy of black magic probe,
the black magic probe documentation applies.
 
Here is an abstract of the software installation.
 
You will need the same cross compiler as used by paparazzi, so, if you already use paparazzi,
this point is already done. This procedure assume that your are using a linux box. For a macosx
gear, it will be different, feel free to complete the wiki if you know how to do the job from a mac.
 
Get and compile source from GitHub:
 
git clone https://github.com/gsmcmullin/blackmagic.git
cd blackmagic
git submodule init
git submodule update
make
 
Flash the bootloader via a STLink (all STM32 Discovery boards provide one onboard) with [[STLink| st-flash]] onto the criquet MCU:
 
# remove the two programming jumper on the discovery card (refer to the discovery card stm32 documentation)
# wire discovery SWD connector to criquet probe (cf upper shematic) (disco-swdio => criquetprobe-rx ; disco-swclk => criquetprobe-tx ; ground connected)
# plug discovery on an usb port on your computer
# load the bootloader : st-flash write ./src/blackmagic_dfu.bin 0x08000000
# unplug the discovery (and don't forget to put back the jumpers if you want to use it again as a discovery board)
 
Still need one step to have a useful device, see on next chapter how to program black magic gdb client firmware.
 
=== Firmware Upgrade ===
 
This requires an functional bootloader (see previous chapter).
 
# cd the rootdir of previously downloaded git repository
# maintain the small black button of the criquet probe while connecting it to computer via usb.
# the red led should be flashing, indicating that the criquet wait for firmware upload
# sudo ./scripts/stm32_mem.py src/blackmagic.bin
# unplug and replug usb


should be done


== Hardware Source Files ==


== Source code ==
== Source code ==

Latest revision as of 02:36, 24 June 2015

The CricketProbe is a debugging tool for ARM Cortex Microprocessors.
It is a Black Sphere Technologies Black Magic Probe PCB re-design, with some improvements made to the connectors, and is fully software-compatible.

CricketProbe v1.00

Hardware Revision History

Version # Release Date Release Notes
v1.00 (current) 04/2014 Initial release
v0.00 02/2014 Prototype

Detailed Features

Fully compatible with the Black Magic Probe, the features are identical:
(following is a copy of Black Magic Probe's webpage)

  • Aimed at ARM Cortex based microcontrollers.
  • Allows direct connection to the targeted processors JTAG interface. Alternatively, you may use the ARM Serial Wire Debug protocol as well.
  • Full debugging functionality is provided. This includes: watchpoints, flash memory breakpoints, memory and register examination, flash memory programming, etc.
  • Multiple targets on a single JTAG scan chain is supported.
  • Interface to the host computer is a standard USB CDC ACM device (a virtual serial port), which does not require special drivers on Linux.
  • Implements the GDB extended remote debugging protocol for seamless integration with the GNU debugger and other GNU development tools.
  • Implements USB DFU class for easy firmware upgrades (as updates become available).
  • Windows, Linux and Mac environments supported.

This board allows you to:

  • Load your application into the target processor Flash memory or RAM.
  • Single step through your program.
  • Run your program in real-time with halt on demand.
  • Examine and modify CPU registers and memory.
  • Obtain a call stack backtrace.
  • Set up to 6 hardware assisted breakpoints.
  • Set up to 4 hardware assisted read, write or access watchpoints.
  • Set unlimited software breakpoints when executing your application from RAM.

Pictures

Pinout

Pins Name and Type are specified with respect to the CricketProbe Board

CricketProbe v100 pinout.png

Schematic

CricketProbe v1.00 Schematic


PCB

Gerber & Drill Files

2 Layers PCB design Eurocircuits 6-C class compliant:

Download CricketProbe v1.00 gerber & drill files (zip)

RS274X, units = Inches, format = 2:5

  • CricketProbe_v100_Silkscreen_Top.GBR (Top Print Layer)
  • CricketProbe_v100_Soldermask_Top.GBR (Top Solder Mask)
  • CricketProbe_v100_Paste_Mask_Top.GBR (Top Paste Mask, stencil)
  • CricketProbe_v100_Signal_Top.GBR (Top Copper Layer)
  • CricketProbe_v100_Signal_Bottom.GBR (Bottom Copper Layer)
  • CricketProbe_v100_Soldermask_Bottom.GBR (Bottom Solder Mask)
  • CricketProbe_v100_Silkscreen_Bottom.GBR (Bottom Print Layer)
  • CricketProbe_v100_Outline.GBR (Board Outline)
  • CricketProbe_v100_Drill.GBR (NC XY coordinates & Drill tools sizes)

Assembly

Components Layout

Bill Of Material

Download CricketProbe v1.00 Bill of Material (zipped .xls file)

PCB and assembled boards suppliers

Check availability on Get Hardware page

OSH Park PCB

If you like to order from the OSH Park PCB pooling service, there is a project you can order: CricketProbe v1.00 OSH Park


Mechanical Dimensions

CricketProbe v1.00 Top Mechanical Dimensions

Programming

"Factory" (Bootloader) Programming

CricketProbe v1.00 connection diagram for factory bootloader flashing


Getting, compiling flashing firmware

Since the criquet probe is an accurate copy of black magic probe, the black magic probe documentation applies.

Here is an abstract of the software installation.

You will need the same cross compiler as used by paparazzi, so, if you already use paparazzi, this point is already done. This procedure assume that your are using a linux box. For a macosx gear, it will be different, feel free to complete the wiki if you know how to do the job from a mac.

Get and compile source from GitHub:

git clone https://github.com/gsmcmullin/blackmagic.git
cd blackmagic 
git submodule init 
git submodule update 
make

Flash the bootloader via a STLink (all STM32 Discovery boards provide one onboard) with st-flash onto the criquet MCU:

  1. remove the two programming jumper on the discovery card (refer to the discovery card stm32 documentation)
  2. wire discovery SWD connector to criquet probe (cf upper shematic) (disco-swdio => criquetprobe-rx ; disco-swclk => criquetprobe-tx ; ground connected)
  3. plug discovery on an usb port on your computer
  4. load the bootloader : st-flash write ./src/blackmagic_dfu.bin 0x08000000
  5. unplug the discovery (and don't forget to put back the jumpers if you want to use it again as a discovery board)

Still need one step to have a useful device, see on next chapter how to program black magic gdb client firmware.

Firmware Upgrade

This requires an functional bootloader (see previous chapter).

  1. cd the rootdir of previously downloaded git repository
  2. maintain the small black button of the criquet probe while connecting it to computer via usb.
  3. the red led should be flashing, indicating that the criquet wait for firmware upload
  4. sudo ./scripts/stm32_mem.py src/blackmagic.bin
  5. unplug and replug usb

should be done

Hardware Source Files

Source code