RetroBrew Computers Forum
Discussion forum for the RetroBrew Computers community.

Home » RBC Forums » General Discussion » Experimenting with P90CE201, a 68000 compatible microcontroller (Introducing X688)
Experimenting with P90CE201, a 68000 compatible microcontroller [message #6859] Fri, 06 December 2019 06:41 Go to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
I recently learned about a 68000-like microcontroller from a Facebook posting. P90CE201 is made by Philips in the early 1990's that features full 68000 software compatibility with 8-bit data bus and 24-bit address bus; it also has a number of on-chip peripherals including I2C, UART, timers, and general I/O. It is only available in 64-pin quad flat pack, but the lead spacing is a very generous 1mm so it is not difficult to solder by hand.

The Facebook discussion also mention a reliable source for P90CE201 on eBay for $2.92 each (it is all sold out now, but another P90CE201 is UTSource for $6 each). I purchased 6 from eBay and designed a prototype board to experiment with it.

I documented the design here:
https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:x688

A few interesting highlights:
* With 22MHz clock (P90CE201 is rated to 24MHz), it runs a mandelbrot benchmark about the same speed as a 8MHz 68000.
* CP/M68K is ported. The prototype board only has 512K EPROM and RAM and no mass storage, so the CP/M68K contains only few system files and 256K of RAM disk (see attached screen shot).
* Lee Davison's EhBasic is ported and used to run the mandelbrot benchmark so it can be compare to others.
* I2C can drive a 128x64 OLED display and play Conway's Game of Life. https://www.youtube.com/watch?v=DbL4SoDDJQU
Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #6863 is a reply to message #6859] Sun, 08 December 2019 09:47 Go to previous messageGo to next message
norwestrzh is currently offline  norwestrzh
Messages: 196
Registered: November 2015
Senior Member
Nice little 68000 compatible, Plasmo!!!

I built a small (roughly 5.5" x 5") 68020 SBC that is loosely based on your "tiny68020" design. To keep the size of the PCB down, I ditched a lot of the "goodies" that really ought to be included. It is hard wired to an 8-bit data bus, and there is no logic to re-map the R/W memory to address 0 (it makes use of the VBR to operate with this configuration). The EEPROM is at 0x0 and the SRAM is at 0x100000. I was pleasantly surprised at how fast the 68020 is, even with just an 8-bit data bus. It runs at 20 MHz, and completes the ASCIIART demo in ~11 secs. (compiled with XGCC)! I haven't, as yet, tried to get the FPU working (you can see the vacant space for it on the PCB). [I've been spending a lot of time on a couple of S-100 Z80 projects.] With the funky memory map, there is no pre-compiled version of CP/M 68k, that I can find, that will work. I've been thinking about trying to recompile CP/M for it (using XGCC), OR building a more full-featured (and thus larger, and more costly) version? Maybe it's a candidate for FUZIX or ucLinux?? But with just 512k x 8 SRAM, ucLinux might be a stretch. *grin*
  • Attachment: PC080835.JPG
    (Size: 825.26KB, Downloaded 427 times)
Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #6864 is a reply to message #6863] Sun, 08 December 2019 10:40 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Nice! You may be able to kludge in a 74ls157 multiplexer and use one of the 68681 I/O port to swap the RAM/EPROM chip selects. If you use SPLD like GAL22V10, you should be able to get rid of the TTL logic and reduce board size to 4"x4" and have 32-bit wide RAM, which will give you 2 meg of RAM using AS6C4008.

Have you ran the ASCIIART compiled with XGCC on Tiny68K? The BASIC compiler that came with CPM68K is very inefficient. I think the more efficient ASCIIART can run significantly faster even on a 8MHz 68000.
Bill
Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #6865 is a reply to message #6864] Sun, 08 December 2019 11:14 Go to previous messageGo to next message
norwestrzh is currently offline  norwestrzh
Messages: 196
Registered: November 2015
Senior Member
>> Have you ran the ASCIIART compiled with XGCC on Tiny68K?

Just tried it again (I did a lot of timing tests way back, but I can't remember now, how they came out!!Wink

It runs in about 17 sec. Of course, there is some load time involved there to bring it in from the compact flash. The test I ran on the 68020 is just jumping to the code in RAM.

>> The BASIC compiler that came with CPM68K is very inefficient.

Understood! XGCC builds *very* efficient 68k code, but the images are NOT small. *grin*

Roger
Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #6870 is a reply to message #6865] Fri, 13 December 2019 11:34 Go to previous messageGo to next message
norwestrzh is currently offline  norwestrzh
Messages: 196
Registered: November 2015
Senior Member
Hey Plasmo -- Just learned that B.G. Micro is running a sale (today only) that includes:

MC68EN302PV25BT (144-pin LQFP) - $.99
Altera EPM7160ELC84-20 - $1.99

Thought you might be interested (grin). That 68302 looks like it might be fun, but how the heck can a hobbyist solder a 144 LQFP??

Roger

(I have no connection whatever with B.G. Micro, except as a happy customer!Wink
Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #6872 is a reply to message #6870] Fri, 13 December 2019 12:56 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Roger,

Thanks for thinking of me. Unfortunately I already have a lot of 68302 both in LQFP and PGA. The LQFP spacing is 0.64mm, so it is easier to hand solder than 0.5mm. In fact it is not too difficult (not easy, either) to prototype with LQFP. See the attached photo of a 68302 LQFP (the part glued upside down).

The Altera 7160E is 3.3V. I have not gotten into the 3.3V arena, and if so I'll probably use the MAX V family.

These are definitely great price, however.

Bill


Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #6874 is a reply to message #6872] Fri, 13 December 2019 16:54 Go to previous messageGo to next message
norwestrzh is currently offline  norwestrzh
Messages: 196
Registered: November 2015
Senior Member
Me again, Bill,

>> The Altera 7160E is 3.3V. I have not gotten into the 3.3V arena, and if so I'll probably use the MAX V family.

Are you sure? Digikey shows it as a 4.75-5.25v part (we're talking about the Altera EPM7160ELC84-20 ??Wink.

I hope it's not 3.3v -- I ordered a few. Embarrassed

Roger
Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #6875 is a reply to message #6874] Fri, 13 December 2019 20:05 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Roger,
You are right that EPM7160E is 5V part. I probably mixed it up with EPM7160A part. But the bad new is EPM7160E does not have JTAG programming pins, so you'll need a dedicated programmer which may be difficult to find.
Bill
Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #6895 is a reply to message #6865] Thu, 26 December 2019 11:43 Go to previous messageGo to next message
etchedpixels is currently offline  etchedpixels
Messages: 333
Registered: October 2015
Senior Member
I've not had big problems with gcc 68K cross build code size but a lot of it isn't about the compiler in my experience but whatever runtime you are dragging in and how well designed that runtime is.

gcc -Os will also generate smaller (sometimes far smaller) code but at a slight speed cost.

Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #6909 is a reply to message #6895] Thu, 02 January 2020 20:11 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
This is a motherboard with 3 expansion slots based on P90CE201. A compact flash interface is added so it is ready to run CP/M68K. Drive A is a ROM disk in the 1/2 meg EPROM that contains a few critical CP/M68K executables such as GKERMIT.68K for file transfer and Init.68K for initializing CF disks. The CF contains drive B: to drive E: The screen capture shows the file directory of drive E:

The motherboard also has a dedicated I2C connector to interface to a 128x64 OLED display. The picture shows Conway's Game of Life playing on the OLED display.

The CF interface requires termination resistors for the 8 data lines and low-pass filter for the CF read signal which is a known issue with CF interface with Tiny68K. I thought I've solved it with subsequent Z80 designs so termination & signal conditioning are no longer necessary, but it showed up again with P90CE201. So this version of P90MB requires engineering changes for CF interface to work.

The design information is here:
https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:p90mb

Bill
Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #6910 is a reply to message #6909] Fri, 03 January 2020 09:08 Go to previous messageGo to next message
wsm is currently offline  wsm
Messages: 232
Registered: February 2017
Location: AB, Canada
Senior Member
Having implemented a couple of CF interfaces, I haven't had timing issues with IORD*. However, my CPLDs also take care of the appropriate timing. Specifically the address (DA0:2 & CS0:1) setup and hold times before/after IORD* and IOWR*. In mode 0 they're a minimum of 70/20ns and down to 25/10ns in mode 4. Rather than acting as a low pass (i.e. noise) filter, I wonder whether your filter is actually acting to just delay the IORD* signal.

FYI: My designs use the lower 8 data lines for registers and all 16 for data and I haven't had issues requiring termination.
Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #6911 is a reply to message #6910] Fri, 03 January 2020 12:05 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Setup and hold time of IORD and IOWR are very important. I also use CPLD to generate the needed delay. The problem with IORD signal conditioning has to do with ground bounce when data transition from all zero to all one. The ground bounce generates a glitch on IORD which clocks in next data. Data is out of sync after that. It depends on multiple of variables: the CF brand (CISCO brand is particularly reliable), the bus loading (add more expansion cards can cause problem), whether CF data bus is isolated from processor bus and the width of databus (16-bit is more sensitive than 8-bit). It is a complicated problem and require quite a bit of testings.
Bill
Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #7933 is a reply to message #6911] Thu, 03 September 2020 18:30 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Better late than never, this is Kuno, a repackaged P90MB for Arduino Mega enclosure. I named it Kuno where "K" is from 68K and "uno" is from Arduino. CP/M68K is ported to Kuno. Here is Kuno homepage:
https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:kuno
Bill
Edit: The clock is 22MHz but CPU is running 1/2 of 22MHz or at 11MHz. The performance is roughly the same as 8MHz 68000.
/forum/index.php?t=getfile&id=1838&private=0

[Updated on: Thu, 03 September 2020 18:37]

Report message to a moderator

Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #7936 is a reply to message #7933] Fri, 04 September 2020 07:52 Go to previous messageGo to next message
quarterturn is currently offline  quarterturn
Messages: 86
Registered: April 2018
Member
I can see why you use the Altera Max CPLD with old 5V stuff - I've tried to find something Altera FPGA still available as new and 5V tolerant and can only come up with EPF10K10QC208-4 - but that's a $30 part.

I've got one of those ALTERA Cyclone IV EP4CE6 $20 trainers (7-seg, LEDs, buttons, VGA port etc...Wink on order as FPGAs intrigue me and it's possible to do a retro Linux-capable system with something like a MC68040RC40A if you stick to 3.3v parts. Yeah, I know you can stuff the CPU into a modern FPGA, but I like to see the physical chip.
Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #7937 is a reply to message #7936] Fri, 04 September 2020 08:57 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
MAX7000 are cheap. MAX7032S is a $1.50 or cheaper in modest quantity. It can replace many TTL devices.

68040 is available in 3.3V, so given a decent size FPGA, it is quite possible to build a complete system with just an oscillator, a 68040 and a FPGA, complete with graphic and keyboard. Running Linux will require fair size external DRAM.
Bill
Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #7938 is a reply to message #7937] Fri, 04 September 2020 11:18 Go to previous messageGo to next message
quarterturn is currently offline  quarterturn
Messages: 86
Registered: April 2018
Member
Hmmm. I see utsource has EPM7032LC44-15 pulls for $1.14 in quantitiy 10+. I've got a PLCC44 adapter for my TL866II already, so I could try breadboarding stuff. I'll give it a shot!
Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #7944 is a reply to message #7938] Sun, 06 September 2020 00:16 Go to previous messageGo to next message
Yves-D. is currently offline  Yves-D.
Messages: 21
Registered: January 2020
Junior Member
Take care when buying used Altera EPM7xxx from Ebay.
I've got around 20 of used ones that have the JTAG programming interface disabled (to block reverse-engineering attempts).
Sometimes an entire lot from Ebay is locked.
In this mode the Altera USB Blaster is useless as it can't override the JTAG-Lock. The USB Blaster simply won't find a connected EPM7xxx.
You'll need one of the old high-voltage parallel programmers to clear the lock (very $$$$ when new, even $$ today - with obscure unobtainium Win95 software from defunct companies)
My latest version of TL866II will only program Atmel and Lattice GALs/CPLDs. No Altera chips are listed.

Yves

[Updated on: Sun, 06 September 2020 00:24]

Report message to a moderator

Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #7946 is a reply to message #7944] Sun, 06 September 2020 05:26 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
That is a very good point. While I generally have good lucks buying used obsolete parts from eBay, CPLD had been problematic, just as you've described. Nowadays I only buy CPLD from utsource.

TL866 does not program Altera CPLD, USB blaster clone is readily available on eBay for less than $5.
Bill
Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #8007 is a reply to message #7946] Fri, 09 October 2020 07:46 Go to previous messageGo to next message
quarterturn is currently offline  quarterturn
Messages: 86
Registered: April 2018
Member
Oh yeah, I only mentioned the TL866 II in regards to 'borrowing' the PLCC44 adapter to use the EPM7032LC44-15 on a breadboard. I do have a USB Blaster clone.

I recenetly finished up my sidetrack into RC2014 stuff (built a Black Adder Z180 setup, TMS9928 video card, YM2149 soundcard) so maybe soon I'll try some Altera CPLD stuff.
Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #8010 is a reply to message #8007] Sat, 10 October 2020 04:58 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
You can do a lot even with a lowly 44 pin PLCC EPM7064S. I've a EPM7064S prototype board design for RC2014 that can be programmed to have a serial transmitter and 128 bytes of ROM. That's sufficient program space to provide diagnostic function for 8-bit processors and display the results over the serial port. All you need is add a 8-bit processor. The purpose of such board is serving as a CPU tester, mainly for whatever 8-bit CPU you can buy cheaply on eBay, mostly from China. I've found these sellers are quick to refund you if you can show their parts are not good; the key is having a tester to check out these parts. An example of such tester for Z80 is here: https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:diagrc#hardware_diagnostic

The design files (including Gerber photoplot files) for EPM7064S prototype board is here: https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:protorc3

Bill

Edit:
Here are small collection of CPU cards (8085, 6809, 68008, Z80, 6502) that plug into RC2014 backplane:
8085:
https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:g8pp:g8ppbase8085#cpu_card
6809:
https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:g8pp:g8ppbase6809#cpu_card
68008:
https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:g8pp:g8ppbase68k8#cpu_card
Z80:
https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:g8pp:g8ppbasez80#z80_cpu_card
6502:
https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:g8pp:g8ppbase6502#cpu_card

I've developed the hardware diagnostic tester for Z80, but have not done the other 4 processors.

[Updated on: Sat, 10 October 2020 05:08]

Report message to a moderator

Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #9975 is a reply to message #6859] Sun, 19 June 2022 10:02 Go to previous messageGo to next message
mikesmith is currently offline  mikesmith
Messages: 80
Registered: March 2018
Member
Better late than never, I guess; I've added support for the P90CE201 and P90MB board to my M68k emulator.

https://github.com/John-Titor/py68k

So far it works well enough to boot the ROM and run a simple BASIC program.

While I was looking around, I also encountered the P90CL301, which looks like a pretty fun improvement over the P90CE201...
Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #9976 is a reply to message #9975] Sun, 19 June 2022 18:00 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
It has been a while. Thanks for the reminder about P90CE201. This is timely because I'm working on a project to display animation on I2C based OLED display. Bit banging is too slow so I need a real hardware I2C controller. I've completely forgotten about P90CE201!

Do you have a source for P90CL301?
Bill
Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #9977 is a reply to message #9976] Sun, 19 June 2022 22:20 Go to previous messageGo to next message
mikesmith is currently offline  mikesmith
Messages: 80
Registered: March 2018
Member
plasmo wrote on Sun, 19 June 2022 18:00
Do you have a source for P90CL301?
Glad to help with the reminder. Cool Sorry, I don't have a source for the '301. UTSource claim to have them, but I've never dealt with them so have no idea how believable their claim would be.

It'd be neat if they did, because it's a 3v3 part and that would open up a bunch of interesting options...

Re: Experimenting with P90CE201, a 68000 compatible microcontroller [message #9980 is a reply to message #9977] Mon, 20 June 2022 08:58 Go to previous message
mikesmith is currently offline  mikesmith
Messages: 80
Registered: March 2018
Member
Of curiosity I did a bit more digging. There was a P90CL302 as well; both appear to have been aimed at GSM handsets. There is *very* little data about them to be found online. Interestingly the P90CE201 turns up in the service manual for a Bang and Olufsen television.
Previous Topic: sbc-188 v3
Next Topic: What is UNA's FSFAT.BIN?


Current Time: Wed Mar 19 03:30:20 PDT 2025

Total time taken to generate the page: 0.00681 seconds