EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

M68HC11 interface to USB

Started by CRISTIAN PATITOIU April 29, 2004
Hi,

I'm a student and my project for my course of Microcontrollers is to connect M68HC11 to USB interface. I would be very grateful for any help ( link, project, etc.) or suggestion you can offer. Thank you.

Sincerely, Cristian. ---------------------------------



A trivially simple solution (which I would only give you a 'C' for if I was
a professor) is just hook up the SCI rx and tx to one of those FTDI rs232 to
usb converter chips.


--- In , CRISTIAN PATITOIU
<cristinp2002@y...> wrote:

> I'm a student and my project for my course of Microcontrollers is
> to connect M68HC11 to USB interface. I would be very grateful for
> any help ( link, project, etc.) or suggestion you can offer. Thank
> you.

Has the course instructor provided you with any ideas on how to
approach this project? In particular, did he provide you with any
suggestions regarding USB interface ICs to use in conjunction with
the HC11? Since none of the available HC11 variants provide on-chip
USB functionality, you will have to use some sort of external device
to provide it.

You might want to take a look at this site:

http://www.semiconductors.philips.com/buses/usb/

Phillips has several microcontroller/microprocessor compatible
peripheral ICs in their product line that provide USB
functionality. Having briefly looked at the site above, my initial
guess would be that the PDIUSB12 device would be a good part to look
at first. This device uses a parallel bus that appears to be
compatible with the HC11 (external) address/data bus. The bad news
is that this part appears to only be available in a surface mount
package (TSOP) so it may be kind of difficult to prototype with this
device unless you can find a suitable TSOP-to-DIP adapter.

Unfortunately, there do not appear to be any serial-bus-interfaced
USB peripherals on the market, at least none that are not in "end-of-
life" status. The Phillips PDIUSB11 (I2C) and National USBN9602
(SPI/Microwire) devices fall into this category.

The best solution for USB-enabled devices is, IMO, to use a
microcontroller with USB functionality built in. Unfortunately,
there are no HC11 devices on the market that incorporate USB
functionality. The few HC08 devices that provide USB capability
are, in my opinion anyway, very poor implementations. ST Micro has
several devices in their ST7 and ST9 microcontroller families that
incorporate decent USB functionality. I have used the ST72631
device in the past - it is only 'low speed', but its USB core is
very well thought out, and the ST7 instruction set is not too bad
(roughly equivalent to the HC08). Cypress Semiconductor makes the
EZ-USB line of 8051-core-based (yuk!) devices that are very easy to
work with. The 8051 core is not very pleasant to work with, but the
USB implementation and on-chip USB firmware support, RAM-based
program storage, and USB-based firmware loader and provided host USB
driver support make this device one of the better USB
microcontroller solutions available. Finally, I *think* that some
of the newer generation Atmel AVR devices have USB functionality,
but I have not researched this.

Whatever solution you come up with, I think you will find that
working with USB, on both the device-side and host-side, will be a
considerable challenge. The USB specification is large and quite
detailed, but not particularily well written, and is totally lacking
in 'real world' practical examples and tutorials. It took me quite
some time and a lot of 'trial and error' to reach a level of
comprehension sufficient to design working USB firmware. And if
that is not bad enough, coming up with host-side drivers (at least
for Windows) is by all accounts a Black Art. I have seen NO
*comprehensible* tutorials, books, or technical information on this
subject ANYWHERE. Mac OSX does provide a semi-rational USB/device
API that is usable in both 'userland' (application environment) as
well as in a kernel/device-driver environment. I was able to write
a OSX app that would communicate with a custom USB device I built
(ST7-based) after careful study of the code examples that Apple
provided. Interestingly enough, one of the code examples
demonstrates how to upload object code a Cypress EZ-USB device.

If you need help with your project, let me know. I won't write the
code for you, but I can provide advice and can probably answer
questions you might have regarding USB protocols.


The bad news
> is that this part appears to only be available in a surface mount
> package (TSOP) so it may be kind of difficult to prototype with this
> device unless you can find a suitable TSOP-to-DIP adapter.
>

Yes, this is getting to be a real PITA with a lot of new chips.

See Aries Electronics and Ironwood for possible solutions. Digikey carries
some of their parts so you can start a www.digikey.com and, if nothing, else
find links to their web sites.

Perhaps a good USB interface for the HC11 would be a HC08 or HC12 equipped
with a USB port.

Bob Smith --- Avoid computer viruses, Practice safe hex ---

-- Specializing in small, cost effective
embedded control systems --

http://www.smithmachineworks.com/embedprod.html Robert L. (Bob) Smith
Smith Machine Works, Inc.
9900 Lumlay Road
Richmond, VA 23236 804/745-2608
----- Original Message -----
From: "Mark Schultz" <>
To: <>
Sent: Friday, April 30, 2004 4:04 PM
Subject: [m68HC11] Re: M68HC11 interface to USB > --- In , CRISTIAN PATITOIU
> <cristinp2002@y...> wrote:
>
> > I'm a student and my project for my course of Microcontrollers is
> > to connect M68HC11 to USB interface. I would be very grateful for
> > any help ( link, project, etc.) or suggestion you can offer. Thank
> > you.
>
> Has the course instructor provided you with any ideas on how to
> approach this project? In particular, did he provide you with any
> suggestions regarding USB interface ICs to use in conjunction with
> the HC11? Since none of the available HC11 variants provide on-chip
> USB functionality, you will have to use some sort of external device
> to provide it.
>
> You might want to take a look at this site:
>
> http://www.semiconductors.philips.com/buses/usb/
>
> Phillips has several microcontroller/microprocessor compatible
> peripheral ICs in their product line that provide USB
> functionality. Having briefly looked at the site above, my initial
> guess would be that the PDIUSB12 device would be a good part to look
> at first. This device uses a parallel bus that appears to be
> compatible with the HC11 (external) address/data bus. The bad news
> is that this part appears to only be available in a surface mount
> package (TSOP) so it may be kind of difficult to prototype with this
> device unless you can find a suitable TSOP-to-DIP adapter.
>
> Unfortunately, there do not appear to be any serial-bus-interfaced
> USB peripherals on the market, at least none that are not in "end-of-
> life" status. The Phillips PDIUSB11 (I2C) and National USBN9602
> (SPI/Microwire) devices fall into this category.
>
> The best solution for USB-enabled devices is, IMO, to use a
> microcontroller with USB functionality built in. Unfortunately,
> there are no HC11 devices on the market that incorporate USB
> functionality. The few HC08 devices that provide USB capability
> are, in my opinion anyway, very poor implementations. ST Micro has
> several devices in their ST7 and ST9 microcontroller families that
> incorporate decent USB functionality. I have used the ST72631
> device in the past - it is only 'low speed', but its USB core is
> very well thought out, and the ST7 instruction set is not too bad
> (roughly equivalent to the HC08). Cypress Semiconductor makes the
> EZ-USB line of 8051-core-based (yuk!) devices that are very easy to
> work with. The 8051 core is not very pleasant to work with, but the
> USB implementation and on-chip USB firmware support, RAM-based
> program storage, and USB-based firmware loader and provided host USB
> driver support make this device one of the better USB
> microcontroller solutions available. Finally, I *think* that some
> of the newer generation Atmel AVR devices have USB functionality,
> but I have not researched this.
>
> Whatever solution you come up with, I think you will find that
> working with USB, on both the device-side and host-side, will be a
> considerable challenge. The USB specification is large and quite
> detailed, but not particularily well written, and is totally lacking
> in 'real world' practical examples and tutorials. It took me quite
> some time and a lot of 'trial and error' to reach a level of
> comprehension sufficient to design working USB firmware. And if
> that is not bad enough, coming up with host-side drivers (at least
> for Windows) is by all accounts a Black Art. I have seen NO
> *comprehensible* tutorials, books, or technical information on this
> subject ANYWHERE. Mac OSX does provide a semi-rational USB/device
> API that is usable in both 'userland' (application environment) as
> well as in a kernel/device-driver environment. I was able to write
> a OSX app that would communicate with a custom USB device I built
> (ST7-based) after careful study of the code examples that Apple
> provided. Interestingly enough, one of the code examples
> demonstrates how to upload object code a Cypress EZ-USB device.
>
> If you need help with your project, let me know. I won't write the
> code for you, but I can provide advice and can probably answer
> questions you might have regarding USB protocols. >
>
> --
------
> Yahoo! Groups Links
>
> a.. To



Thank you Bob Gardner, Mark Schultz and Bob Smith for replying to my email. I know everyone's time is short and appreciate you willingness to help. I admit that I'm a beginner in microcontroller design and this project seems to me very hard to finish. I have a lot of projects to finish in a month and a half, therefore I must make a compromise between learning something new and having my projects done.
The most of what you had wrote is fairly new information for me, but as soon as I'll start to document seriosly on this projects I hope my questions will start to pop.
Yes, you're right, I'm allowed to connect the HC11 to USB with its own resources or through another microcontroller who provides a more suitable USB interface. I must provide hardware schematics and code.

Thank you again.

Cristian Patitoiu
Politechnic University from Timisoara, Romania.
Automation and Computers Faculty.

Bob Smith <> wrote:
The bad news
> is that this part appears to only be available in a surface mount
> package (TSOP) so it may be kind of difficult to prototype with this
> device unless you can find a suitable TSOP-to-DIP adapter.
>

Yes, this is getting to be a real PITA with a lot of new chips.

See Aries Electronics and Ironwood for possible solutions. Digikey carries
some of their parts so you can start a www.digikey.com and, if nothing, else
find links to their web sites.

Perhaps a good USB interface for the HC11 would be a HC08 or HC12 equipped
with a USB port.

Bob Smith --- Avoid computer viruses, Practice safe hex ---

-- Specializing in small, cost effective
embedded control systems --

http://www.smithmachineworks.com/embedprod.html Robert L. (Bob) Smith
Smith Machine Works, Inc.
9900 Lumlay Road
Richmond, VA 23236 804/745-2608
----- Original Message -----
From: "Mark Schultz" <>
To: <>
Sent: Friday, April 30, 2004 4:04 PM
Subject: [m68HC11] Re: M68HC11 interface to USB > --- In , CRISTIAN PATITOIU
> <cristinp2002@y...> wrote:
>
> > I'm a student and my project for my course of Microcontrollers is
> > to connect M68HC11 to USB interface. I would be very grateful for
> > any help ( link, project, etc.) or suggestion you can offer. Thank
> > you.
>
> Has the course instructor provided you with any ideas on how to
> approach this project? In particular, did he provide you with any
> suggestions regarding USB interface ICs to use in conjunction with
> the HC11? Since none of the available HC11 variants provide on-chip
> USB functionality, you will have to use some sort of external device
> to provide it.
>
> You might want to take a look at this site:
>
> http://www.semiconductors.philips.com/buses/usb/
>
> Phillips has several microcontroller/microprocessor compatible
> peripheral ICs in their product line that provide USB
> functionality. Having briefly looked at the site above, my initial
> guess would be that the PDIUSB12 device would be a good part to look
> at first. This device uses a parallel bus that appears to be
> compatible with the HC11 (external) address/data bus. The bad news
> is that this part appears to only be available in a surface mount
> package (TSOP) so it may be kind of difficult to prototype with this
> device unless you can find a suitable TSOP-to-DIP adapter.
>
> Unfortunately, there do not appear to be any serial-bus-interfaced
> USB peripherals on the market, at least none that are not in "end-of-
> life" status. The Phillips PDIUSB11 (I2C) and National USBN9602
> (SPI/Microwire) devices fall into this category.
>
> The best solution for USB-enabled devices is, IMO, to use a
> microcontroller with USB functionality built in. Unfortunately,
> there are no HC11 devices on the market that incorporate USB
> functionality. The few HC08 devices that provide USB capability
> are, in my opinion anyway, very poor implementations. ST Micro has
> several devices in their ST7 and ST9 microcontroller families that
> incorporate decent USB functionality. I have used the ST72631
> device in the past - it is only 'low speed', but its USB core is
> very well thought out, and the ST7 instruction set is not too bad
> (roughly equivalent to the HC08). Cypress Semiconductor makes the
> EZ-USB line of 8051-core-based (yuk!) devices that are very easy to
> work with. The 8051 core is not very pleasant to work with, but the
> USB implementation and on-chip USB firmware support, RAM-based
> program storage, and USB-based firmware loader and provided host USB
> driver support make this device one of the better USB
> microcontroller solutions available. Finally, I *think* that some
> of the newer generation Atmel AVR devices have USB functionality,
> but I have not researched this.
>
> Whatever solution you come up with, I think you will find that
> working with USB, on both the device-side and host-side, will be a
> considerable challenge. The USB specification is large and quite
> detailed, but not particularily well written, and is totally lacking
> in 'real world' practical examples and tutorials. It took me quite
> some time and a lot of 'trial and error' to reach a level of
> comprehension sufficient to design working USB firmware. And if
> that is not bad enough, coming up with host-side drivers (at least
> for Windows) is by all accounts a Black Art. I have seen NO
> *comprehensible* tutorials, books, or technical information on this
> subject ANYWHERE. Mac OSX does provide a semi-rational USB/device
> API that is usable in both 'userland' (application environment) as
> well as in a kernel/device-driver environment. I was able to write
> a OSX app that would communicate with a custom USB device I built
> (ST7-based) after careful study of the code examples that Apple
> provided. Interestingly enough, one of the code examples
> demonstrates how to upload object code a Cypress EZ-USB device.
>
> If you need help with your project, let me know. I won't write the
> code for you, but I can provide advice and can probably answer
> questions you might have regarding USB protocols. >
>
> --
------
> Yahoo! Groups Links
>
> a.. To

---------------------------------
Yahoo! Groups Links

To
---------------------------------


--- In , "Bob Smith" <bobsmith5@v...> wrote:
> Perhaps a good USB interface for the HC11 would be a HC08 or HC12
> equipped with a USB port.

I have not looked recently at Mot's HC12 offerings, so I do not know
what the HC12 USB core (assuming one exists) looks like, but I have
taken a look at the HC08 USB core, and was not impressed - at least
not on the particular device I was looking at (I don't recall the
part number offhand). The most glaring deficiency I saw was that
all of the endpoints shared a SINGLE, COMMON 8-byte buffer. This
complicates the firmware for a multi-endpoint implementation
considerably. I do not recall offhand what the other deficiencies
were, but I do remember mentally comparing the feature-set of the
HC08 USB core with the ST7 USB core that I was familiar with and
concluding to myself that the HC08 core was rather inferior in
comparison.

By way of comparison, the ST72631 USB core (ST7) has separate
receive and transmit buffers for EACH endpoint. Furthermore, within
some limitations, these buffers can be placed at any $40 page in the
ST7 address space. The endpoint addresses for two of the three
available endpoints are software configurable (the default control
endpoint has a fixed $00 address). Each endpoint (except the
control endpoint) can be set for either interrupt-in, interrupt-out
or control transfer mode (bulk and isochronous modes are not
available on a low-speed device). The ST7 USB subsystem can
generate up to 8 different interrupt events for various USB states
(such as remote wakeup, powerdown mode, sync reception, endpoint
activity, etc.). It will also auto-NAK any endpoint that has not
been serviced by software, which pretty much guarantees that you
will not 'miss' a packet. It is a very solid implementation.

Given the overall quality of the other HC08 subsystems, I am
surprised (and disappointed) that Mot's HC08 USB subsystem was
implemented so poorly.



The 2024 Embedded Online Conference