Quark-85 Demo Kube - 184 x 240 VGA with 8 Colors and Sound on an Tiny85!!

Go To Last Post
438 posts / 0 new

Pages

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Very nice Brad, Im looking forward to the release of Quark85 even more now so I can play with the UnLoader. Nice.....

Last Edited: Mon. Jan 25, 2016 - 08:30 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks,

 

I am back onto one of my other projects while I have some time at home.

Next time I do some traveling, I will continue on the Quark series.

Going to be starting some PIC projects soon as well, now that Skynet has taken over.

On the bright side, most of the PIC video projects out there are pretty low tech!

 

I am currently deep into designing a fast CPU from 7400 logic, so at least my mind is working!

 

Brad

I Like to Build Stuff : http://www.AtomicZombie.com

Last Edited: Sat. Jan 30, 2016 - 03:36 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AtomicZombie wrote:

I am currently deep into designing a fast CPU from 7400 logic, so at least my mind is working!

Why not use a small FPGA ?  Maybe try a dual core, or time-sliced core ?

Candidates would be Altera MAX 10, or Lattice MachXO2/XO3 series, and a new one suitable for small MCU design

is Lattice iCE40 Ultra  iCE5LP1K, iCE5LP2K, iCE5LP4K they come in 7mm QFN48 & 39 io

 

However, that package is new & Lattice still lack an Eval Board for that IO & Package ?! - all they offer is a rather lame 16io package board.

 

Altera MAX10 is a little above iCE5LP, but has less useful packages. Many BGAs, which need multi layer PCBs and special assembly.

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Who-me wrote:

AtomicZombie wrote:

I am currently deep into designing a fast CPU from 7400 logic, so at least my mind is working!

Why not use a small FPGA ?  Maybe try a dual core, or time-sliced core ?

Candidates would be Altera MAX 10, or Lattice MachXO2/XO3 series, and a new one suitable for small MCU design

is Lattice iCE40 Ultra  iCE5LP1K, iCE5LP2K, iCE5LP4K they come in 7mm QFN48 & 39 io

 

However, that package is new & Lattice still lack an Eval Board for that IO & Package ?! - all they offer is a rather lame 16io package board.

 

Altera MAX10 is a little above iCE5LP, but has less useful packages. Many BGAs, which need multi layer PCBs and special assembly.

 

 

Although I am not new to FPGA/CPLD design, this path would not be able to satisfy the strict requirements of my Vulcan-74 project.

When I do work with FPGA/CPLD, I like Xilinx Spartan6, and Verilog mostly. Nice IDE, never gives me any grief.

I did purchase a MachX0 board as well, but after screwing with the lattice licensing monkey, I ended up putting it aside.

 

 

Brad

I Like to Build Stuff : http://www.AtomicZombie.com

Last Edited: Sat. Jan 30, 2016 - 08:19 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hang on.  Are you ditching the 6502 and rolling your own from 7400s?  I'd better stock up on popcorn! :)

"Experience is what enables you to recognise a mistake the second time you make it."

"Good judgement comes from experience.  Experience comes from bad judgement."

"Wisdom is always wont to arrive late, and to be a little approximate on first possession."

"When you hear hoofbeats, think horses, not unicorns."

"Fast.  Cheap.  Good.  Pick two."

"We see a lot of arses on handlebars around here." - [J Ekdahl]

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

joeymorin wrote:

Hang on.  Are you ditching the 6502 and rolling your own from 7400s?  I'd better stock up on popcorn! :)

 

Indeed I am! But it ain't gonna be no 6502. More in the ballpark of XMega for power.

A DIY CPU made from100% logic, and will feature a 32 bit program memory, 16 bit math, 65536 general working registers, and single cycle operation.

I already made the 400x300 VGA System and GPU out of pure logic, so why not the CPU!...

 

 

I have already started bolting down chips. Just soldering the 512K SRAMs to DIP sockets right now in fact.

 

I don't want to get to far into it in this thread, so here is where I am at so far...

http://forum.6502.org/viewtopic.php?f=4&t=3329&p=43406#p43406

 

And for those brave enough to read through my 25 pages of rantings and overload of photos, here is the complete thread...

http://forum.6502.org/viewtopic.php?f=4&t=3329

 

I dropped the "6502 only" option a while back after getting the cold shoulder from Western Design Center.

Seems they are reeling hobbyists in with a 40 buck compiler, and then refusing to sell it to anyone not into high end production.

No problem, I will just make my own damn CPU from ONLY commonly available 7400 logic chips!

 

Brad

I Like to Build Stuff : http://www.AtomicZombie.com

Last Edited: Sat. Jan 30, 2016 - 10:39 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The boy's mad. Completely mad. There's nothing we can do about it.

The largest known prime number: 282589933-1

It's easy to stop breaking the 10th commandment! Break the 8th instead. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The boy's mad. Completely mad. There's nothing we can do about it.

Whenever I hang out reading Brad's threads, I wind up feeling about as smart as my avatar :-/

"Experience is what enables you to recognise a mistake the second time you make it."

"Good judgement comes from experience.  Experience comes from bad judgement."

"Wisdom is always wont to arrive late, and to be a little approximate on first possession."

"When you hear hoofbeats, think horses, not unicorns."

"Fast.  Cheap.  Good.  Pick two."

"We see a lot of arses on handlebars around here." - [J Ekdahl]

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

joeymorin wrote:

The boy's mad. Completely mad. There's nothing we can do about it.

Whenever I hang out reading Brad's threads, I wind up feeling about as smart as my avatar :-/

 

Come on now dudes, I am only making these crazy things work because I don't know any better!

The instant you become an "expert" is the instant the magic stops!

... I have a long way to go.

 

Funny, it wasn't until after I made the GPU section completely out of 7400 logic chips run at 32 MHz that I found a long thread full of experts claiming that 10MHz is the realistic top end of a breadboard design! Initially, I had it up to 42MHz, and then backed off to play it "safe". None of the 74HC chips are even running out of spec, unlike more than a few of my recent AVR shenanigans! Anyhow, I am sure glad I don't know any better.

 

Brad.. smart enough to know better, dumb enough to try anyhow!

I Like to Build Stuff : http://www.AtomicZombie.com

Last Edited: Sat. Jan 30, 2016 - 11:51 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AtomicZombie wrote:

Although I am not new to FPGA/CPLD design, this path would not be able to satisfy the strict requirements of my Vulcan-74 project.

When I do work with FPGA/CPLD, I like Xilinx Spartan6, and Verilog mostly. Nice IDE, never gives me any grief.

I'm impressed by anyone who has the patience to solder a shipload of TTL, but if you are used to Spartan 6, have you seen

this combination of CPU+Video (plus a full operating system) :

http://www.projectoberon.com/

and comments here on Spartan 6 port

https://forums.xilinx.com/t5/Xce...

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Who-me wrote:

AtomicZombie wrote:

Although I am not new to FPGA/CPLD design, this path would not be able to satisfy the strict requirements of my Vulcan-74 project.

When I do work with FPGA/CPLD, I like Xilinx Spartan6, and Verilog mostly. Nice IDE, never gives me any grief.

I'm impressed by anyone who has the patience to solder a shipload of TTL, but if you are used to Spartan 6, have you seen

this combination of CPU+Video (plus a full operating system) :

http://www.projectoberon.com/

and comments here on Spartan 6 port

https://forums.xilinx.com/t5/Xce...

 

It's a nice project! I have a few FPGA game systems on my other bench.

When I have time, I will shoot the author my HDMI code, it's Verilog for SPartan6, and pumps 640x480 over HDMI with no extra hardware.

To be honest though, I just don't feel that a code only solution is challenging enough. First FPGA project I ever did worked on power up.

This does NOT happen with 200+ logic ICs running at 30MHz!

 

Brad

I Like to Build Stuff : http://www.AtomicZombie.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AtomicZombie wrote:

When I have time, I will shoot the author my HDMI code, it's Verilog for SPartan6, and pumps 640x480 over HDMI with no extra hardware.

Sounds a good idea.

I think they use 1024 x 768 as a base resolution.

 

AtomicZombie wrote:

To be honest though, I just don't feel that a code only solution is challenging enough. First FPGA project I ever did worked on power up.

This does NOT happen with 200+ logic ICs running at 30MHz!

hehe, spoken like a true masochist!!

The benefit tho, of code-only solutions, is they can be shared more easily in the community, than 200+ logic IC's

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

And now something completely different:

http://www.cnx-software.com/2016...

 

Last Edited: Tue. Feb 9, 2016 - 09:04 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If you need a C compiler for your "new" cpu, then take a look at the LCC compiler, as I remember it's only about 30 ASM macros that you need to make to have a system up running (and you need to make an assembler, but that is a given)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

I stumbled upon this thread and found it intensely interesting, and have read it from the very start. I *really* like the minimalist approach taken by Brad, and I highly commend him for getting colour VGA out of an ATTiny-85. I also commend Jari for his excellent effort on the octa...

 

Because I came in rather late (today in fact) I missed a lot of the exciting development & decisions discussion. I disliked the transistor (as Brad did, and was glad to see it go). I was a little disappointed to discover that the '85 was going to be replaced with a higher-spec part, sort of defeating the whole point of this exercise, but then it came back (or has it?) with the "unloader".

 

About Christmas last year the discussion turned to sync signals on the colour channels, -0.3 v sync, 0v black, 0.7v full colour. The discussion then centred on how this could happen, but I didn't see any progress and the topic went cold, and moved on to other processors, crystals people had in their parts bins and of course the unloader.

 

I did notice that the Quark-85 system is based on a +5v supply, but the ground of the circuit is connected to the ground of the monitor. A "hack" (some may call it ugly) that I have used in the past to get around this is to raise one of the grounds... in this case the VGA monitor ground is raised, and hence the effective circuit becomes dual rail. In practice this would be done 'nicely' with op-amps and such, but one/two/three/more diodes can have the same effect with no actives at all (which is the primary design goal).

 

Only having had a day to look at this whole thing (schematic, how the code works, with a few juicy code teasers), could this trick be used with the 'pin-function-sharing' scheme to...

- put sync onto one of the colour channels?

- put audio out of another shared pin by pushing the audio signal "below ground" while the other signal/s ride above it?

 

This may be already done in a round-about way when a "half" signal is used (ie: drive zero, float, drive high), and may not produce any decent results because of this, but have any you guys thought about different ground references for each part of the system (ie. the uP & the monitor)?

 

And a question early on... should this be a demo system only or a proper game system? Go the game system!

 

Cheers,

MM.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

MustardMan wrote:

I stumbled upon this thread and found it intensely interesting, and have read it from the very start. I *really* like the minimalist approach taken by Brad, and I highly commend him for getting colour VGA out of an ATTiny-85. I also commend Jari for his excellent effort on the octa...

 

Because I came in rather late (today in fact) I missed a lot of the exciting development & decisions discussion. I disliked the transistor (as Brad did, and was glad to see it go). I was a little disappointed to discover that the '85 was going to be replaced with a higher-spec part, sort of defeating the whole point of this exercise, but then it came back (or has it?) with the "unloader".

 

About Christmas last year the discussion turned to sync signals on the colour channels, -0.3 v sync, 0v black, 0.7v full colour. The discussion then centred on how this could happen, but I didn't see any progress and the topic went cold, and moved on to other processors, crystals people had in their parts bins and of course the unloader.

 

I did notice that the Quark-85 system is based on a +5v supply, but the ground of the circuit is connected to the ground of the monitor. A "hack" (some may call it ugly) that I have used in the past to get around this is to raise one of the grounds... in this case the VGA monitor ground is raised, and hence the effective circuit becomes dual rail. In practice this would be done 'nicely' with op-amps and such, but one/two/three/more diodes can have the same effect with no actives at all (which is the primary design goal).

 

Only having had a day to look at this whole thing (schematic, how the code works, with a few juicy code teasers), could this trick be used with the 'pin-function-sharing' scheme to...

- put sync onto one of the colour channels?

- put audio out of another shared pin by pushing the audio signal "below ground" while the other signal/s ride above it?

 

This may be already done in a round-about way when a "half" signal is used (ie: drive zero, float, drive high), and may not produce any decent results because of this, but have any you guys thought about different ground references for each part of the system (ie. the uP & the monitor)?

 

And a question early on... should this be a demo system only or a proper game system? Go the game system!

 

Cheers,

MM.

 

Thanks!

This fun little project was a diversion from my 7400 logic game system here....

 

http://forum.6502.org/viewtopic.php?f=4&t=3329&start=390

 

Since I have to travel a bit, I wanted a project that was "Hotel Size"!

I may come back to this one some day, but like many of my projects, I switch around often to keep from getting bored.

 

My current "side-track" is actually a far stretch from what I am used to.... PIC!

I have a PIC10F322, which is super minimal, and I am going to port this thing to it.

The challenge will be huge since it makes the ATTiny-85 look like a mainframe in comparison.

It will also be fun since I have never touched PIC assembly yet!

From there I am doing one in a PIC24 and then a PIC32, all in assembly.

 

Just not sure where to post my new PIC projects, their forum does not seem to have the same flavor as this one!

It will probably be a different world around here by next year, so perhaps by then PIC projects will fly here as well.

.... oh the changing times!

 

Brad

 

 

I Like to Build Stuff : http://www.AtomicZombie.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AtomicZombie wrote:

 

 

My current "side-track" is actually a far stretch from what I am used to.... PIC!

I have a PIC10F322, which is super minimal, and I am going to port this thing to it.

The challenge will be huge since it makes the ATTiny-85 look like a mainframe in comparison.

It will also be fun since I have never touched PIC assembly yet!

From there I am doing one in a PIC24 and then a PIC32, all in assembly.

 

 

When good zombies go bad. Alas

The largest known prime number: 282589933-1

It's easy to stop breaking the 10th commandment! Break the 8th instead. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yeah, I would have never turned to the dark side, but here is my reasoning...

 

- AVR has a limited lifespan now. XMega will be the first to fall.

- Within 2 years the phase out will all but make AVR disappear.

- Seems most PICers are afraid of ASM on the big devices.

- I shall get ahead of the curve and insert myself into that void.

- The dark side of PIC ASM shall be mine! I shall rule the underworld!

- Overclocked PICs spewing VGA and Sound, yes, it shall happen!

 

But under my twisted evil exterior, I shall always remain an AVR Fanboy!

... Still a 6502 Fanboy as well back from the day.

 

Brad

 

 

I Like to Build Stuff : http://www.AtomicZombie.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AtomicZombie wrote:

Yeah, I would have never turned to the dark side, but here is my reasoning...

 

- AVR has a limited lifespan now. XMega will be the first to fall.

- Within 2 years the phase out will all but make AVR disappear.

...

Now that's just silly - Microchip will still be shipping AVRs in many years time.

They will also likely release new AVR's, as anything Atmel had advanced in R&D, will be completed.

Often, those efforts already have large customers.

 

There are many PIC ASM experts out there, but on the ancient PICs the ceiling is much lower.

The price curves have moved over time and what you can get now, for 30c, is vastly more than even 2 years ago.

 

New designs will naturally follow that more capable silicon.

 

Drop over to Digikey and search Microcontroller qty (say) 1500 by price.

Cheapest part (EFM8BB1) now has 25MHz 12bADC UART SPI i2c PWM & 256B RAM

The PIC10 that comes next, looks quite feeble in comparison  : 4MHz, 16 bytes RAM, 256 opcodes & little else.

 

With SiLabs, ST, TI & Cypress having better value parts, Microchip_Atmel will need to improve their low end offerings.

 

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Who-me wrote:

AtomicZombie wrote:

Yeah, I would have never turned to the dark side, but here is my reasoning...

 

- AVR has a limited lifespan now. XMega will be the first to fall.

- Within 2 years the phase out will all but make AVR disappear.

...

Now that's just silly - Microchip will still be shipping AVRs in many years time.

They will also likely release new AVR's, as anything Atmel had advanced in R&D, will be completed.

Often, those efforts already have large customers.

 

There are many PIC ASM experts out there, but on the ancient PICs the ceiling is much lower.

The price curves have moved over time and what you can get now, for 30c, is vastly more than even 2 years ago.

 

New designs will naturally follow that more capable silicon.

 

Drop over to Digikey and search Microcontroller qty (say) 1500 by price.

Cheapest part (EFM8BB1) now has 25MHz 12bADC UART SPI i2c PWM & 256B RAM

The PIC10 that comes next, looks quite feeble in comparison  : 4MHz, 16 bytes RAM, 256 opcodes & little else.

 

With SiLabs, ST, TI & Cypress having better value parts, Microchip_Atmel will need to improve their low end offerings.

 

 

Makes logical sense.

But I still believe that a huge phase out will begin within a year.

Time will tell.

 

I wanted to boost in horsepower anyhow, and being able to cycle count on the PIC24 and PIC32 made them more attractive to me than ARM, which from what I hear is much more difficult to write assembly in the bizarre manner that I require. I would never type a single instruction without first knowing the cycle overhead, and exactly what will happen.

 

Toolchain is another thing I am ultra fussy about. I liked AVRStudio, and even with the blips in AS7, it was my favorite so far. MPLab is also good, and since I only want to do assembly, there is no cost. For FPGA and CPLD, the Xilinx toolchain is great. I have not found a toolchain for ARM that I liked yet though. I think the ultimate fusion would be GCC for from MPLab with support for whatever AVRs they decide to keep.

 

 

Brad

I Like to Build Stuff : http://www.AtomicZombie.com

Last Edited: Wed. Feb 17, 2016 - 08:02 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AtomicZombie wrote:

I wanted to boost in horsepower anyhow, and being able to cycle count on the PIC24 and PIC32 made them more attractive to me than ARM, which from what I hear is much more difficult to write assembly in the bizarre manner that I require. I would never type a single instruction without first knowing the cycle overhead, and exactly what will happen.

You may need care, as any parts with a cache between Flash and Execute, can have cache related jitter, which means absolute address can effect timing, as well as branch distance and landing.

Often, this is poorly documented, so the best way to check is to do some test code that varies absolute address (change nothing else) and compare captured timing.

 

Google finds some hints around this, on PIC32 here

http://www.microchip.com/forums/...

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Who-me wrote:

 

You may need care, as any parts with a cache between Flash and Execute, can have cache related jitter, which means absolute address can effect timing, as well as branch distance and landing.

Often, this is poorly documented, so the best way to check is to do some test code that varies absolute address (change nothing else) and compare captured timing.

 

Google finds some hints around this, on PIC32 here

http://www.microchip.com/forums/...

 

 

Thanks, interesting read.

I had though about ways to keep my cycle counting assembly habit alive as simple 8 bit architecture starts to vanish, and figured I could use the same trick I have been using to repair the AVR interrupt entry jitter. Let's say a PIC32, AVR32, or ARM makes it next to impossible to track every last cycle. Ok, instead of counting every instruction, I will set a timer with no prescaler right before a block of code. I will give that block of code a small window to "stretch", and then right after, enter a tight loop that I can count based on the value in the timer. So rather than saying "this sound routine typically takes 143 cycles, but can take as many as 160 cycles ", I will say "this sound routine can take a minimum of 143 cycles" and then have the timer loop the remainder up to 160 cycles. This way, the block of code always takes the same number of cycles. With a few timers hammering out sync pulses at the start of an interrupt, it should be easy to simply "de-jitter" blocks of code to get back that total control.

 

I will be starting on the PIC10F322 project first, trying to make it do as much VGA as possible. This will force some bare metal assembly learning of the PIC instruction set.

With only half a Kilobyte of program memory and 64 bytes of SRAM, it will take some real magic to have it display meaningful color VGA. Doom perhaps?

 

Brad

 

I Like to Build Stuff : http://www.AtomicZombie.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AtomicZombie wrote:

 

Thanks!

This fun little project was a diversion from my 7400 logic game system here....

 

http://forum.6502.org/viewtopic.php?f=4&t=3329&start=390

 

 

I actually found the Vulcan-74 thread before I found the Quark-85 (from a link in the Vulcan thread). That is one serious project man! I only got up to page 10 (of 27!) of the discussion before being side tracked, but I will return!

 

AtomicZombie wrote:

 

My current "side-track" is actually a far stretch from what I am used to.... PIC!

I have a PIC10F322, which is super minimal, and I am going to port this thing to it.

The challenge will be huge since it makes the ATTiny-85 look like a mainframe in comparison.

It will also be fun since I have never touched PIC assembly yet!

From there I am doing one in a PIC24 and then a PIC32, all in assembly.

 

 

I did a lot of 8051 in the mid '80s, and quite a lot of PIC in the '10s. I've noticed that over 30 years the number and quality of on-chip peripherals has increased dramatically.

 

I started with 10F206 in 2010 and moved to 10F322 in 2013 (assembly only) and there was a vast improvement, however, I do find the PIC architecture quite poor in general, and the instruction set woeful (I believe I've even found some - documented, not hidden, but conveniently glossed over - bugs in it). They use the things at work and I hence had, sadly, no choice. I also had to stick within 'the rules'. The PIC hardware is OK, but lacking in some (what I would consider) very obvious areas. I hope the Atmel buyout is not going to mean the end for a lot of good chips, and although I've never used any, I can appreciate what they are and what they can do.

 

I certainly wish you luck in your quest, and I'm not going to provide you any advice (like you said on the Vulcan thread, you'd rather learn it yourself). If anyone can wring some goodness out of this chip, it will be you!

 

AtomicZombie wrote:

 

Just not sure where to post my new PIC projects, their forum does not seem to have the same flavor as this one!

 

 

Certainly true. After reading so many "my LED won't flash" (paraphrasing) threads on the PIC forums, the 6502 and AVR forums are an absolute treat to peruse!

 

Now if only there was a general "advanced microprocessor hacking in assembly" forum for things like the Quark-85 and Vulcan-74...

 

Cheers,

MM

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AtomicZombie wrote:

Who-me wrote:

 

You may need care, as any parts with a cache between Flash and Execute, can have cache related jitter, which means absolute address can effect timing, as well as branch distance and landing.

 

Often, this is poorly documented, so the best way to check is to do some test code that varies absolute address (change nothing else) and compare captured timing.

 

Google finds some hints around this, on PIC32 here

http://www.microchip.com/forums/...

 

 

Thanks, interesting read.

I had though about ways to keep my cycle counting assembly habit alive as simple 8 bit architecture starts to vanish, and figured I could use the same trick I have been using to repair the AVR interrupt entry jitter. Let's say a PIC32, AVR32, or ARM makes it next to impossible to track every last cycle. Ok, instead of counting every instruction, I will set a timer with no prescaler right before a block of code. I will give that block of code a small window to "stretch", and then right after, enter a tight loop that I can count based on the value in the timer. So rather than saying "this sound routine typically takes 143 cycles, but can take as many as 160 cycles ", I will say "this sound routine can take a minimum of 143 cycles" and then have the timer loop the remainder up to 160 cycles. This way, the block of code always takes the same number of cycles. With a few timers hammering out sync pulses at the start of an interrupt, it should be easy to simply "de-jitter" blocks of code to get back that total control.

Yes, but that can only go so far.

 

I also find this

http://www.microchip.com/forums/...

 

an irony here, is that 2014 thread ponders the life-cycle of dsPIC24/dsPIC33 with the release of PIC32 :)

At the end of the interesting comments around latencies & speeds and MI/J, is this final word...

 

["I think the original poster, who asked "Is the PIC24 / dsPIC33 family being phased out?", can rest assured that MCHP is still devoting significant development effort to this product line. The poster may be further reassured by this quote from Microchip's 2Q2015 financial statement:
 
"Excluding revenue from ISSC, our 16-bit microcontroller business was up 8.3% sequentially in the September quarter, also achieving a new record for revenue. 16-bit microcontroller revenue was up 23.3% versus the year ago quarter. This business continues to be an important engine of ongoing growth for us, as we continue to find and serve new customers and new applications with our expanding product portfolio.""]

 

dsPIC does seem generally more deterministic than PIC32, but their Simulators seem to have not caught up to the details..

Always a good idea to sanity check a real device.

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Who-me wrote:
There are many PIC ASM experts out there, ...
Don Lancaster comes to mind.

"Don  Lancaster's Guru's Lair: PIC Microporcessor Library"

http://www.tinaja.com/picup01.shtml

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

"Don  Lancaster's Guru's Lair: PIC Microporcessor Library"

I hope his ASM skills are better than his spelling. devil haaa notifications coming out of my ears now.

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

MustardMan wrote:
I've noticed that over 30 years the number and quality of on-chip peripherals has increased dramatically.

Microchip's new PIC16F18877 family

by

August 24, 2015

http://www.embedded.com/electronics-blogs/break-points/4440208/Microchip-s-new-PIC16F18877-family

...

The CPUs remain about the same as in the rest of the PIC16 family, but the peripherals offer some pretty interesting capabilities.

...

These MCUs, like some of other parts from Microchip, contain four identical configurable logic cells (CLC).

These are poor-person’s FPGAs (they refer to them using the amusing phrase “puddle of gates” rather than the lofty “sea of gates” term used by FPGA vendors) that are completely programmable.

...

... it’s a hugely programmable and capable device.

It would be fun to have a few beers with some developers to brainstorm some cool applications for it.

...

A large number of packages are available, including prototyping-friendly DIP as well as an assortment of SMT.

...

XMEGA E XCL is similar to PIC CLC.

Hardware can handle the bitstream while the next data for the bitstream is in-work.

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I think what would make this thread fun is to detail my AVR to PIC journey, using this project as a side by side comparison.

No doubt, the ATiny will womp the PIC10F, but the PIC10F will certainly be more of a challenge to get color VGA from.

I will also detail my experiences migrating from AS7+AVRisp to MPLab+PicKit for pure assembly programming.

 

So far it has been smooth. Downloaded the MPLab last night, and it installed in a single click just like AVR Studio.

Took 10 minutes to read the datasheet, then jack the PicKit into the breadboard. Erased the chip as a test.

 

Now the hard part... cutting my teeth into PIC Assembly by making a VGA game system as my first project.

Forget blinking LEDs man.... I prefer to jump directly into the fire!

But really, how hard can it be? ASM is all the same, and with only 33 instructions, they will be memorized in a few hours.

 

Will post some photos, showing both units side by side, with an unbiased opinion on my migration.

If anyone has any opposition to my intent to profile an AVR to PIC conversion here, let me know!

This may be my thread, but it ain't my house, and I wouldn't want to get flame broiled!

I see the registrant for this Domain is Atmel Corporation, AKA... MicroChip, but until the color scheme goes from blue to red, it's still all about AVR!

 

Cheers,

Brad

I Like to Build Stuff : http://www.AtomicZombie.com

Last Edited: Thu. Feb 18, 2016 - 04:59 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

But really, how hard can it be?

ONE GP register w on PIC, 32 GP registers on AVR. Not to mention the tiny amount of  memory and it being broken up into small chunks (ie pages) that reside along I/O and other registers.

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

js wrote:

But really, how hard can it be?

ONE GP register w on PIC, 32 GP registers on AVR. Not to mention the tiny amount of  memory and it being broken up into small chunks (ie pages) that reside along I/O and other registers.

 

Yeah, I looked at how little power the 10F had, and thought it would be a perfect challenge!

I plan on doing at least a breakout style game in color VGA with sound on this hardware...

 

- 512 instructions total program memory

- 64 bytes of data memory

- 2 output pins, 1 input pin

- 16 MHz max speed (we shall see about that!)

 

Comparing it to the ATiny-85 is like putting a bi-plane up against a fighter jet!

.... that's why I can't wait to dig in.

 

Brad

I Like to Build Stuff : http://www.AtomicZombie.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AtomicZombie wrote:

Comparing it to the ATiny-85 is like putting a bi-plane up against a fighter jet!

.... that's why I can't wait to dig in.

 

I can appreciate and admire the challenge side, but really, the PIC10 end result will be hopelessly compromised to be rendered a curiosity

 

I see Microchip make a DIP14 / TSSOP14  PIC24, to me that is a more interesting target, that might be persuaded to give something useful.

It still is quite constrained, so should still give enough challenge, with 512 RAM and 4K of code.

If you cannot fit in 4k, there is an 8k DIP14.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I have a few of those as well. When I turned to the dark side, I picked up a pickit and a good assortment of pics.

Digikey has a $200 free shipping deal, and I couldn't resist!

 

You have me driven even more now!

I intend to get a LOT more than a single pixel pong game going on the PIC10F!

The Quark Engine is sort of portable, and I expect a resolution of at least 128x240 out of this one.

With only 2 output pins, sound and color won't be spectacular, but it will be fun.

As far as I know, there are no examples of any PIC10 doing VGA yet, so this is new ground.

NTSC would be easier, as you can drive sync and video off a single pin, and even use the internal osc.

For VGA, you need a real clock, sync, and rgb line. I also intend to squeeze sound and a joystick out of it.

 

I only wish there were a lesser micro-controller available!

I think the 6 pin PIC10F is the smallest ever made.

 

Brad

 

I Like to Build Stuff : http://www.AtomicZombie.com

Last Edited: Thu. Feb 18, 2016 - 10:14 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AtomicZombie wrote:

I have a few of those as well. ...

The Quark Engine is sort of portable, and I expect a resolution of at least 128x240 out of this one.

Cool, you could do both ports in parallel ? - It would make interesting reading, to compare PIC10/AVR/PIC24 ?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I still think you should go for a ATSAMD09 aswell , to see what you can do with less than $0.5 .

 

As I understand it a cortex can run code from RAM, so with 4K RAM it should be possible to make a nice picture, from some code build up in RAM.

(I have never programmed a cortex, but I have ASM programmed ARM7's  (32 bit mode), and there it worked fine) 

 

 

Last Edited: Fri. Feb 19, 2016 - 07:57 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

sparrow2 wrote:

I still think you should go for a ATSAMD09 aswell , to see what you can do with less than $0.5 .

 

As I understand it a cortex can run code from RAM, so with 4K RAM it should be possible to make a nice picture, from some code build up in RAM.

(I have never programmed a cortex, but I have ASM programmed ARM7's  (32 bit mode), and there it worked fine) 

 

Good idea.

On paper, that specs above a PIC24, be interesting to see how it actually compares on hard-real-time tasks like VGA

Last Edited: Fri. Feb 19, 2016 - 07:47 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Once I get the 10F doing something, I will probably go to the PIC24 next.

I have the one with ridiculous amounts of SRAM and Program Memory.

If these overclock as well as XMegas, then it's gonna be fun!

 

For the Quark-10F Engine, I have now worked out how to get color VGA and Sound from the 2 available output pins.

Now when I say color, I mean 1 single color against black, selectable from a pallet of 8 colors using a jumper.

A red or yellow pixel is still a color pixel, so it's not like I am cheating!

 

Sound will derived via piezo element charged by the sync pulse and released by the color bit during the low sync.

This worked on the Tiny-85 version, and although it's no better than an early PC beeper, it is still sound.

.... you can't expect too much from a micro-controller that is only a small step up from being a transistor!

 

Since I received no death threats or accusations of being a traitor, I will post my results with photos here.

There just doesn't seem to be that fun social club feeling over on the Microchip forum!

One or two hackers doing fun and cool stuff, but mostly endless single post threads with basic questions.

 

Here is my hardware plan so far. I assume that the 16MHz PIC will reach 25MHz. We shall see!

 

 

As you can see, the IO space is reduced to 2 outouts and 1 inut once you add the external clock.

Just like the ATiny, the PIC has a crippled IO pin (RST) that can only be used as an input.

I will test to see if it's pullups can be switched, which would make a good sound output exploit.

On the ATiny, this could not be done on the Reset pin.

HSync and VSync are mixed as composite sync, which works on all VGA monitors. (Yes Jack, it does!).

 

So, I have room for 512 instructions, have only a single register, and only 64 bytes of SRAM!

.... I bet it ain't gonna play Doom!

Still shooting for at least a 128x240 fully bit-mapped resolution though.

Managed as much as 256x240 on the ATiny-85 with 512 bytes of SRAM.

 

Will post again once I am a PIC assembly expert. Glancing over the datasheet this weekend.

 

Cheers!

Brad

 

 

I Like to Build Stuff : http://www.AtomicZombie.com

Last Edited: Fri. Feb 19, 2016 - 08:47 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Will post again once I am a PIC assembly expert.

May want to tell someone to write to us and let us know which institution they have locked you up......maybe we send cards. cheeky

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

js wrote:

Will post again once I am a PIC assembly expert.

May want to tell someone to write to us and let us know which institution they have locked you up......maybe we send cards. cheeky

 

They do not allow communication from the outside world. I cobbled together a crude PC from blender parts, powered by 87 lemons with pennies stuck in them, and am accessing the net by tapping one of the network cables in the drop ceiling using paperclips and staples as wires.

 

Brad

I Like to Build Stuff : http://www.AtomicZombie.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Brad, when you tire of the PIC, there's the Silabs 8051 chips. Just got a busy bee 1 board. The chips are like 50c from digikey. Lovely 8051 architecture - there's an instruction that does what you want and plenty of options for tweaking. At 25MHz, these aren't your grandpa's 8051! And a nice slab of timers.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Kartman wrote:
Brad, when you tire of the PIC, there's the Silabs 8051 chips. Just got a busy bee 1 board. The chips are like 50c from digikey. Lovely 8051 architecture - there's an instruction that does what you want and plenty of options for tweaking. At 25MHz, these aren't your grandpa's 8051! And a nice slab of timers.

Yes, their EFM8LB1's hits 72MHz, but that MHz is not quite all available, as these > 25Mhz parts do enable a cache, and then Code alignment matters, and jumps slow down. (more like the PIC32 discussed above). 25MHz clocked parts have no cache issues.

Still, even with that, it is nice to have timers running at 72MHz.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Ok, I think the fabric of reality has realty distorted in my lab this morning!!!

 

Did my first PIC assembly program. No real learning curve, just syntax differences.

It's actually easier since it has fewer instructions, and there are at least few things I like better.

All in all though, AVR assembly is far more powerful.

 

But here is where things go well beyond sanity...

I made a program that reads some memory, does a few loops, jumps, and verifies values.

This program was made using the internal 16MHz osc to flash an LED once per second on success.

As usual, I started jamming in external clocks in increments of 2MHz to find the "safe" overclock value.

Well, i was very surprised that the 16MHz rated 10F could to 25Mhz, and was going to stop there.

 

But no... I kept on increasing the frequency, and it's frickin' running at 80MHz!!!!!!!!!

Am not not kidding, checked my scope, verified the code, and it damn well runs at 80Mhz!!!!!!

I have no higher 5v clock, or I would have kept going.

 

Zoinks Scoob, if this thing can really do 80MHz, the video engine is going to be amazing on the 10F.

Anyhow, I am still in total disbelief, and will do a LOT more testing when I have the time.

At this speed, I could have the engine spew out 1024x480 video!

 

Later!

Brad

 

 

 

I Like to Build Stuff : http://www.AtomicZombie.com

Last Edited: Sat. Feb 20, 2016 - 03:42 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

>>Something<< must break at (or well before) 80 MHz. I wonder what it is.

"Experience is what enables you to recognise a mistake the second time you make it."

"Good judgement comes from experience.  Experience comes from bad judgement."

"Wisdom is always wont to arrive late, and to be a little approximate on first possession."

"When you hear hoofbeats, think horses, not unicorns."

"Fast.  Cheap.  Good.  Pick two."

"We see a lot of arses on handlebars around here." - [J Ekdahl]

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

IIRC those small PICs are all 4T Opcodes ?
The Silabs parts can read Flash to 25MHz with 1T opcodes, so 80MHz does not sound that surprising. That's 20MHz Flash read.

Smaller Flash is also faster then larger flash.

 

I've clocked SiLabs parts on the bench to 200MHz (but not the Flash-fetch) just to check margins and process abilities.

 

If you keep >= 5V and modest temperatures (add a heatsink and fan ? ;) )  you should be ok.

The good thing about a VGA output, is it is instantly obvious when things have failed.
 

Last Edited: Sat. Feb 20, 2016 - 07:50 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yes, once I get the video working, it will be instantly obvious if even a single cycle out of several million is skipped.

Just came back from a drive, and left the PIC10F running the diagnostic code for 4 hours. Still working great!

I am just floored that a 16MHz rated part can hit 80MHz. Chip is still cold to the touch, same as the one next to it with no power.

Overclocking has never shown me a heat increase, so that is not surprising. When the fail, they just reset over and over.

 

Wish I had a 100MHz 5v clock!!!

 

I will pick away at converting the ATiny Quark Video Engine over the next week when I have time and give it a real test.

Man, if this is any indication of things to come, then the PIC24 and PIC32 are going to hit 160-200 MHz. Forget FPGA!

 

I wonder what kind of roasting I will get from the purists when I post this completed 80MHz 10F project over on the PIC forum!?

 

Brad

I Like to Build Stuff : http://www.AtomicZombie.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AtomicZombie wrote:

 

I wonder what kind of roasting I will get from the purists when I post this completed 80MHz 10F project over on the PIC forum!?

 

Brad

 

Just call yourself something like "AVR Zombie" and you'll get LOTS of flack on the PIC forum 

The largest known prime number: 282589933-1

It's easy to stop breaking the 10th commandment! Break the 8th instead. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AtomicZombie wrote:

Wish I had a 100MHz 5v clock!!!

 

Adafruit have a Si5351 Clock generator PCB, you could add a level shifter to - goes to 200MHz 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I wonder....

 

Way back when, I had some chips from Ubicom called SX, which were PIC clones that could reach similar speeds.

Perhaps it's the same silicon?

 

https://en.wikipedia.org/wiki/Parallax_SX

 

How the hell can this 16MHz rated part be ticking away flawlessly at 80 MHz??????

.... 8 hours and not a single glitch.

 

Brad

I Like to Build Stuff : http://www.AtomicZombie.com

Last Edited: Sun. Feb 21, 2016 - 04:50 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

8 hours now.

The test I am running fires an interrupt, writes to all of SRAM, reads back, verifies, and then toggles IO pins at 40 MHz.

I am seriously impressed.

 

Brad

I Like to Build Stuff : http://www.AtomicZombie.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AtomicZombie wrote:

I wonder....

 

Way back when, I had some chips from Ubicom called SX, which were PIC clones that could reach similar speeds.

Perhaps it's the same silicon?

 

Unlikely - those parts were fast but also very power hungry.

Did you check your Icc ?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Who-me wrote:

AtomicZombie wrote:

I wonder....

 

Way back when, I had some chips from Ubicom called SX, which were PIC clones that could reach similar speeds.

Perhaps it's the same silicon?

 

Unlikely - those parts were fast but also very power hungry.

Did you check your Icc ?

 

Once I have the a basic video test running, I will dig out my power supply and check power consumption through the range up to 80Mhz.

The test is still running this morning. No detectable heat, no lockups.

 

Brad

I Like to Build Stuff : http://www.AtomicZombie.com

Pages