Quantcast
Channel: Propeller 1 — Parallax Forums
Viewing all 2835 articles
Browse latest View live

The P8X Game System

$
0
0
Hello,

I present you the project I'm working on for quite some time: the P8X Game System, a dual-propeller based game console. It is a combination of an hardware platform and an open source integrated development environment based on propellergcc aimed at developing retro-style games.

The libraries currently supports a number of video modes, including PAL, NTSC and VGA at various resolutions, up to 320x240 pixels, with 4 or 16 colors per pixel, RGB+sync only.
I'm attaching some images of the console prototype, schematics and IDE screenshot, so you can have a taste of what it is already done.

I have also setup a web site with more details, source code and downloads:
https://dev.maccasoft.com/propgame

I would appreciate comments and suggestions.

Have fun!
Marco

Having trouble downloading the necessary files to use Propbasic...and the IDE.

$
0
0
OK...having been a Basic Stamp user for almost 2 decades now, and the loss of the BS2sx, and the introduction of Prop Basic for the Propeller, and (yes another "and"), the introduction of the FLIP...for us that embed microcontrollers in our projects, could/would someone, perhaps, Mr. Green, detail the necessary downloads that I need to get myself started with the FLIP and Propbasic. (Boy, that is one long sentence..sorry) I have tried, even from the Parallax web site to do the above, and my computer just stalls..does nothing at certain points. (BTW, I am using Windows 7). Step, by step, would be nice. Just think of it like you are programming me...LOL.

Thanks to all...DenO

ADC Converter Question - MAX11646 or MAX11644 - 5V I2C, 3.3V Propeller - ADC Reference Confusion

$
0
0
Hello,
I am building a circuit to use either MAX11646 (10 bit) or MAX11644 (12 bit). These chips come in 3.3V and 5V versions, so I take it I need the 5V version to read in 0-5 volt analog signal? I am needing to read in a 0-5 volt analog signal, so it sounds like I need +5V on the VDD, and the REF to ground. I was planning on using 2x mosfets with 4x pullups for the SCL/SDA lines so the 3.3V propeller can interface the ADC since its powered off +5V now.

Also, I'm a bit confused how the REF is supposed to work. It says the 3.3V version has a 2.048V internal reference, and the 5V version has a 4.096V internal reference. It can also be configured for an external reference. Honestly I was just expecting to put ground on the REF so I could measure the 0-5V, but now I am confused on how this REF is supposed to work. Would someone mind explaining it to me? Can I get away with the 3.3V version still and measure 0-5V so I don't have to mess with the level shifting mosfet circuit? Any help/advice is greatly appreciated, thanks!

Here are the datasheets for reference:
http://datasheets.maximintegrated.com/en/ds/MAX11646-MAX11647.pdf
http://datasheets.maximintegrated.com/en/ds/MAX11644-MAX11645.pdf

SPIN code for Adafruit BTLE UART Friend ref JonnyMac

$
0
0
JonnyMac,
I had a look at the Adafruit BTLE UART Friend page and it certainly seems to be a useful and powerful device.
I can visualize many applications, especially for short range data transfer.
I wonder if you would mind sharing your SPIN code with us.
Many thanks for the heads-up on this device.

LED Matrix PacMan

$
0
0
Hello everyone,

Some time ago, I saw that someone had made a PacMan with a LED Matrix as display, something like 32x32 or so.
After some weeks of thinking which processor to use for these modules I finally decided that the Propeller would be as good a choice as any other uC. I decided today to finally give it a go.
It was as I should have expected, easier, fun and in a few hours (of finding where did I miss a '#' and things like that), I have something that quite works, if I had all modules:

The code is not yet finished, but the plan is:

6 8x8 WS2812 Modules (from aliexpress for like 7 € each).
1 Prop+EEPROM: 1 pin for LED data, and 4 pins for the 2 potentiometers in the joystick
1 Analog Joystick

A board and a battery :)
{Object_Title_and_Purpose}


CON
        _clkmode = xtal1 + pll16x                                               'Standard clock mode * crystal frequency = 80 MHz
        _xinfreq = 5_000_000

        MAP_SIZE = 16*24
        
        
VAR
  long  adch_value
  long  adcl_value
  long  display_buffer[384]
  long  counter 
   
OBJ
  adchoriz     : "ADC"
  adcvert      : "ADC2"
  serial       : "FullDuplexSerial"
  disp         : "WS2812" 
  
PUB Main
  serial.Start(31, 30, %0000, 9_600)
  adchoriz.SigmaDelta(@adch_value)
  adcvert.SigmaDelta(@adcl_value)
  disp.WS2812_Start(@display_buffer)    

  InitMap
  TranslateMap

  repeat
  
PRI InitMap | idx
  idx := 0
  repeat while idx < MAP_SIZE
    playmap[idx] := imap[idx]
    idx := idx + 1

PRI TranslateMap | idx
  idx := 0        
  repeat while idx < MAP_SIZE
    display_buffer[idx] := CLUT[playmap[idx]]
    idx := idx + 1 


DAT
imap          byte  "BBBBBBBBBBBBBBBB"
              byte  "B......BB......B"
              byte  "B*BB.B.BB.B.BB*B"
              byte  "B.BB.B....B.BB.B"
              byte  "B......BB......B"
              byte  "B.BB.B....B.BB.B"
              byte  "B....BBBBBB....B"
              byte  "B.BB........BB.B"
              byte  "B..B.BB..BB.B..B"
              byte  "BB.B.B....B.B.BB"
              byte  "B..B.B....B.B..B"
              byte  "BB.B.B....B.B.BB"
              byte  "BB.B.BBBBBB.B.BB"
              byte  "B..............B"
              byte  "B.BBBB.BB.BBBB.B"
              byte  "B..............B"
              byte  "B.BBB.BBBB.BBB.B"
              byte  "B.BBB.BBBB.BBB.B"
              byte  "B*..B......B..*B"
              byte  "BBB.B.BBBB.B.BBB"
              byte  "B......BB......B"
              byte  "B.BBBB.BB.BBBB.B"
              byte  "B..............B"
              byte  "BBBBBBBBBBBBBBBB"
        
playmap       byte  0 [MAP_SIZE]

CLUT          long  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
              long  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
              '                                       *                    .
              long  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $1F1F0000, 0, 0, 0, $07070000, 0
              '             1          2          3          4          5
              long  $3F000000, $003F0000, $003F3F00, $00003F00, $42420000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
              '     
              long  0, 0, $00000F00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0



        

Display driver
{WS2812 Matrix driver


Supports refresh of a 16x24 RGB led matrix all at once
Matrix data is read from HUB and latched in COG memory


Timing WS2812, :


     350u  800u
     __
 0  /  \________/

     700u  600u
     _____
 1  /     \_____/

 Ale 500

}


CON

DISP_PIN        =16


PUB WS2812_Start (buffer)
    cognew(@start, buffer)      ' lauch display driver
   
DAT
              org


start         or        DIRA, DISP_OUT
              andn      OUTA, DISP_OUT


              mov       task_cnt, task_20ms
              add       task_cnt, CNT
              waitcnt   task_cnt, task_20ms     ' wait for first cycle


updatein      mov       hubsrc_ptr,par
              mov       lcnt,#384               ' 16x24 RGB matrix one long per RGB LED
              mov       x,#0
               
updatein_loop mov       hubsrc_ptr,x
              andn      hubsrc_ptr,#$78
              test      x,#64 wz
        if_nz or        hubsrc_ptr, #8
              test      x,#8 wz
        if_nz or        hubsrc_ptr, #16
              test      x,#16 wz
        if_nz or        hubsrc_ptr, #32
              test      x,#32 wz
        if_nz or        hubsrc_ptr, #64
              shl       hubsrc_ptr,#2
              add       hubsrc_ptr,par
              rdlong    pixel, hubsrc_ptr        ' load pixel data from buffer

compute       mov       bcnt, #24
bit_loop      shl       pixel, #1 wc
              or        OUTA, DISP_OUT
              nop                               ' 50 ns        
              nop                               ' 100 ns
              nop                               ' 150 ns
              nop                               ' 200 ns
              nop
              nop
        if_nc andn      OUTA,DISP_OUT           ' clear if zero
              nop                               ' 400 ns
              nop                               ' 450 ns
              nop                               ' 500 ns
              nop
              nop                               ' 600 ns
              nop
              andn      OUTA,DISP_OUT           ' clear for 1
              nop                               ' 750 ns
              nop                               ' 800 ns
              nop                               ' 850 ns
              nop                               ' 900 ns
              nop                               ' 950 ns
              nop                               '1000 ns
              nop                               '1050 ns
              nop                               '1100 ns
              djnz      bcnt, #bit_loop
              add       x, #1       
              djnz      lcnt, #updatein_loop

              waitcnt   task_cnt, task_20ms
              jmp       #updatein
              
x             long      0
bcnt          long      0              
lcnt          long      0
pixel         long      0
ADD_1_D_FIELD long      1<<9                    ' add 1 to D field  
DISP_OUT      long      1<<DISP_PIN
task_cnt      long      0
task_20ms     long      50_000*80              ' 20 ms refresh task
hubsrc_ptr    long      0
cogdst_ptr    long      0
              org       128-16
pixel_data    res       384
             


                      

Tachometer circuit problem

$
0
0
I have a capacitive pick-up circuit that was copied from a tach/egt unit.

The problem is the transistor used in the circuit. The part # is a npn,
but the symbol used is a pnp.

Another problem is the circuit itself, IMO, it is an NPN style, and the
output to the propeller should be low?

++ moderator, I may need to ask more questions related directly to
the propeller.

Thanks

Bill M.

SD Memory Socket

$
0
0
What is the correct Digikey part number for the SD Card Socket on the Propeller Activity Board?

Discovery

RAM checksum error

$
0
0
In the latest batch of my stepper controller boards there were two where I had problems programming them. The propeller tool tells me "RAM checksum error" when I hit F10 or F11. What could be the possible cause of this?

There are two propellers on the board which share one EEPROM and the P28..31 signals. But I verified that the second is held in reset while the first is being programmed. Both props also share the same clock but I think that doesn't matter because they run in RCFAST mode while being programmed. Supply is stable at 3.29V. It's a two layer SMT board with the bottom layer as almost solid ground plane. I have four 0.1µF caps near the supply pins at each prop. I don't see any obvious soldering error. If the EEPROM was broken, I think, it should say "EEPROM error" instead of "RAM". I use the original prog-plug from Parallax.

Can someone give me a quick check on the features of the ASC+

$
0
0
I've been going back and forth in the various documentation for the ASC+ board. Could someone please check my understanding? I don't want to take up anyone's time so a quick yes or no will be sufficient.

On tha ASC+ there is 2X8 header on the right side of the board (board is oriented so the silk screened text is right side up).

The top 6 pins are labeled "SPI" or "ICSP". Individually the pins are P12, +5V, P13, P11,Reset & GND.

I assume that these are the same pin 11-13 that are available on the other headers so they are all available elsewhere.

These pins are in conflict with the servo drivers on the board of education shield as well as the connection to the SD card that uses pins 8 & 11-13. I already know that there are other options for an external SD card

The next 8 pins are labelled P16-23 this is the Aux header and gives me access to 6 additional I/O pins on the propeller as long as I keep it to 3.3 volts or provide my own current limiting resistors.

I don't see a reference to pins 14 & 15. In the schematic, pins 14 & 15 are labelled SCL & SDA which are for I2C.

The website states "PWM, I2C, SPI, UART and more, in any combination on any pin." but the l2C & SPI labels on the board seem to be pre-assigned. Is this merely a default that can be set to something else as needed?

The last 2 pins are labeled 6 & 7. Are these nalog channels 6 & 7?

Problems programming EEPROM

$
0
0
I'm using proploader to program my Propeller. It's on COM4 and when I run it, it works OK. It's only when I try and burn the image into the EEPROM.

My assumption is that I have something wired incorrectly or maybe proploader doesn't work with my 128K EEPROM.

It's a 25AA1024. All of the voltages check out and I have plenty of decoupling caps.

I have the following wiring:

/HOLD = VCC
SI = SDA from Propeller
SCL = SCL
/WP = VCC
SO = Not connected
/CS = GND

Here is the message I get when I try and program:
Delivering second-stage loader
Downloading file to port COM4
2044 bytes sent
Verifying RAM
Programming EEPROM
EEPROM programming error: expected fffb4600, got fff68c00
ERROR: Download failed: -1

Any ideas?

Thanks

Checksum help please~

$
0
0
I have made a sensor that uses a propeller for measuring the earths magnetic field. My intention was to send these data to a computer that is running a program to chart the data. My issue is the checksum. I have kind of an idea how it works when receiving data but I am really stuck with sending.

1.) from my best guess the program uses NMEA sentences but what kind of Checksum I am unclear, is there not multiple types of Checksum, my wiki research shows all sorts - but again I could be wrong.

Here is a sample of the string I am sending and I hope is in a NMEA style.
  $GPHDT,120.00,T*00<CR><LF>

And here is the crude method currently packing it all together into a string, but as you can see I have 00 as the Checksum because I cant calculate a value - I have no idea where to begin.
Serial.str(String("$GPHDT,")) 
  Serial.str(Math.FloatToFormat(MAgnetic_North,7,3))
  Serial.Char(",")
  Serial.Char("T")
  Serial.Char("*") 
  Serial.Char("0")
  Serial.Char("0") 
  Serial.char(13)
  Serial.char(10)

So I ask my fearful coders to offer some ideas and most importantly something I can validate and check or use to make this function work.

Thanks in advance :)

Object Exceeds Runtime memory limit by x longs

$
0
0
Hello All, hope all is well :cool:

I have run into a strange issue compiling with my latest project. As the program grew in size, I had to save some space so it would compile. I thought moving all the variables (offset, offset2, offset3) from the local level and use 3 global bytes would save space. It went from some 60 bytes to 3, how could it not right? Nope, something with a miss... haha

The image below is a screenshot of when I try to compile for each version of code. One doesn't use global vars and one that trys to. The one without compile with 718 longs in change, and the other using global variables does not compile. Anyone have an idea? I saw the other thread but didn't get an answer or perhaps just missed it thinking it was something else.

variable%20difference.png?dl=1

The code Im working on is private sensative so sorry I can't upload it to have others to try to compile to make sure there isn't some comma or something I missed. I believe I found a strange thing; I am oddly good at these. haha :thumb:

Thanks for the help,

JD

converting strings

$
0
0
I was on a roll this morning and now I'm stumped. I have several "if" statements that I need to compare a known variable to an incoming string. I believe my problem is that I need to convert the string to an array before the if statement? any thoughts? the first print command works perfect I get MAIN or VIC1 but everything I have tried never gets to the second print command.
char  rxchar = 0;                    // 
                 int   i = 0;
                 char string[4];
             
                fdserial_rxFlush(lcd);                   // flush rx buffer

            while(rxchar != '\r' && rxchar != '\n') { // no CR or LF
               rxchar = fdserial_rxChar(lcd);         // get char
               string[i] = rxchar;                     // append char
               i++;
               }
             string[i] = '\0';                           // append NULL 
             
                pause(100);
                print("name= %s\n",string);  
                






       if (string == "MAIN") {       // 33333  MAIN 
       
           print("inside\n");
 
           }

Hook an antenna to your Propeller, and listen to the radio! (New shortwave prog

$
0
0
Okay, the title's a bit of a come-on, since it's not a very good radio; but it's an AM radio, nonetheless, with digital tuning to boot. Moreover, it can be built without any additional active components. If you have a Propeller Demo Board, a resistor, cap, inductor, wire antenna, and a decent ground are all you need.

THEORY

Now that I've got your attention, here's the theory behind it. Most consumer radios on the market are superheterodynes. In such receivers, the incoming RF signal is "mixed" with a sinewave coming from a tunable local oscillator (LO). Mixing is basically analog multiplication, which produces, in addition to the original RF and oscillator signals, signals which are at both the sum and difference frequencies of the two. The output of the mixer is filtered to a single, fixed, "intermediate frequency" (IF) and then amplified. In AM (amplitude modulation) broadcast radios, which tune from 550KHz to 1600KHz, the IF is usually at 455KHz. So, by varying the frequency of the local oscillator from 1005KHz to 2055KHz, one can obtain a 455KHz difference signal from the mixer for the entire broadcast band. The output of the IF amplifier is then introduced to a "detector", which rectifies and low-pass filters the IF signal to produce an audio waveform.

A receiver similar to the superheterodyne is the direct conversion receiver. In such a receiver the "intermediate frequency" is zero. In other words, the LO is tuned to the exact frequency you want to listen to, and the difference signal is simply the detected audio, which can then be lowpass filtered and amplified. But there's a catch: the local oscillator must not only have the same frequency as the desired signal, it must also have the same phase. To understand this, suppose the incoming RF carrier and the LO were 90° out of phase with each other. When multiplied together, these two signals would effectively cancel each other out, and you'd hear nothing. When they're in phase, the positive swings would multiply, returning positive results, and the negative swings would multiply, also returning positive results. But getting the LO to lock onto an incoming carrier can be tricky — especially if that carrier is weak.

One way around this is to have two LOs, 90° out of phase with each other, and two mixers. The idea is, what one LO oscillator misses by having the wrong phase, the other will catch. In fact, the outputs from the two mixers can be combined in such a way that the actual LO phases are irrelevant, so long as they're 90° apart. The formula for doing so is:

····Audio Amplitude = sqrt(I2 + Q2),

where I is the output of one mixer (from the "In-phase" LO), and Q is the output of the other mixer (from the "Quadrature-phase" LO).

Well, that's enough theory to lay the groundwork for the Propeller receiver. I've really glossed over a lot of stuff, but this is a forum post, not a book, and I want to get to the actual hardware and software.

APPLICATION

The use of a Propeller counter as the basis for an analog-to-digital converter (ADC) is now well-established. So why not simply attach an antenna to the input of one of these ADCs and see what comes out? Basically, that's what I've done. Here's a schematic:

attachment.php?attachmentid=55182

The antenna (a wire strung across the ceiling of my shop) is connected, through an inductor to both digital ground and earth ground. I used a 330uH power inductor I found in my junkbox. It actually worked better than the ferrite antenna scavenged from a cheap transistor radio. A bunch of enameled wire wound on a plastic sewing machine bobbin worked almost as well, too. I'm sure Beau Schwabe (i.e "He Who Understands Inductors and Knows What to Do with Them") can shed a lot more light on the choice of inductors and why one is needed here. I just grabbed what I had until I found something that worked. My "earth ground" consists of the ground clip from my scope attached to the ground stud on the Demo Board. My scope input return ground and its AC protective ground are connected together, thence back to the breaker box and to a metal grounding rod. (By the way, I live in a fringe area for AM reception. If you live in a city with strong AM transmitters, you may not have to go to all this trouble.)

The antenna also connects, through a capacitor, to pin A3 of the Propeller. This is the "analog" input terminal. The feedback comes from A4 through a 470K 0805 SMD resistor, which I soldered between pins A3 and A4 right on the chip itself. I've omitted the usual filter caps to Vdd and Vss (Gnd), choosing instead to let the inherent input capacitance of A3 do the filtering. This keeps both the input impedance and frequency response of the ADC high, which is necessary for detecting weak RF signals. During positive swings of an incoming signal, A4 will be sending more 0s than 1s to counterbalance it; during negative swings, more 1s than 0s. One counter can do this, set up in the "positive-with-feedback" special analog mode. Unlike the usual ADC usage, though, we're never going to read this counter again. It's just that string of 1s and 0s fed back from A4 that we're interested in.

I love the Propeller's counters! I don't know if Chip knew what all could be done with them when he designed them, or if he just had an inkling that, with the right set of features, almost anything could be accomplished. In any event, the counters make ideal local oscillators and mixers! The oscillator part is pretty easy: just configure two counters as numerically-controlled oscillators (NCOs) in quadrature with each other. The frequency will be the frequency of the station you want to tune in. So, if I want to receive KIXI 880 in Seattle, I set up both counters to output 880KHz square waves, 90° out of phase with each other (i.e. PHSB = PHSA + $4000_0000).

Now comes the magic part: the mixers. The counters can be configured to count up whenever two inputs satisfy a Boolean conditional. The Boolean equation can be anything you want: AND, OR, NAND, NOR, XOR, you name it. I used XOR. Each "mixer" counter gets two inputs: the feedback from A4 and one of the LO outputs. If the LO output is low when A4 is feeding back 1s, predominantly (i.e. when the antenna signal is low), the counter will count up at a fast clip. Likewise, if LO is high when A4 is feeding back 0s, predominantly, the counter will, again, count up at a fast clip. In other words, the counter will count up faster when an incoming RF signal is in phase with the LO than when it's not. Moreover, the rate at which it counts up will be proportional to the amplitude of that signal. So, to read the amplitude of a signal in phase with the LO, one need only zero the mixer counter, wait awhile, then read it to see how far up it counted. On average, there will be as many increments during the sample period as non-increments, so the mean (average) count will be half the number of system clocks occurring during the same period. Any signal that's out of phase with LO, or of a different frequency, will contribute as many increments as non-increments, thus having no effect on driving the net count away from the mean.

Therefore, after each sample period, we can subtract the actual count from the mean count to get the instaneous amplitude of the signal. By doing this for both the I mixer and Q mixer, squaring the individual amplitudes, adding them, and taking the square root, we get the signal's amplitude, which can then be fed to the audio output: another counter in DUTY mode, feeding a lowpass filter. (I used A10 on the Demo board, which has the filtering hardware already in place.)

The length of the sample period will affect two things: the audio frequency response and the signal-to-noise ratio. Like most things in life, each of these two desirable qualities increases at the expense of the other, so you have to strike a balance. I got the most pleasing results with a 16KHz sample rate, which yields an 8KHz audio bandwidth. This is about as good as AM radio audio can get anyway, since the stations are spaced 10KHz apart. You can lower the sampling rate to get less static, but the audio starts to sound more "boomy".

SUMMARY

To summarize, the receiver uses six counters (spread over four cogs), as follows: (1) ADC (actually just a digitizing RF amplifier), (2) Local Oscillators in quadrature, (2) Mixers, and (1) Audio Output. Here's a block diagram:

attachment.php?attachmentid=55118

The counters do virtually all the work. There's not a lot of code required, outside of setting up the counters, reading them, and shuffling data between them via the hub. The attached program is configured as a scanner for the AM broadcast band. It increments continuously by 10KHz steps from 550KHz to 1600Khz, pausing at each frequency for three seconds, which is long enough to tell if something's there. It displays the frequency on a TV monitor, via tv_wtext (included). I've also used it for LF reception below the broadcast band with some minor success. As I stated in the intro, it's not a very good receiver — in fact it sounds pretty crappy and noisy. If, like me, you live in a fringe area, you may be disappointed by its performance. But, even then, it does illustrate the capabilities of those amazing Propeller counters. And that, really, was the main point.

-Phil

Update: Owing to advice received from Beau Schwabe, based on his own testing, I've changed some component values. The inductor is now 500uH; the feedback resistor, 10M; the coupling cap, 0.047uF; and the antenna, a 2-meter-long vertical wire. The attached schematic reflects these changes, which did lead to an improvement in performance.

Also, I've corrected a bug in the program's square routine. The bug should have had no effect on the small values involved, but could cause trouble if adapted for other uses.

In a later post (17 Aug 08), I show how to wind the required inductor using readily-available parts. There's also a photo of the complete setup, with a detailed look at the feedback resistor.

Post Edited (Phil Pilgrim (PhiPi)) : 6/11/2010 11:11:36 PM GMT

Sanity Check on R-2R VGA DAC

$
0
0
I have to be losing my mind here or something, because I'm at a loss as to why I'm getting the following results from this LTSpice simulation of a KNOWN-GOOD R-2R VGA DAC that I'm going to hook up to my Propeller 1, referenced from @PhiPi:

vga_full_monty.gif

This is the circuit and the results I'm getting:

5R5f4qV.png

I'm getting double the output I should be, and I cannot for the life of my figure out why.

I'm simulating 01, 10, and 11 voltage levels for Red, Green, and Blue (respectively).

Any one see something stupidly obvious? Thanks!

Update:

The physical version of the circuit results in the same behavior:

8PYFHoj.png

You can see the signal properly stepping through 00, 01, 10, 11 voltage levels. However the peak-to-peak measurement proves the DAC is only attenuating to 1.4V, not 0.7V.

WiFi Loader

$
0
0
I was considering buying an Activity Board WX and the ESP8266 WiFi board. But I cannot find a program to load Spin files (binary or EEPROM) over WiFi. I went to GitHub and looked at PropLoader but don't want to have to install C/MiniGW tools to build from source. On the GitHub site I was unable to find any documentation on how to use PropLoader. It saddens me that support for Spin has pretty much gone away.

John Abshier

Propeller Controlled Oscillator for ne602

$
0
0
In Phil's radio thread I mentioned wanting to use a Propeller to control the oscillator for a ne602 based shortwave radio. The goal is to improve the stability over the colpitts oscillator which drifts. Ideally I could create a DDS VFO and have a full coverage receiver, but I'll settle for a simple feedback circuit to improve stability in the short term.

Attached is an image of the oscillator portion of the schematic. This should be familiar to anyone who's seen ne602 based radios, as they all use roughly this design. I attached leads to +9 volts, ground, ne602 pin 7, and the top of the diode D1. My plan is to first measure the existing oscillator frequency on pin 7, then worry about controlling it via PWM and a transistor.

My first concern is the voltage at pin 7 as I don't want to fry the Propeller. The ne602 is powered by 5 volts, but up to 9 volts is reverse biased across the diode. So I don't know what voltage is present at pin 7. I used a DMM on AC and DC voltage, and it seems close to zero with either measure.

Does this mean I can connect it directly to a Propeller pin, or should I use a resistor just in case?

P1v on a Prop123-A9?

$
0
0
Has anyone used the Prop123-A9 board for playing with P1v?

Propeller ANSI / VT-100 Terminal with VGA and USB keyboard support

$
0
0
Hi,

This is a serial terminal add-on board designed for the RC2014 Z80 computer. It adds VGA video output as 80x25 text (720x400@70Hz) with ANSI / VT-100 terminal emulation, and USB keyboard input. Using a single Parallax Propeller microcontroller running at 80MHz.

Some images of the first prototype board:

board.jpg image3.jpg

Source code available from:
https://github.com/maccasoft/propeller-vt100-terminal

VGA driver from:
https://github.com/konimaru/waitvid.2048

USB host driver from:
https://github.com/SaucySoliton/propeller-usb-host

Have fun!

Does The Propeller Chip Have Built-In DRAM ?

$
0
0
I would like to know if the built-in RAM on the propeller chip is DRAM ?

If yes, I could implement a True Random Numbers Generator:
http://ieeexplore.ieee.org/document/4733087/

Also, is it possible to have more than one cog simultaneously access the input-output pins ?
Viewing all 2835 articles
Browse latest View live