|Re: Voyager Re-Engineering, was: Re: 15C LE - official statement?|
Message #43 Posted by uhmgawa on 2 Aug 2011, 4:01 p.m.,
in response to message #42 by Edward Cheng
I am very interested in this kinomi project. It is a great work and I looked in awe.
After viewing the video, I would like to ask some quesrtions concerning this.
1.What kind of 8-bit ┬ÁC did you use? Is it kind of BGA?
The packages are 0.5mm pitch MLF. The uCs used are either
an atmega328p (single image) or atmega1284p. However considering
the relatively small price difference and the fact the 1284p has
sufficient i/o ports to drive the key matrix directly, I don't see
any reason to continue on with the 328p. Especially as we gain
4x flash (128KB) and 8x SRAM (16KB) capacity with the 1284p.
2.How did you mount the whole board onto the LQFP site?
The bottom side of the KINOMI pcb was needed for bypass
capacitors as I was out of top surface real estate and that
was the compromise of avoiding a 4 layer board. In order
to keep the vertical profile minimal and allow a FFC debug
connector on the module, the KINOMI board thickness was
reduced to 0.8mm and the bottom side components are all
0201 surface mount devices.
Adding on the IRDA transceiver bumped off even the FFC connector
so debug connection to that version of the module is accomplished
with plated vias in the board to which mates a custom connector
constructed from tempered stainless steel probes. This is not
as cumbersome as it sounds.
The bottom of the KINOMI board has land pads mating with those
on the Voyager main PCB. Connection is via copper standoffs
of 0.4mm diameter oriented with and sandwiched between each
set of mating pads. A layer of 0.05mm kapton tape acts as
a insulation guard between the bottom SMD and Voyager PCB
Caould you post a bigger picture of it?
(I cannot see clearly in the video.)
Yes, I will put together something in a bit. It may just be
the schematics, gerbers and a few jpegs in an archive.
3.How did you program the ┬ÁC?
The uC was physically programmed with a avrdude running
on a linux box.
The emulator "KEMU" used in the project was written in C
as a linux application, and then ported to an SH1, SIMAVR (an
AVR core emulator), the m328p, and finally m1284p. The
SH1, SIMAVR and m328p ports probably no longer build and
are inconsequential at this point.
I would love to have avoided the AVR core 328p/1284p uCs.
But except for raw speed of the current Cortex-M0 devices,
the AVRs require far less power consumption (particularly
in power-down mode) and provide larger on-chip flash and RWM
in uCs offering these minimized power levels relative to ARM
Use of an 8-bit cpu as a C language target is amazing in
the fact gcc works as well as it does. But there are
numerous issues which manifest as code inefficiencies
which aren't or can't be optimised out. The harvard
architecture of the AVR core is also maddening when dealing
with storage of constant data in flash. But it is workable
with effort and I myself was amazed the KEMU core weighed in
Thanks in advance.
By the way, I happen to find out the analogy between kinomi (ŠťĘŃü«ň«č) and nuts.
(Of course, after consulting the dictionary.)
;) Yes "kinomi" means "nut" in Japanese.
Edited: 3 Aug 2011, 2:18 a.m.