Continue to Site

Generating PWM signal with StrongArm SA 1100

Status
Not open for further replies.

do hoi

Newbie level 3
Newbie level 3
Joined
Nov 11, 2004
Messages
4
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
47
Generate PWm signal

Have anyone used Microprocessor StrongArm SA 1100 to make the PWM genarator ?

I will use PWM signal to control the motor speed.

If anyone has done before, let explain me please.
 

Re: Generate PWm signal

If I were you I would select different microcontroller, and there are two reasons for this:
1. this micro does not have PWM function built-in, and
2.
Please Note:
The Intel® StrongARM SA-1110 has been manufacturer discontinued. As a result, Intel StrongARM SA-1110 processor promotional / support information is no longer available on the web. Options exist for upgrading Intel StrongARM SA-1110 processor-based designs to Intel® PXA255 processor or Intel® PXA26x processor family-based designs.

However, replacement of the Intel StrongARM SA-1110 processor by the Intel PXA255 processor or Intel PXA26x processor family will require varying degrees of engineering design consideration. The Intel PXA255 processor and Intel PXA26x processor family are not pin-for-pin replacements for the Intel StrongARM SA-1110 processor.
 

Re: Generate PWm signal

I 've known it is difficult to make PWM signal using SA 1100, but my problem is that I already have had this chip, and my senior required me using the timer in SA 1100 to generate PWM signal. Now I don't know how to implement.
Do you have any other solution beside SA 1100 ? using FPGA, microcontroller, or the orther chip TD340, A3953SB... which have internal PWM module ??? Which is the best way (both cost and implementation) ?
Thank you very much
 

Generate PWm signal

PWM means change in duty cycle, at the same period.
i havent read the spec of SA1100, but i think it can be implemented as follows:
- period is fixed so you can let the timer count full range and toggle output
- compare value is for duty cycle. a compare match also toggles output.

hope this help...

maybe you provide more detail about the timer(s)?
 

Re: Generate PWm signal

Operating timer in SA 1100 contains 32-bit timer, clocked by 3.6864 MHz oscillator.
There are operating system count register (OSCR) and four 32-bit match registers (OSMR<3:0>). When the value in the OSCR matches the value within any of the matche registers, and the interrupt enable bit is set, the corresponding bit in the OSSR (status register) is set. There are 28 general-purpose I/O pins in SA 1100.

How can the timers control a general-purpose I/O pin ? Can you suggest me some C code for this problem ?
 

Re: Generate PWm signal

Operating timer in SA 1100 contains 32-bit timer, clocked by 3.6864 MHz oscillator.
There are operating system count register (OSCR) and four 32-bit match registers (OSMR<3:0>). When the value in the OSCR matches the value within any of the matche registers, and the interrupt enable bit is set, the corresponding bit in the OSSR (status register) is set. There are 28 general-purpose I/O pins in SA 1100.

when there's a compare match, is there interrupt generated? if there is, it should be no problem right? as you can toggle output port in the interrupt handler.
 

Re: Generate PWm signal

do hoi said:
Operating timer in SA 1100 contains 32-bit timer, clocked by 3.6864 MHz oscillator.
There are operating system count register (OSCR) and four 32-bit match registers (OSMR<3:0>). When the value in the OSCR matches the value within any of the matche registers, and the interrupt enable bit is set, the corresponding bit in the OSSR (status register) is set. There are 28 general-purpose I/O pins in SA 1100.

How can the timers control a general-purpose I/O pin ? Can you suggest me some C code for this problem ?

Timer doesn't control the pins, you have to control them at the "On Timer" Interrupt Service Routine.

The following is an elementary algorithm, assuming that you want to make a PWM with a 1:100 Resolution

1) Setup the Timer
2) In your "On Timer" Interrupt Service Routine increment the variable "count" on each interrupt
3) If "count" reached 100, clear it and rise the PWM pin
4) If "count" reached the desired duty cicle, just lower the PWM pin

Notes: Assign a high priority to "On Timer" interrupt in order to improve the accuracy. Use the following equate for timer setup:

PWM_frequency = 1 / ( timer_interrupt_period * 100)

Good luck!
Regnum
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top