You can hack XC8. It's itself GPL based, and Microchip is essentially selling you a paid GPL software.
You can checkout its source code and strip out licensing parts and recompile it.
It might be hard, hard enough that I gave up. But if you are familiar with the GCC building from scratch process, you can do this.
Hi guys
A few years ago i started using micro-controller ( microchip 16F and 18f family).i was using only assembly language to program them.I haven't had any problem.I wanted to start using C, because as you may know assembly is a lot of time consuming.I started searching for the descent compiler and it turned out that i have to spend a lot of money to get one like the xc8, of course they offer a shitty free version which inserts a useless code just to make your code bigger.No sorry, i hate that idea specially for a guy how's coming from assembly language.
I think that my love story with microchip mcu is about to end,because of the lack of a descent C free compiler.
my question which is the best microcontroller ( it doesn't matter if it's 8bit or 32 bit) that can offer a descent free C compiler to build some project?
Note:I don't like to use arduino family,because i want to understand and have control of the registers.
thanks in advance
You can hack XC8. It's itself GPL based, and Microchip is essentially selling you a paid GPL software.
You can checkout its source code and strip out licensing parts and recompile it.
It might be hard, hard enough that I gave up. But if you are familiar with the GCC building from scratch process, you can do this.
I don't think XC8 is open source. It is based on old Hi-Tech C. XC16 and XC32 are based on GCC, so the source is open.
Okay, got it. I was looking at XC16 since I was interested in dsPIC33 series, until I got drawn in thousands of pages of scattered reference manuals and moved to PSoC 5LP.
thank you guys for your help.sorry, i was a little bit frustrated, after I've done a bit of research it seems that the xc8 free version is not as bad as i thought.
for now i'll keep using PIC, but i might be interested for something else in the near future.
thank you guys for your help.sorry, i was a little bit frustrated, after I've done a bit of research it seems that the xc8 free version is not as bad as i thought.The really obvious next step is Arduino. Uno or Mini clones on the slow boat from China (I personally like NHduino) cost almost nothing. Or a 2560 clone if you want more pins and hardware. You can then use the Arduino IDE and program C to your hearts content. (ASM is also possible)
for now i'll keep using PIC, but i might be interested for something else in the near future.
i can't remember if it was free XC8 or free H-TECH Compiler that add more unnecessary code to the compiled file just so they can say buy PRO version to optimize your code size. One more reason to give up Microchip.
thank you guys for your help.sorry, i was a little bit frustrated, after I've done a bit of research it seems that the xc8 free version is not as bad as i thought.The really obvious next step is Arduino. Uno or Mini clones on the slow boat from China (I personally like NHduino) cost almost nothing. Or a 2560 clone if you want more pins and hardware. You can then use the Arduino IDE and program C to your hearts content. (ASM is also possible)
for now i'll keep using PIC, but i might be interested for something else in the near future.
An advantage of sticking with MPLABX and XC8 is the potential to hardware debug which may or not be useful.
Arduino is worse than PIC since it adds yet another layer which will make code less efficient.It's true that Wiring gets in the way but you can avoid it very easily and get straight to bare metal. Put your code, in a while(true) inside the loop function, redefine or disable timer0 and you are good to go with bit twiddling the registers.
You can install Arduino software just to use it as an installer for AVR-GCC and AVR-libc. Then you can safely skip the Arduino IDE itself and use the copy of toolchain it packed for your own project.Arduino is worse than PIC since it adds yet another layer which will make code less efficient.It's true that Wiring gets in the way but you can avoid it very easily and get straight to bare metal. Put your code, in a while(true) inside the loop function, redefine or disable timer0 and you are good to go with bit twiddling the registers.
Depends on what you actually want to achieve.
You can install Arduino software just to use it as an installer for AVR-GCC and AVR-libc. Then you can safely skip the Arduino IDE itself and use the copy of toolchain it packed for your own project.
There are some tricky-to-get-right toolchains that Arduino folks support, like the ones for Intel Quark line. Using the copy installed by Arduino is often more reliable than installing it yourself.You can install Arduino software just to use it as an installer for AVR-GCC and AVR-libc. Then you can safely skip the Arduino IDE itself and use the copy of toolchain it packed for your own project.
"But I was thinking of a plan
To dye one's whiskers green,
And always use so large a fan
That they could not be seen".
Lewis Carroll. Through the Looking-Glass.
it seems that the xc8 free version is not as bad as i thought.
I'm just waiting for someone to ctrl+c ctrl+v here their Holy Wall Of Text of the PSOC, how it is superior to everything. BTW it's not.I think it have arrived. Well a shorter version arrived, with a link to a MUCH longer one.
Psoc is for sure, It's unique, If you don't believe is because you didn't play with psoc rNo thanks. If the microcontroller don't have tools for Linux or macOS it is literally dead end for me.
It's a mix of FPGA, arm and even a "kind of analog" litle FPGA
Only as a little information Check this video and tell me, what another arm processor ( or any other one ) make so easy to add small functions based on Verilog
http://youtu.be/XpgmKk-COkA (http://youtu.be/XpgmKk-COkA)
Also, check this 2nd video and tell me do you know any other processor that you can make small analog circuits on the fly?
https://www.youtube.com/watch?v=7FBw8-PBIb0 (https://www.youtube.com/watch?v=7FBw8-PBIb0)
Psoc is the most flexible system family available nothing like that, and if you evaluate the full family, you will agree.,
The problem with Psoc is that is something that is a new and Innovative, you will need some effort to learn and understand because breaks your previous experience with microprocessor, PSOC is a System on Chip not a microprocessor
OK, keep on your 8051 and gimp cave, and let the people that think out of the box do the jobBefore you start thinking out of the box check if your ass is being watched and your passwords are being sniffed by Microsoft and/or the Big Brother.
Also, check this 2nd video and tell me do you know any other processor that you can make small analog circuits on the fly?
OK, keep on your 8051 and gimp cave, and let the people that think out of the box do the jobOh and speaking of 8051, I am not using it as my main microcontroller choice for the projects. I have a series of blog posts exploring 8051 and that's it. I have way more ARM and AVR based projects than 8051:
Not to mention that it would me much easier to use off-the-shelf op amp - nothing needs to be done, no programming required. And, most importantly, you can select the op amp with characteristics you really needs. Chances that a built-in op amp with arbitrary characteristics is exactly what you need are slim to none.Also since op amps almost always comes in the same pinout, socketed op amps are godsend. I used to have a small headphone amp with two socketed op amps. I started off using a pair of LM358s but as my demand of audio quality increases the op amps are swapped out for better ones - TL072, then NJM4559, then OPA2134. Should I be able to find it I may even try flirt with TLC2272 on this.
It's not only opamps, it's a full set of analog components, of course, you can't argue against because you never tried, and already makes clear that will never do that, because the tools isn't on your OS preference, let follow your course and pray for your eventual competitors don't take advantage of this wonderful piece of silicon (Psoc) against something you are planning to compete using Linux friendly tools
Point me to someone actually sells this at $10 in China. It is nigh difficult to find, at least for me, and costs way more than $10.It's not only opamps, it's a full set of analog components, of course, you can't argue against because you never tried, and already makes clear that will never do that, because the tools isn't on your OS preference, let follow your course and pray for your eventual competitors don't take advantage of this wonderful piece of silicon (Psoc) against something you are planning to compete using Linux friendly tools
They won’t compete.
At least in China nobody bothers using PSoC at all. It is way too expensive to be competitive in the market.
You can check Aliexpress or Taobao for MCU dev kits. You would be hard pressed to find something with PSoC on it. OTOH kits based on STM32, STC 8051, Microchip PIC16 and AVR just floods the market. Also check the bookstores and college curriculums, there is virtually no book or course that even touches upon the advanced features of PSoC.
The STM32 line is so popular we are now even seeing clones from China in the form of GD32 line.
Psoc kit 059 sells at $10 with no quantity limit. You can buy 1000 pcs if you want to.
The kit contains 2 $20 chips (target and debugger) and passives.
The debugger can also be used as usb to uart and i2c bridge.
You cannot judge by the price of the development kits. Manufacturers sell them below cost to attract buyers to their chips. Look at the prices of the chips themselves instead.I understands this for first-party kits. But third-party kits are entirely another story.
To be honest I just bought one for the sake of trying out what you claim to be the “most flexible MCU ever” (I still doubt it.)Point me to someone actually sells this at $10 in China. It is nigh difficult to find, at least for me, and costs way more than $10.It's not only opamps, it's a full set of analog components, of course, you can't argue against because you never tried, and already makes clear that will never do that, because the tools isn't on your OS preference, let follow your course and pray for your eventual competitors don't take advantage of this wonderful piece of silicon (Psoc) against something you are planning to compete using Linux friendly tools
They won’t compete.
At least in China nobody bothers using PSoC at all. It is way too expensive to be competitive in the market.
You can check Aliexpress or Taobao for MCU dev kits. You would be hard pressed to find something with PSoC on it. OTOH kits based on STM32, STC 8051, Microchip PIC16 and AVR just floods the market. Also check the bookstores and college curriculums, there is virtually no book or course that even touches upon the advanced features of PSoC.
The STM32 line is so popular we are now even seeing clones from China in the form of GD32 line.
Psoc kit 059 sells at $10 with no quantity limit. You can buy 1000 pcs if you want to.
The kit contains 2 $20 chips (target and debugger) and passives.
The debugger can also be used as usb to uart and i2c bridge.
And how much does the STM32 kits cost again? $15 for STM32F407ZGT6 + 1MiB external SRAM + 16MiB external Flash.
Cy8ckit-059, as low as RMB 80 from Taobao.
Mouser, e14 and Digikey all ship to China, some with minimum order amount.
Brokers like rightIC also do aggregated shipping to China from western distributors with very low MOQ and shipping cost.
If you prefer to buy from a trusted source, check out here: http://www.mouser.cn/ProductDetail/Cypress-Semiconductor/CY8CKIT-059/?qs=sGAEpiMZZMuo%252bmZx5g6tFKhundMNZurhvz2tw2jO%2fk8%3d (http://www.mouser.cn/ProductDetail/Cypress-Semiconductor/CY8CKIT-059/?qs=sGAEpiMZZMuo%252bmZx5g6tFKhundMNZurhvz2tw2jO%2fk8%3d)
Buy two to get free shipping.
I think 8051 chips are great in many applications. Cheap, low power, available with good peripherals, and mature dev tools. Why should anyone need to feel bad for learning and using 8051s? Unlike some people, it doesn't sound like you're going around saying that the 8051 is the solution to every problem.OK, keep on your 8051 and gimp cave, and let the people that think out of the box do the jobOh and speaking of 8051, I am not using it as my main microcontroller choice for the projects. I have a series of blog posts exploring 8051 and that's it. I have way more ARM and AVR based projects than 8051: [...]
For $20 I can get the Allwinner V3s stack up, sample the analog signals directly and crunch through the entire PSoC analog chain using software code. Oh that is a Cortex-A7 core with full FPU and SIMD instructions.Point me to someone actually sells this at $10 in China. It is nigh difficult to find, at least for me, and costs way more than $10.It's not only opamps, it's a full set of analog components, of course, you can't argue against because you never tried, and already makes clear that will never do that, because the tools isn't on your OS preference, let follow your course and pray for your eventual competitors don't take advantage of this wonderful piece of silicon (Psoc) against something you are planning to compete using Linux friendly tools
They won’t compete.
At least in China nobody bothers using PSoC at all. It is way too expensive to be competitive in the market.
You can check Aliexpress or Taobao for MCU dev kits. You would be hard pressed to find something with PSoC on it. OTOH kits based on STM32, STC 8051, Microchip PIC16 and AVR just floods the market. Also check the bookstores and college curriculums, there is virtually no book or course that even touches upon the advanced features of PSoC.
The STM32 line is so popular we are now even seeing clones from China in the form of GD32 line.
Psoc kit 059 sells at $10 with no quantity limit. You can buy 1000 pcs if you want to.
The kit contains 2 $20 chips (target and debugger) and passives.
The debugger can also be used as usb to uart and i2c bridge.
And how much does the STM32 kits cost again? $15 for STM32F407ZGT6 + 1MiB external SRAM + 16MiB external Flash.
Cy8ckit-059, as low as RMB 80 from Taobao.
Mouser, e14 and Digikey all ship to China, some with minimum order amount.
Brokers like rightIC also do aggregated shipping to China from western distributors with very low MOQ and shipping cost.
If you prefer to buy from a trusted source, check out here: http://www.mouser.cn/ProductDetail/Cypress-Semiconductor/CY8CKIT-059/?qs=sGAEpiMZZMuo%252bmZx5g6tFKhundMNZurhvz2tw2jO%2fk8%3d (http://www.mouser.cn/ProductDetail/Cypress-Semiconductor/CY8CKIT-059/?qs=sGAEpiMZZMuo%252bmZx5g6tFKhundMNZurhvz2tw2jO%2fk8%3d)
Buy two to get free shipping.
PSoC may come with all those features, but what if I don't need some features why would I still pay for it? Allwinner V3s is cheap enough for me to afford shopping around for even better external components to perform the same if not better. Same goes for STM32 or AVR or STC 8051. Try beat ADI or LT or TI or Maxim on analog. And I don't have to pay for features I don't use (unpopulated footprint at worst, removed from the board usually. As long as routing works and the board is not getting bigger adding a footprint to a PCB is free.)For $20 I can get the Allwinner V3s stack up, sample the analog signals directly and crunch through the entire PSoC analog chain using software code. Oh that is a Cortex-A7 core with full FPU and SIMD instructions.
PSoC can sample analog at 20-bit without audio filtering shit (not 24-bit audio ADC), it's a general purpose precision 20-bit sigma delta ADC.
PSoC also has 2 SAR ADCs that support arbitrary channel sequencing.
PSoC has a few <50ns comparator that gives you 20MHz bit stream bandwidth.
PSoC has IDACs and VDACs, with a fairly accurate and stable voltage reference.
PSoC has comparators and OPAMPs with very low offset (and ADCs with factory calibrated for offset) that can be used on mV signals.
PSoC has switching capacitor analog handling blocks, which can be used for programmable analog filters, comparators and a lot of other purposes.
PSoC has the best cap sense in industry, comparable with TI CapTIVate solution.
PSoC is available in extended temperature range and comes with MISRA C certified libraries.Allwinner V3s is automotive class silicon by default in the first place. Go ahead and read their marketing slides.
And most important, PSoC consumes milliamps, and can boot up in milliseconds.Allwinner V3s also consumes milliamps, and can boot up in milliseconds, if the program is written for bare metal operation, just like STM32 or AVR or STC 8051, oh or like PSoC.
It's not only opamps, it's a full set of analog components, of course, you can't argue against because you never tried, and already makes clear that will never do that, because the tools isn't on your OS preference, let follow your course and pray for your eventual competitors don't take advantage of this wonderful piece of silicon (Psoc) against something you are planning to compete using Linux friendly toolsThere are way too many scenario PSoC won't work even on an electrical point of view. Take one of my constant current load design for an example: in order to use the cheaper 10V gate power MOSFETs I used a boost converter to provide the error amplifier 15V supply voltage. Try not to fry an PSoC op amp with 15V supply. If the PSoC have to be shoehorned I have to use the much more expensive logic level power MOSFETs (just check the price difference of IRF540N and IRL540N,) use a floating ground (a whole other can of worms by itself) and still need an external op amp to invert the sample point voltage.
If your product profitability is heavily bounded by the cost of a single commodity MOSFET, it's likely your design is not good enough. Generally if you want to start a real innovative business (not a mom&pop shop), you need to make sure your BOM is only a very small portion of cost, expect R&D and testing/certifying as well as financing cost amortized per product to be more than BOM.So you are suggesting a good design have to be a complex one? For at least this specific project PSoC is definitely adding complexity and points of failure. In my board I even introduced a strict point of separation of programmed and hard wired analog circuitry for the sake of safety - a locked up program does not fry the analog section, and the thermal shutdown of the power MOSFET does not depend on working code. Can PSoC do this?
BTW, IRF540 and IRF540N are of the same price on Mouser. Taobao price doesn't really have a meaning unless you can get the certificate of authenticity from supplier. Who knows the IRF540 you get is a genuine one or a Chinese die packaged into an IR packaging.The kicker is not IRF540N/IRL540N, but the additional complexity just to accommodate the PSoC. A negative rail just for the single external op amp to flip the sense line voltage is ridiculous. Also it is much simpler to design a boost SMPS than inverting SMPS, as chips are readily available. No thanks I will stick to my cheap STM32F103C8T6 + TLC5615 + TLC2272 stack.
I need lower than GND. I am talking about -5V or so.BTW, IRF540 and IRF540N are of the same price on Mouser. Taobao price doesn't really have a meaning unless you can get the certificate of authenticity from supplier. Who knows the IRF540 you get is a genuine one or a Chinese die packaged into an IR packaging.The kicker is not IRF540N/IRL540N, but the additional complexity just to accommodate the PSoC. A negative rail just for the single external op amp to flip the sense line voltage is ridiculous. Also it is much simpler to design a boost SMPS than inverting SMPS, as chips are readily available. No thanks I will stick to my cheap STM32F103C8T6 + TLC5615 + TLC2272 stack.
1. PSoC's internal analog peripherals can operate down to negative rail (gnd).
2. If it's just for signal conditioning, PSoC can be used to create a charge pump to generate negative voltage. Port 12 in PSoC 5 can handle up to 25mA per pin.It is a sense signal. No way you can pump it.
3. The same can be used to drive a non logic FET, and you can use a BJT to do analog level translation. I prefer a common base driving a complementary emitter follower (aka. class B) for gate driving. 2 9014 NPN and 1 9015 PNP is guaranteed to be cheaper than any OPAMP.The PSoC itself is more expensive than the whole board of components combined in the first place. So, moot point.
Using PSoC you will save thousands of dollars on development, it's a system on a chip, smaller PCB's, more flexible and integrated solution, ideal for the middle of complex things on the very low scale of production, you can even use the development stick as a component of products.So I should prepare to spend the thousands of dollars saved in R&D in either repairing and servicing the devices, or paying dubious recyclers to handle the broken units?
They are not made to compete with STM8 or STC8051 for 1 dollar Led VoltmeterWhen I do get past the "learning phase" I will find myself cooking up designs that is easier to route, plan, debug and build using separate chips - like STM32 in the center and chips like ADC0832, TLC5615 and TLC2272 scattered around.
The main application is medical and military devices and measure and automation, where you want performance and system integration that only PSOC can give you, The learning curve is hard, but if you pass that learning phase you can make a full complex system in a day. The saving isn't on the chip, the saving in on engineer time, your product will be ready faster and the gain on development cost and time will pay the premium of the CPU.
Psoc can read analog channels, filter at very high rates and generates a VGA signal showing the results, and having excellent capacitive buttons and sliders while at the same time generating one analog out in a range outside your power supply limits using an internal cap switch, and generating several different clocks to be used externally based on the PLLs you can define.So does Allwinner V3s. Oh and V3s uses the much more common parallel RGB interface which can be ingested by a lot of LCD panels or bridged into things like HDMI or DisplayPort easily with a PHY chip, oh and vintage VGA too maybe using some vintage RAMDAC. And V3s can use a much higher resolution.
Did you get it, it's unique
https://www.youtube.com/watch?v=C-YOIWPxZ08 (https://www.youtube.com/watch?v=C-YOIWPxZ08)
PSoC is also single source - I can swap processors or opamps as commodities, but buying a magic unicorn box is a great way to be sad at a later date.Agreed. Socketed op amps are godsend since they all follow the same pinout. So are the 8051 based microcontrollers (with a few AVRs being almost pin compatible with the 8051s)
If you intend to keep a product alive for longer times and keep maintaining it you damn well hope either Cypress the unicorn company stays alive for that long and still produces the chip you used (at least c compatible one) or you have used standard products that is easily replaceable.
Having all major components separated means I can swap parts without respinning the board
should one vendor ceased business.
Thats one of the almost un-achievable aspects of the hi tech biz these days. One only has to look
at the history since 70s of the number of very big companies that have been absorbed or gone out
of business, Philips, National....Whole product lines spun off into oblivion. And who is trained to see
the future ?
Try explain to me why NASA are still using 80C86 to this day. Speaking of which, outside of collectors, there are still a lot of Apple II's or IBM PC's surviving. But for the computers since Pentium it is hard pressed to find one that still works after 15-20 years. Back then no chip is single sourced so finding a replacement is (still) fairly easy even to this day: You got a dead Socket 7 CPU - get another one from whatever manufacturer that still have the required performance and you are good to go.QuoteIf you intend to keep a product alive for longer times and keep maintaining it you damn well hope either Cypress the unicorn company stays alive for that long and still produces the chip you used (at least c compatible one) or you have used standard products that is easily replaceable.
Thats one of the almost un-achievable aspects of the hi tech biz these days. One only has to look
at the history since 70s of the number of very big companies that have been absorbed or gone out
of business, Philips, National....Whole product lines spun off into oblivion. And who is trained to see
the future ?
Insofar as Cypress is concerned, look at the annual reports as a starting point. Basically they have an
industry standard core coupled with a process that can handle mixed signal. That aspect one could
comfortably state will continue to experience demand. Look at the roadmap, also the frequency of tool
updates, release of new families, parts, as a way of telling if they are viable. The Cypress MCD div shipped
almost ~$1B in 2016.
If you perform a more careful analysis you will find out that PSoC have a generally higher cost if some defective units are involved. As I have stated before PSoC in general is much more expensive than other platforms. This may be offset in the manufacturing but when you put failed components, rework and warranty repair into consideration the tip of the balance goes to semi-discrete solution again: if a PSoC stack failed it is either the entire board or the $20 PSoC chip is being tossed out. But for a semi-discrete stack I can rework the board and only toss out some much cheaper components - at worst the $5 V3s + $2 MCP3911.QuoteHaving all major components separated means I can swap parts without respinning the board
should one vendor ceased business.
Of course there are reliability issues with that approach. Power issues. And if a competitor sees those
increased costs and your market is sizable that's an opportunity to attack that solution. Eg. because
that solution has increased procurement, assembly costs, just a fact of life.
Regards, Dana.
And Microchip maintains pin compatibility across the entire product lines.Thats one of the almost un-achievable aspects of the hi tech biz these days. One only has to look
at the history since 70s of the number of very big companies that have been absorbed or gone out
of business, Philips, National....Whole product lines spun off into oblivion. And who is trained to see
the future ?
Microchip still supports PICs from 20 years ago, so if you used one in your design, you can still buy replacement parts.
We may be arguing two diverse sets of experiences.I am Chinese. Folks here tend to abuse their shit a lot. There are just way too many repairs of people break their stuff.
I see your experience has been with what sounds like significant field failures.
Where mine has been, over the course of 30 years, dramatic reductions across the
board in field failure. Memory to micro to analog. In early part of my career, 45 years
ago, as a production engineer on MOS line, we drove process and design failure rates
into noise levels. The Japanese did the same in memory. In my experience the primary
remaining failures these days are passives and interconnect. I repair scopes, other
gear for fun, spend most of my time on passives, and an occasion power bipolar, or diode.
The NASA reference, my career spanned primarily moderate to very high volumeThis goes back to my point: when a simpler component is EOL’d I can poke around and find a replacement to go on next production run, without having to respin the board itself and pay for the new masks.
designs. But as a field engineer I did have to deal with product obsolescence issues,
and these took many paths, from your experience to true EOL product termination and
follow on redesign.
Product diversification,for sure I can understand your point. But then silicon programmability,People will take your stuff apart. The moment they find out that your base model and premium model have the same PCB components people will start hacking it to squeeze the premium performance out of the baseline parts, and give you the bad reputation of selling DRM-encumbered hardware. Remember Rigol and Riglol hack, by putting a generated code into your DS1054Z you get a DS1104Z?
route-ability, can certainly aid in this. Here my experience has been that designs were largely
3 -5 year lifetime target, then entire redesign. In my account base as FAE most, not all, of
product span was software driven. In fact many designs the HW was almost irrelevant in the
program management, it was all software development.
So I think we have quite different experiences coloring our viewpoint, at least in my case
that is surely true.
So in summary I tend to think minimum parts, get rid of interconnect.
Regards, Dana.
I tend to think minimum parts, get rid of interconnect.Indeed, that's whole reason MCUs were invented - the more you can do inside the chip the better.
I can spin the same PCB and leave different portions of the circuit unpopulated or underspecified. With PSoC the premium and baseline products have the same production cost thus eating away at the profit margin of the lower end models. But for my optional mounting on PCB trick the baseline models are indeed cheaper to build.I tend to think minimum parts, get rid of interconnect.Indeed, that's whole reason MCUs were invented - the more you can do inside the chip the better.
But there's a downside - in order to make it attractive to more customers you have to stuff it full of features that most of them will never use, or produce dozens of variations with different feature sets. With PSOC you don't have to do either.
I have an application that needs just two things - an 8 bit parallel slave port to interface to a 5V CPU bus, and SPI for an SD-card. I wanted to do it all in one chip without a bunch of level convertors, external logic gates or a CPLD. It has to be available in a reasonably small package but still 'DIY friendly' (no BGA etc.) and modestly priced. I spent a lot of time examining the datasheets of dozens of PICs and only one seemed to be suitable (and even that needed a few level converters). I have a PIC32MX150F128D which has both a parallel slave port and SPI, but guess what - due to a pin assignment conflict you can't use both at the same time! >:(Try WCH CH563. It does all the above at the same time (the only set of conflicting pin assignments I know of is the parallel master and slave ports, but that does make sense as it can put the main CPU on hold and perform DMA on its own this way.) And it is a 32-bit MCU too based on ARM9 core.
PSOC is the only MCU that will do what I want, and I if I want something different it will still do it.Try shop around a bit and you will find other options than PSoC that satisfies your needs.
It is a 3.3V part with 5V tolerant I/O. So I would assume useable in a 5V system.Try WCH CH563. It does all the above at the same time (the only set of conflicting pin assignments I know of is the parallel.
Issues of WCH chip:
Does it operate at 5V without level shifters and regulators?
Does it have a proven CPU such as ARM or MIPS?ARM9.
Does it have a distributor in the western world?No idea. Ask WCH for this.
Does it have a properly translated English datasheet and SDK?They do, although the translation is a bit rusty.
Can it guarantee all its IP blocks and SDK are properly licensed so you don't have a problem exporting in massive quantity?WCH have ARM9 license and they cooked up the remaining IP cores themselves.
Has it been field tested in harsh environment, which PSoC has been?You have to ask WCH for this.
No love for the MSP430?Don't bother mentioning anything other than PSoC now in this thread - flame war ongoing. My trying to defend off the PSoC warriors is probably going to get me banned soon.
They took out the entire CP15 so it no longer an actual ARM9 core, thus only ARMv5 compatible.Does it have a proven CPU such as ARM or MIPS?ARM9.Can it guarantee all its IP blocks and SDK are properly licensed so you don't have a problem exporting in massive quantity?WCH have ARM9 license and they cooked up the remaining IP cores themselves.
If you designed a chip and used a properly licensed ARM9 core, will you call it ARMv5 compatible RISC core or just an ARM9 core?
BTW. when I say IP infringement, I mean not only IP copyright, but also patent. Strictly speaking every SD (except SPI or MMC mode) card enabled device should have an SD patent, which 90%+ don't.
SD card have built-in DRM features which is extremely underused, and that is the only other technology the SD license would offer along with UHS-II, since for generic block devices the card would be simply placed into 1- or 4-bit MMC mode, which is license free. SDHC and SDXC capacity additions are made in coordination with MMC team (hence the 16GB eMMC being available now) so it is not covered in SD license. (The DDR modes on SD cards seemed to me like a response to the 8-bit mode in MMC. Also the UHS-II additional pins seemed to me like a half-hearted imitation of UFS SCSI interface or NVMe PCIe interface.)Also show me the proof that TI or ST or NXP have SD license.
ST offers a lot of proprietary technologies, such as AAC, MP4, SD and more. They don't provide the license with each silicon as that will be too expensive for those don't need it, also, some IPs have a percentage of retail price based licensing model, rather than a flat rate.
ST however, offers a licensing program, so you can get license from ST, and essentially ST becomes a man in middle for some licensed technologies. Google ST fast MP3 decoder, that's a good example (though MP3 has just expired).
NXP does the similar thing. They offer a licensed gstreamer plugin set for iMX processors, you need to contact them for more info.
As for SD, since anyway most MCU users use SPI interface it doesn't matter, and most embedded designs use eMMC interface, that also circumvents the licensing issue. However, if you want to put an SD slot with SD interface, you have to obtain a license.
I don't see WCH offering a licensing program for the IPs they used in their demo applications.
The same extends to why people spend $4-digit to buy IP cores from Altera or Xilinx, rather than grab one from OpenCores. It's likely for a small player, getting the patent license from its true owner is more expensive then getting copyright license+patent license from an IP distributor like Altera.
There is a passing mention on Wikipedia saying that SD cards have DRM features which MMC lacked, but there is barely anyone using it AFAIK. For any other purposes SD in SPI, 1-, 4-bit and UHS-I modes is electrically and logically equivalent to, at least compatible with MMC.SD card have built-in DRM features which is extremely underused, and that is the only technology the SD license would offer, since for generic block devices the card would be simply placed into 1- or 4-bit MMC mode, which is license free. SDHC and SDXC capacity additions are made in coordination with MMC team (hence the 16GB eMMC being available now) so it is not covered in SD license.
Is there any reference for this? That will not only help me, but help a lot of people here pulling their hair on SD license.
I think historically it was SD tracking MMC and keeping being a strict superset of MMC. Coming to the SDHC days there have been a lot of cross licensing and technology feedback going on, with MMC taking up the high capacity capabilities first designed by SD association. The SD association knows what technology is being borrowed from MMC and what is their own creation.There is a passing mention on Wikipedia saying that SD cards have DRM features which MMC lacked, but there is barely anyone using it AFAIK. For any other purposes SD in SPI, 1-, 4-bit and UHS-I modes is electrically and logically equivalent to, at least compatible with MMC.
Is there a chance that MMC uses SD technology or they cross licensed each other, and SD Association exempts the use of SD technology with MMC cards, but not with SD cards?
Technology | Status |
SPI mode | SD -> MMC |
MMC/SD 1-bit mode | MMC -> SD |
MMC/SD 4-bit mode | MMC -> SD |
MMC 8-bit mode | MMC only |
SDIO | Based on standard MMC/SD 1-/4-bit mode anyway |
32GB and 2TB support (SDHC and SDXC) | SD -> MMC |
UHS-II | SD only |
DRM | SD only, rarely used |
Code Composer Studio and the free TI Compiler are pretty good. Decent libraries in their "MSP430ware" package. Well documented. A reasonable selection of packages across the line from small to large, including DIP if that's your thing. I don't care for DIP anymore but a lot of hobbyists still like it. The FRAM parts are intriguing if you were previously dependent on EEPROM or Flash. Popular and good community support. That's all important stuff, right?No love for the MSP430?
Expensive, lack of modern peripherals and the killer feature at introduction, which is ultra low power, is no longer advantageous compared with competitors.
I can spin the same PCB and leave different portions of the circuit unpopulated or underspecified.For me the PCB is likely to cost more than the chip, so I would rather not have unpopulated areas that I may never use.
Rigol built the baseline and advanced models using the same PCB people started hacking it to make the baseline model work like an advanced one. Try count up how much revenue you would lose in this kind of hacking,I wouldn't lose because I wouldn't have played such a dirty trick on my customers. And if they find a way to make it more advanced then more power to them! (warranty void of course...).
Try WCH CH563. It does all the above at the same time (the only set of conflicting pin assignments I know of is the parallel master and slave ports, but that does make sense as it can put the main CPU on hold and perform DMA on its own this way.) And it is a 32-bit MCU too based on ARM9 core.Figures. The device I am trying to duplicate (and improve) is the CH376.
I may have a different mindset than yours here - I design the top of the line product first, then cut it down to form the lower tier products.I can spin the same PCB and leave different portions of the circuit unpopulated or underspecified.For me the PCB is likely to cost more than the chip, so I would rather not have unpopulated areas that I may never use.
Think again. If you differentiate the market only by the code loaded into the PSoC, isn't that the same as the Rigol here?QuoteRigol built the baseline and advanced models using the same PCB people started hacking it to make the baseline model work like an advanced one. Try count up how much revenue you would lose in this kind of hacking,I wouldn't lose because I wouldn't have played such a dirty trick on my customers. And if they find a way to make it more advanced then more power to them! (warranty void of course...).
CH376 is a 5V tolerant chip in the first place, with internal 3.3V regulator for the USB stack... If your system does not use 3.3V elsewhere you just need to hook a bypass cap to the V3 pin and it would work.QuoteTry WCH CH563. It does all the above at the same time (the only set of conflicting pin assignments I know of is the parallel master and slave ports, but that does make sense as it can put the main CPU on hold and perform DMA on its own this way.) And it is a 32-bit MCU too based on ARM9 core.Figures. The device I am trying to duplicate (and improve) is the CH376.
I downloaded the CH563 manual, but it's written in Chinese and Google couldn't translate it. Is there an English version? Google couldn't find any suppliers either. Where do you buy the chip?
Think again. If you differentiate the market only by the code loaded into the PSoC, isn't that the same as the Rigol here?
For me if you paid more you do actually get more circuit - either more components mounted, or better components mounted.
Windows and Linux are licensed from someone else - just like the components on boards that is bought from someone else. I am talking about code you created that goes into the PSoC.
Think again. If you differentiate the market only by the code loaded into the PSoC, isn't that the same as the Rigol here?
For me if you paid more you do actually get more circuit - either more components mounted, or better components mounted.
By this logic a PC with only Linux installed on it would cost the same as a PC with some expensive commercial software pre-installed on it.
I'm just waiting for someone to ctrl+c ctrl+v here their Holy Wall Of Text of the PSOC, how it is superior to everything. BTW it's not.I think it have arrived. Well a shorter version arrived, with a link to a MUCH longer one.
I always imagine them like a bunch of birds, flying in through every window, and strating "PSOC PSOC PSOC PSOC"No love for the MSP430?Don't bother mentioning anything other than PSoC now in this thread - flame war ongoing. My trying to defend off the PSoC warriors is probably going to get me banned soon.
I always imagine them like a bunch of birds, flying in through every window, and strating "PSOC PSOC PSOC PSOC"
"You can add two values with PSOC hardware"... but I dont want to..."Its so great, its only 10 bucks for the devboard. I used it to blink an LED. Eat it! Eat it!"
No one mentions DIP packaging.No one? What about Elf's post about MSP430 just a few posts above yours?
There is no better choice if you want DIP i found out, please tell me if it is not correct.Define better? On the low end MSP430 and AVR are both available in DIP. I believe at some point NXP made an ARM Cortex M0 in DIP, but I am not sure if that is still available. I do not think there is much competition for PIC32 in DIP.
No one mentions DIP packaging.32-bit: There are the PIC32 line, LPC810M021FN8 and LPC1114FN28.
There is no better choice if you want DIP i found out, please tell me if it is not correct.
I always imagine them like a bunch of birds, flying in through every window, and strating "PSOC PSOC PSOC PSOC"This comparison is lit.
"You can add two values with PSOC hardware"... but I dont want to...And the value adding doesn't really work out in a lot of cases.
"Its so great, its only 10 bucks for the devboard. I used it to blink an LED. Eat it! Eat it!"I am okay with burning $10 now so I bought one. I am going to verify the fact content of whatever they claimed it to be. Blog posts upcoming.
"What's PSoC? Is it some kind of a microcontroller? Is it better than the other kinds?"
Your answer is on this link
https://brightcove.hs.llnwd.net/e1/uds/pd/1362235890001/1362235890001_5241352463001_2606504288001.mp4?pubId=1362235890001&videoId=2606504288001
I do appreciate the humor, but you might be feeding the flame..."What's PSoC? Is it some kind of a microcontroller? Is it better than the other kinds?"
Your answer is on this link
https://brightcove.hs.llnwd.net/e1/uds/pd/1362235890001/1362235890001_5241352463001_2606504288001.mp4?pubId=1362235890001&videoId=2606504288001
Thanks, but I think you missed the bottom line of my post... ;)
No one? What about Elf's post about MSP430 just a few posts above yours?
Define better? On the low end MSP430 and AVR are both available in DIP. I believe at some point NXP made an ARM Cortex M0 in DIP, but I am not sure if that is still available. I do not think there is much competition for PIC32 in DIP.
LPC810M021FN8 and LPC1114FN28.
MSP430 line.
Do the NXP has free compiler without any paying involved for better performance ?,It is an ARM Cortex-M0 chip so GCC and LLVM/clang would work... If you have trouble finding vendor tools you might as well skip it entirely and go straight to (vanilla) Eclipse CDT + GNU ARM Eclipse + GCC ARM Embedded toolchain.
not that PIC is bad if you set your project from optimize 0 to optimize 1 ( still free ),
it frustrates me that i risk one day to loose a lot of money because i want full optimize, i better buy nice hardware for that money.
Ok i know : need to buy converter sockets for those SMD chips, maybe a microscope and more, first lets see what i still can get in DIP.Sadly true. I tried to find the 28-pin LPC1114FN28 but all I find for LPC1114 line is QFP-48 ones.
If no one buys DIP they are being faded out of production faster also.
If no one buys DIP they are being faded out of production faster also.
A lot of cheap gadgets made in China still uses the 80's DIP on single layer board construct - damn cheap to make.If no one buys DIP they are being faded out of production faster also.
I'm surprised that any company is still making DIP parts. Only hobbyists really use them, and the volume associated with that is peanuts. It must be because they still have a large stock of legacy parts sitting on shelves.
i like to use socketed dip chips for pats that may blow up, like drivers/comparatorsFor me I socket all DIP chips regardless of purpose. The adapter boards comes with a SMD footprint and all pins broken out to breadboard compatible format. For adapters of packages SO-8 and smaller the adapter board is usually the same size as a 0.3in DIP package of the same pin count. SO and SOJ adapters can go up to 48 pins with 0.6in width. And I also have a 0.6in wide QFP48 adapter.
when making a new product i start with a protoboard with the target MCU. if same core/peripherals but dip+less pins part is available i use that one (microchip the great)
i usually don't have a lot of space for that enormous adapters, also a lot less wires to solder
for 8 bitters i prototype with sockets also because i can upgrade/downgrade/change with pin to pin compatible by just removing chip from socket and inserting a new one
I mean improvement over the best PIC chips in DIP, like top of the line, newest stuff only.It would surprise me to see any new series of micros came out in DIP. Even the recentish low-end STM8 core is not available in DIP as far as I know.
PIC chips in DIP has 28 pins, i would like to have a 40 pin package also.
Do the NXP has free compiler without any paying involved for better performance ?,I think Microchip is pretty much the only vendor to strip optimization from a compiler. More common is a code size limit for either programming or debugging. NXP has their own LPCXpresso/MCUXpresso (they acquired the company behind it, Code Red, a couple of years ago) which is Eclipse + CDT + gcc + their proprietary debugging/programming stuff. The only limitation as far as I know is a fairly generous programming limit. As with any ARM chip, you can also just grap the open source ARM gcc compiler, Eclipse, CDT etc to have a fully open source IDE.
not that PIC is bad if you set your project from optimize 0 to optimize 1 ( still free ),
it frustrates me that i risk one day to loose a lot of money because i want full optimize, i better buy nice hardware for that money.
Ok i know : need to buy converter sockets for those SMD chips, maybe a microscope and more, first lets see what i still can get in DIP.Their are also numerous development boards in DIP footprint that might work for prototyping.
If no one buys DIP they are being faded out of production faster also.
I'm surprised that any company is still making DIP parts. Only hobbyists really use them,I'm surprised that platforms such as the Arduino and Raspberry Pi exist - only hobbyists use them. ;)
CH376 is a 5V tolerant chip in the first place, with internal 3.3V regulator for the USB stack... If your system does not use 3.3V elsewhere you just need to hook a bypass cap to the V3 pin and it would work.I don't think you quite understand. The CH376 'works' but has performance issues. Since it doesn't appear to be hackable, I need another chip to replace it.
It takes time and money to translate the documentation. I can help but only if someone is willing to pay for the labor.CH376 is a 5V tolerant chip in the first place, with internal 3.3V regulator for the USB stack... If your system does not use 3.3V elsewhere you just need to hook a bypass cap to the V3 pin and it would work.I don't think you quite understand. The CH376 'works' but has performance issues. Since it doesn't appear to be hackable, I need another chip to replace it.
You suggested the CH563, which looks like it could be a good choice. However without a readable datasheet and source of supply it is useless. Can you help me? If not then PSOC is still my best option.
Sadly true. I tried to find the 28-pin LPC1114FN28 but all I find for LPC1114 line is QFP-48 ones.
You can find adapter boards for most SMT packages that fits breadboards. I even have QFP-48 STM32F303CCT6 on such adapters.
I second the adapter boards - I've used 48 and 64-pin packages on breadboards via them - its not ideal but it gets the job done.
It takes time and money to translate the documentation. I can help but only if someone is willing to pay for the labor.You don't need to translate it, just convert the pdf text to something Google Translate can handle (or tell me how to do it).
Try open it with Windows version of Word 2016.It takes time and money to translate the documentation. I can help but only if someone is willing to pay for the labor.You don't need to translate it, just convert the pdf text to something Google Translate can handle (or tell me how to do it).
These are fancy.I second the adapter boards - I've used 48 and 64-pin packages on breadboards via them - its not ideal but it gets the job done.
I use lots of adapter boards with sockets. They let you easily prototype with practically any package. This one is for TQFP:
(http://www.northernsoftware.com/forum/s100pin.jpg)
I use them even with DIP packages, which are still the easiest to deal with:
(http://www.northernsoftware.com/forum/s40pin.jpg)
For dual packages, such as SOIC or SSOP, I solder them on a PCB SSOP-to-DIP adapters and then I can easily plug them into my ZIF sockets.
Some manufacturers think the hobbyist, educational and and small-scale professional markets aren't worth chasing. They make MCUs you never heard of and nobody wants.
I think Microchip is pretty much the only vendor to strip optimization from a compiler. More common is a code size limit for either programming or debugging. NXP has their own LPCXpresso/MCUXpresso (they acquired the company behind it, Code Red, a couple of years ago) which is Eclipse + CDT + gcc + their proprietary debugging/programming stuff. The only limitation as far as I know is a fairly generous programming limit. As with any ARM chip, you can also just grap the open source ARM gcc compiler, Eclipse, CDT etc to have a fully open source IDE.
I write LUTs in C (big const array) so...I think Microchip is pretty much the only vendor to strip optimization from a compiler. More common is a code size limit for either programming or debugging. NXP has their own LPCXpresso/MCUXpresso (they acquired the company behind it, Code Red, a couple of years ago) which is Eclipse + CDT + gcc + their proprietary debugging/programming stuff. The only limitation as far as I know is a fairly generous programming limit. As with any ARM chip, you can also just grap the open source ARM gcc compiler, Eclipse, CDT etc to have a fully open source IDE.
A program limit or no optimize is the same to me, i would like to use all space possible for lookuptables without limits,
using all space for lookuptables can only be done with ASM for PICs, i only can code in C.
How about the competition ?, can they use all ROM for LUTs ?
Open source sounds good, if i dont have to compile anything, i like original stuff better.
About these adapter boards with sockets for SMD parts - Do they cause problems with external capacitors or crystals that need to be very close to the MCU pins?
A program limit or no optimize is the same to me, i would like to use all space possible for lookuptables without limits,With programming limit I meant the size of the file it will program in a target. That is what NXP does in their own IDE. Again, it is just a packaged version of GCC, GDB, Eclipse, CDT, etc, plus some features like dedicated register views. There are other packaged versions of this stuff like Atollic (https://atollic.com/truestudio/) (limits advanced features like multi core, tracing and RTOS, no code size). I believe CooCox CoIde (http://coocox.org/software.html) is fairly popular with Windows users wanting a free IDE without having to do much setup. Generally these third-party IDEs will support all common ARM Cortex lines like STM32, NXP LPC1xxx andTI Teva.
using all space for lookuptables can only be done with ASM for PICs, i only can code in C.
How about the competition ?, can they use all ROM for LUTs ?
Open source sounds good, if i dont have to compile anything, i like original stuff better.
static const uint8_t[0x20000] = { 1, 4, 6, ... };
Should end up in ROM.
I do not see the problem with putting stuff in ROM in C. Something likeCode: [Select]static const uint8_t[0x20000] = { 1, 4, 6, ... };
Should end up in ROM.
Maybe you need to add some kind of keyword to tell the compiler you need to put the code in program Flash, like the PROGMEM on AVR.I do not see the problem with putting stuff in ROM in C. Something likeCode: [Select]static const uint8_t[0x20000] = { 1, 4, 6, ... };
Should end up in ROM.
I wish that would work for my DSPIC33FJGP802
it can only be done in ASM they say, i need that without learning ASM.
Someone posted some ASM code, i dont wanto copy it without knowing what it is, unreadable stuff.
Then i wanto mix it together with C code, maybe that can mess things up also ?
using all space for lookuptables can only be done with ASM for PICs, i only can code in C.
void ascii_lookup_14seg(){
//make known this 'function' used with 'global'
//prepend '_' to asm name
asm("global _ascii_lookup_14seg");
//as much data as needed (14bit or less)
asm("dw 0,6,544,4814,4845,3108,9053,1024");
//return added here, is ok
}
uint16_t rom_read(uint16_t waddr)
{
PMADR = waddr; //set address
CFGS = 0; //flash space
RD = 1; //start read
NOP(); //next 2 instructions ignored
NOP();
return PMDAT;
}
uint8_t n = 3;
uint16_t val = rom_read( (uint16_t)ascii_lookup_14seg + n );
const unsigned short sinus65536[ 65536 ] = {This is huge - 256kB for a 64k-entry 32-bit LUT. Usually for this big an array I would compress the data in some way - either leveraging the mathematical properties (like for sine and cosine you only need 1/4 of one cycle of one waveform to store both) or using plain old compression algorithms (unlzma an array of data in ROM into external RAM)
0,
};
I do not see the problem with putting stuff in ROM in C. Something likeCode: [Select]static const uint8_t[0x20000] = { 1, 4, 6, ... };
Should end up in ROM.
I wish that would work for my DSPIC33FJGP802
it can only be done in ASM they say, i need that without learning ASM.
Someone posted some ASM code, i dont wanto copy it without knowing what it is, unreadable stuff.
Then i wanto mix it together with C code, maybe that can mess things up also ?
void someFunction(uint8_t* data) {
if (write8bits) {
for (int i = 0; i < 8; i++) {}
}
}
Because deceleration of variables must be at start of function. |Oe.g does static const uint8_t[] = { 1, 4, 6, ... }; fail?No, that works fine.
where this is not allowedIt works just fine. If you want to declare (or decelerate) variables in that for loop, go right ahead.
That's why I really like a modern 32 bit CPU. Just buy a STM32F4, and you'll have integrated hardware floating point support, runs at 168 MHz and can do sin/cos calculation in realtime with 48 kHz samplerate and normal floats (4 byte single precision, I'v tested this, no problem). Nearly the same price as a dsPIC. And no crippled or non-standard compiler, the full power of GCC for ARM.If you need even more speed (increased sample rate, channel count or complicated algorithm) you can step up to Allwinner V3s or Raspberry Pi Zero W. The former is much faster (Cortex-A7 @1.2GHz) but have a lot less RAM (64MB) and lacked a GPU. The latter is still fast (ARM1176JZF-S @1GHz,) have a lot more RAM (512MB for your LUTs) and have a GPU for your highly parallel math (like FFT.)
Just buy a STM32F4 ... Nearly the same price as a dsPIC.
That's why I really like a modern 32 bit CPU. Just buy a STM32F4, and you'll have integrated hardware floating point support, runs at 168 MHz and can do sin/cos calculation in realtime with 48 kHz samplerate and normal floats (4 byte single precision, I'v tested this, no problem). Nearly the same price as a dsPIC. And no crippled or non-standard compiler, the full power of GCC for ARM.If you need even more speed (increased sample rate, channel count or complicated algorithm) you can step up to Allwinner V3s or Raspberry Pi Zero W. The former is much faster (Cortex-A7 @1.2GHz) but have a lot less RAM (64MB) and lacked a GPU. The latter is still fast (ARM1176JZF-S @1GHz,) have a lot more RAM (512MB for your LUTs) and have a GPU for your highly parallel math (like FFT.)
Since both have connectivity options (wired Ethernet for V3s, Wi-Fi for Raspberry Pi Zero W,) you can use it as a gateway streaming the data to another system for computing (e.g. a workstation with a dual Intel Xeon and dual GeForce GTX 1080 Ti, or a virtual machine on Amazon EC2 or DigitalOcean.)
Raspberry Pi Foundation and Broadcom have released a GPU computing library, and FFT is one of the algorithms implemented in GPU. And there is a demo program that performs FFT in command line.That's why I really like a modern 32 bit CPU. Just buy a STM32F4, and you'll have integrated hardware floating point support, runs at 168 MHz and can do sin/cos calculation in realtime with 48 kHz samplerate and normal floats (4 byte single precision, I'v tested this, no problem). Nearly the same price as a dsPIC. And no crippled or non-standard compiler, the full power of GCC for ARM.If you need even more speed (increased sample rate, channel count or complicated algorithm) you can step up to Allwinner V3s or Raspberry Pi Zero W. The former is much faster (Cortex-A7 @1.2GHz) but have a lot less RAM (64MB) and lacked a GPU. The latter is still fast (ARM1176JZF-S @1GHz,) have a lot more RAM (512MB for your LUTs) and have a GPU for your highly parallel math (like FFT.)
Since both have connectivity options (wired Ethernet for V3s, Wi-Fi for Raspberry Pi Zero W,) you can use it as a gateway streaming the data to another system for computing (e.g. a workstation with a dual Intel Xeon and dual GeForce GTX 1080 Ti, or a virtual machine on Amazon EC2 or DigitalOcean.)
Did you try to write application that would do FFT on GPU on RaspberryPi?
Ok so you didn't. What about Allwinner stuff?Allwinner chip does not have an built-in GPU so all computation have to be handled using the Cortex-A7 core. You just pick your favorite, fastest ARM implementation of whatever algorithm you are using. Or just stream the data off to another computer that have more beefy processors.
Of course, if you buy one, the difference between $3 and $10 is not important. If you buy dev boards instead of chips, there may be no difference whatsoever. However, just $20 more will buy you much better processor, and for just $100 more you can buy Zynq which leaves the STM32F4 in the dust. Why do you settle for STM32F4?
Ok so you didn't. What about Allwinner stuff?Allwinner chip does not have an built-in GPU so all computation have to be handled using the Cortex-A7 core. You just pick your favorite, fastest ARM implementation of whatever algorithm you are using. Or just stream the data off to another computer that have more beefy processors.
A pic32MZ can be about as cheap as that stm and run up to 250 MHz! Even faster.
You can run ANY processor bare metal. It's just aboiut how much work you need to do to configure it, and what tools are available to help.
It's just pain to use those Allwinner or Broadcom processors. External RAM, etc... You can't run them bare metal. I am all the way of using simple ARM F-series where possible.
If you use a Zynq, probably with Linux, or a Raspberry Pi with Linux, it can be more difficult to implement hard realtime or low latency applications. With a microcontroller it is easier to program more low-level.
You can run ANY processor bare metal. It's just aboiut how much work you need to do to configure it, and what tools are available to help.
It's just pain to use those Allwinner or Broadcom processors. External RAM, etc... You can't run them bare metal. I am all the way of using simple ARM F-series where possible.
If there is a Linux BSP, you should be able to extract the needed initialisation code from that.
Not if you run the realtime process from software. Besides that many microcontrollers have DMA which gets you hardware defined realtime performance for reading/writing data to peripherals. And let's not forget PWM peripherals which can deal with overcurrent protection in hardware.If you use a Zynq, probably with Linux, or a Raspberry Pi with Linux, it can be more difficult to implement hard realtime or low latency applications. With a microcontroller it is easier to program more low-level.
Quite opposite. With Linux or not, Zynq will be much better at "hard realtime" than any MCU. Zynq's real-time is measured in picoseconds.
Quite opposite. With Linux or not, Zynq will be much better at "hard realtime" than any MCU. Zynq's real-time is measured in picoseconds.
Not if you run the realtime process from software.
Is that just down to poor documentation though? or non-sensible default register values?You can run ANY processor bare metal. It's just aboiut how much work you need to do to configure it, and what tools are available to help.
It's just pain to use those Allwinner or Broadcom processors. External RAM, etc... You can't run them bare metal. I am all the way of using simple ARM F-series where possible.
If there is a Linux BSP, you should be able to extract the needed initialisation code from that.
You can. Did you try that? Never seen a sane man doing this. I see people proposing those Allwinner chips like it would be easy to write some sort of general-purpose applications on them, but the problem that it isn't. People never tried to do some simple stuff like reading ADC values or using interrupts and still propose the same stuff.
And simd instructionsA pic32MZ can be about as cheap as that stm and run up to 250 MHz! Even faster.
At Digikey the cheapest PIC32MZ costs EUR 7.21. But it runs at 200 MHz, and has even 64 bit floating point hardware, that's nice.
Is that just down to poor documentation though? or non-sensible default register values?Not sure about the AllWinner, but I believe Broadcom is very reluctant to give you a full datasheet unless you are a large volume customer. No publicly available datasheets beyond basic pinout information last time I checked (which admittedly was a couple of years ago). Of course you could try to reverse-engineer it from the Linux code.
Just observing that nobody does it doesn't mean it's any harder than any other processor unless you can cite some specific reasons.
Not sure about the AllWinner, but I believe Broadcom is very reluctant to give you a full datasheet unless you are a large volume customer. No publicly available datasheets beyond basic pinout information last time I checked (which admittedly was a couple of years ago). Of course you could try to reverse-engineer it from the Linux code.
That is a lot better than it used to be, but still seems not enough to create start-up code on bare metal. For example, I see nothing about setting up clocks, interrupt vectors, memory etc.Broadcom just assumes you will be using the Raspberry Pi hardware which comes in those startup code already programmed in the internal mask ROM. For the Pi the SD card is not loaded until the DRAM and clocks are already up.
You can run ANY processor bare metal.Some chips have their really low-level initialization details obscured in confidential/NDA documents. Notably Intel CPUs. I think there's a "BIOS Implementors Guide" that is red-cover-difficult to get your hands on. (IIRC, "Red cover" means customers can only look at it when "escorted" by an Intel Rep. There are Orange (You can have this if you promise to keep it under lock and key) and Yellow cover (you can have this but don't give it to anyone else.) (I had access to some Yellow-cover documents at one point. They really didn't seem to contain stuff that should have been subject to that level of protection. (Perhaps they were pre-release?))
Test it!
How fast does it need to be? Maybe you can use an external ROM chip for the big LUTs, especially if your processor supports accessing SPI Flash using the normal address space.Test it!
It dont works, bah, no huge sinus table for the DSPIC.
How fast does it need to be? Maybe you can use an external ROM chip for the big LUTs, especially if your processor supports accessing SPI Flash using the normal address space.
this is how you'd have to do it with a single processor :)
Yes, i really hope Microchip would release a modern version of this chip with stereo audio DAC, the DSPICFJ128GP802 is very old already.
at some point there is little gain in thd/aliasing between full 16bit 64k entry and fewer entries interpolated between them (even linearly)
long out;
out = sinus[ phase & MAX ]; // base partial
phase *= 2;
out += sinus[ phase & MAX ] / 2; // second harmonic
phase *= 3;
out += sinus[ phase & MAX ] / 3; // third harmonic
and so on until the Nyquist frequency is reached ( half the samplerate ).
out /= 2;
[\code]
I think newer ones come with I2S instead of DAC - dsPIC33EPxxxxx8xx, assuming you would use I2S capable digital amplifier instead of analog one. World is changing from analog to digital :)
this is how you'd have to do it with a single processor :)
Yes, i really hope Microchip would release a modern version of this chip with stereo audio DAC, the DSPICFJ128GP802 is very old already.
I get currently 4 notes of polyphony, with 8 drawbars + autopan @ 44K1Hz.
With all tone-wheels derived from 2 base oscillators per voice.
I am not familiar with the PICs, but if you are switching MCUs you can try have a look into the STM32F4 series - like STM32F405RGT6. That chip have native I2S, FPU, 168MHz operation and 1MB built-in Flash. If 1MB is not enough for your LUT you can step up to STM32F427VIT6 (2MB Flash) or STM32F429ZGT6 (1MB Flash, bigger package to allow the use of an external SDRAM chip.)this is how you'd have to do it with a single processor :)
Yes, i really hope Microchip would release a modern version of this chip with stereo audio DAC, the DSPICFJ128GP802 is very old already.
I get currently 4 notes of polyphony, with 8 drawbars + autopan @ 44K1Hz.
With all tone-wheels derived from 2 base oscillators per voice.
nice :)
You pic has DMA and probably also SPI in framed mode.. I read somewhere that it could mimick I2S in left/right mode
i feel you on this dspic is old i wish it would be updated... i'm in the very same situation but with another dspic with another specialty peripheral :(
i hope microchip isn't planning to stop the 16 bit line, it's the one i use the most both at work and at home.. Local microchip rep assure me they won't be made obsolete but still..
anyway they _are_ releasing new chips, GS series is a beast for digital SMPS controller and they just put out a digital SMPS controller which has a very simillar pinout and peripherals ;) (i suspect this dspic with a mask rom)
may i suggest you upgrade this dspic to a 33EP part? even though you gain one cycle latency for RAM, 2 for ROM and jumps.. core can run at 70 MIPS. This, with some new instructions optimized for loop and DSP instruction that do dual data fetch you could probably gain a few more vouces :)
I only use DIP packages
Lots of flux.For me it is easier to solder TQFP than using DIP chips, and you can use it on a breadboard with an adapter (cheap at eBay).
Mind let me know how do you manage to solder TQFP parts? I solder down to 0402/0.5mm BGA/0.4mm QFN without problems, due to self alignment and shorter (practically zero) pin length (allows nowhere for bridging to happen).
When I solder TSSOP/TQFP chips, bridging happens all the time. I know a concave shaped hoof tips will help, but Metcal doesn't have such tips.
This will restrict you a lot. For me it is easier to solder TQFP than using DIP chips, and you can use it on a breadboard with an adapter (cheap at eBay).I agree; most of the parts I want to use these days only come in surface mount. So I just went all in and set myself up for it.
I solder down to 0402/0.5mm BGA/0.4mm QFN without problems, due to self alignment and shorter (practically zero) pin length (allows nowhere for bridging to happen).
For me it is easier to solder TQFP than using DIP chips, and you can use it on a breadboard with an adapter (cheap at eBay).
I know a concave shaped hoof tips will help, but Metcal doesn't have such tips.