After the proof of concept phase (see “Proof of Concept: Open Source ARM SWD Debug and General Purpose Board“), the first prototypes are ready:
I had the first prototypes of the board we have produced internally in my hands:
A different USB connector can be populated on the backside of the board, so it can directly be plugged into a USB port. Additionally the board can be placed into a small USB thumb drive case that way (I don’t have one for a picture now, but we use them for a different project).
Here it is one tinyK20 debugging the FRDM-KL25Z board:
One tinyK20 debugging another tinyK20:
Not the first time it happens to me :-(: things always look better on the layout 😉
Fort the next iteration, a few changes are under consideration:
- Must have: The reset button needs to move away from the target MCU SWD connector.
- Optional: Changing orientation of the ‘plugin’ version: if I plug-in the board into a notebook, the board components are not visible.
- Optional: Potentially move the target MCU connector so it does not block the pin rows.
- Optional: Using a smaller clock (Murata Electronics CSTCE8M00G55-R0). The latest FRDM boards are using this one too (FRDM-K64F, FRDM-K22F) for the K20, so it seems this one is accurate enough for USB operations. That would save space.
- Optional: make the capacitors around the K20 clock DNP (Do Not Populate) to reduce part number.
Let me know what you think, Do you have other ideas? Or anyone has a better name than ‘tinyK20’?
Happy Debugging 🙂
Looks great Erich! Neat idea with the USB connector. I’ve got some projects in mind already where I could use this board.
I’m terrible with names, I’d call it OSUDB-1 🙂
LikeLike
Thanks! Same for me: I’m not good at finding names…
LikeLike
Hello Eric,
Great work. How about making it a Key-Chain
debugger, that way you can take it with you or
even a key-chain USB debugger.
Are you going to make it available to the public?
LikeLike
Yes, the plan is to make it available to the public.
LikeLike
Can you tell us, when it will be available?
LikeLike
I should have the first boards in my hand by end of next week (if nothing goes wrong) 🙂
LikeLike
Hello Erich, I was reading your post on lwip, FreeRTOS and FRDM-K64F, and it find it very interesting and useful. It help me get started with K64F. Now, do you know of a project for Modbus TCP for K64F using lwip stacks?
Thanks.
LikeLike
No, I’m not aware of any such project (ModBus TCP for K64F).
LikeLike
For FRDM-K64F MODBUS see:
– http://www.utasker.com/modbus.html
and
– http://www.utasker.com/kinetis/FRDM-K64F.html
Sorry it doesn’t use lwip but instead a (superior?) integrated and low memory stack optimised for the Kinetis.
It allows all UARTs on the K64F to be used as MODBUS slaves or masters in ASCII or RTU modes. Multiple master and /or slave MODBUS TCP sessions, as well as MODBUS over USB-CDC and/or MODBUS over RNDIS.
Simulates the FRDM-K64F also in (approx.) real time so all can be tested, debugged, verified using Visual Studio – then just load and it runs the same on the target…
Regards
Mark
P.S: Also works on the TinyK20 on UARTs or USB-CDC (not RNDIS though since the RAM of the K20 used is a little too small for RNDIS functionality).
– http://www.utasker.com/kinetis/tinyK20.html
LikeLike
Nice project. I always try to use a 3D visualizer part of the design software, I don’t know if you have that in the software you use. It helps tell if components are too close together. I use Proteus and sometimes I have to make my own 3D models in Sketchup and export them, then import them for visualization when I have new components that are not available in the library.
LikeLike
Yeah, I wish we would have used that. But that’s what prototypes usually are for, right. I agree: the earlier to catch things like this, the better.
LikeLike
What is the exact part number for the K20 MCU you are using, I realized Freescale coded the long manufacturer part numbers that online stores use, I want to make some order from Digikey for my lab.
LikeLike
It is the Freescale Kinetis K20, MK20DX128VFT5.
LikeLike
I found this one MK20DX128VFT5 on digikey: http://www.digikey.nl/product-search/en?pv16=6438&FV=fff40027%2Cfff800cd&k=K20DX128&mnonly=0&newproducts=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=500
LikeLike
Eric
Is it possibe to add an a uSD card footprint on the bottom (below the reset switch) – this would allow adding SD cards without needing an extrension board.
Also the KL27 may be an interesting alternative to the K20 – it is cheaper and you could save the rather large crystal).
I always found that the Teensy missed a user button (as well as a reset button) so I would consider both a reset and user botton. The user botton is interesting when a boot loader has been programmed using the SWD (and maybe the debug extension brocken off) because it then allows for a simple method to force the loader mode again.
[There is a bigger KL27 HW here as reference: http://www.coffeebrain.org/blog/distribucion-de-pines-capuccino-kl27/%5D
Finally – are all USB host sockets oriented the same way so that the user LED is facing down? If it is not random (I believe not since USB cables have a sign on them showing ‘up’) how they are oriented it would be better to have the LED visible when the stick is inserted directly into a host socket.
Regards
Mark
LikeLike
Hi Mark,
thanks for all your ideas and suggestions:
– SD card: I considered that, but there are different footprints/sockets, and we wanted the bottom of the board without any parts populated. As for adding an SD card or anything else, the design is that you could add your own breadboard board to the top or bottom.
– We intentionally kept the K20DX128 to be compatible with the FRDM OpenSDA design. Yes, it is not the most powerful/best processor, but it keeps changes to the FRDM board at a minimum.
– User button: the reset button can be re-assigned as a user button (well, then you do not have reset). For resetting a bootloader you still could shortcut any of the pins on the breadboard side with a paperclip/etc as needed. The problem with adding another button is the space available on the board.
– USB sockets: yes, I want to have the populated parts on the top side. We are looking into ways how to accomplish that in the next revision.
Thanks!
Erich
LikeLike
Hi Mark,
progress on the SD card item: we finally are going to add an SD card footprint for a micro SD card socket on the back of the PCB. As we are using the K20 3.3V internal regulator, that 3.3V is limited to about 100 mA max. If using a low power SD card which only needs say 10-20 mA for writing, that should be fine. However, we have seen SD cards which need >200 mA (yikes!). For such cards, we will add the footprint for a linear voltage regulator (5V->3.3V) too.
LikeLike
Eric
That is a very useful addition!!
Regards
Mark
LikeLike
Hi Erich, another great project !!! Some curiosities, how did you build the PCB ? How did you deal with the vias connections ? As I can see on the images they are not soldered. Thanks.
LikeLike
We have the infrastructure (laser) to make such PCBs internall (see video on https://www.hslu.ch/de-ch/technik-architektur/studium/bachelor/elektrotechnik/, direct link http://www.youtube.com/watch?rel=0&v=lfOEr-1ZBR8, 2:32) You might recognize some of my projects :-). The vias we are producing externally in a elektro-chemical process.
LikeLike
This first prototype look very nice ! But is it possible to power the board only by SWD ? Less cable is less problem problem (especially on Mac note book, just two USB port ! ).
Did you weld all component with oven ?
LikeLike
Hi Max,
yes, the SWD connectors have the 3.3V available. And yes, we are using both oven and a hot-air SMD bench.
LikeLike
Hey great to see. Be interested to order one when its available for a debugger interface and telling a few friends about it. Are you planning for one of the connectors to Micro-A to allow USB-otg – though that implies separate power supply?
Is there going to be 32Khz xtal on it for RTC support – though of course that suggests the need to be able to use it on a separate battery Vcc
LikeLike
No dedicated USB-OTG planned for now. OTG to me is rarely used these day. We tought about adding a jumper or configuration for USB host support, but not sure if this would be worthwile too. Would need a 5V supply/pin/jumper. And if using the same approach as on the FRDM boards, then the supply would be unprotected. USB host sounds nice, but I think it is not worthwile the complexity and required space on the board?
LikeLike
Pingback: tinyK20 USB Thumb Drive Enclosure | MCU on Eclipse
Pingback: tinyK20: New Board with micro-SD Card | MCU on Eclipse
Pingback: Production tinyK20 Boards arrived! | MCU on Eclipse
Hi Erich
I download the PCB and design files.
But I can not open the schematic through OrCAD16.3 or BRD through allegro.
LikeLike
Hi Kyle,
the files are for Eagle (http://www.cadsoftusa.com/), but I’m sure you could export it into the format of your CAD tool, and maybe there are converters. I’m not familiar with OrCAD or BRD :-(.
LikeLike
Can I used for it MK22FN1M0AVLH12?
LikeLike
Yes, you can.
LikeLike
Dear Erich
Can you please explain in short the procedure for a newly purchased MK22FN1M0AVLH12 (or any other) to be programmed for the first time? Is it necessary to have a bootloader programmed first or can it be programmed directly via J-link?
Happy new year!
LikeLike
Hi Cristian,
no, there is no need for a bootloader.
Make sure that
a) reset line is pulled up to Vcc by external pull-up resistor (10K)
b) C between reset line and GND (100nF)
c) CPU is powered properly by 3.3V
Then use the J-Link to connect and program the device.
Other than that, make sure there is not a problem with NMI pin or EzPort.
I hopet this helps,
Erich
LikeLike
hi erich, Where can i download the files for eagle?
LikeLike
and where i can download the firmware for the tiny k20?
LikeLike
Firmware files are on https://github.com/ErichStyger/mcuoneclipse/tree/master/Examples/KDS/tinyK20
LikeLike
Have you checked https://github.com/ErichStyger/mcuoneclipse/tree/master/tinyK20/Board ?
LikeLike