JAL language started as a subset of VHDL language and now it is close to Pascal. No chance to compile C language . But is the best free compiler around here which can fight with commercial ones from equal positions. It is the best for PIC12/16 families and good enough for PIC18 family. Going down to assembler? With a good high level compiler as JAL you don't need to. But if you want, JAL include also assembler. JAL is easy to learn. The free C variants (we also have C++ for PICs) here are in no way better than JAL in the resulted HEX file. Unfortunately, and I don't know why, Microchip don't want to release for free his PIC C compilers and I mean the ones with the full optimization. We always wanted to have a GNU C compiler as AVR programmers have.
V-USB is great indeed, it would be great to be ported also for PICs. It can't compare with a HW USB (you obtain with V-USB only 1Mb/s transfer and the HW can do 12Mb/s) but is still great.
It is a little unfair to compare the prices for ATmega328 when it can't be supplied anymore in DIP package - is missing also form two online shops from my country, where I have access. We have plenty of AVRs here - Romania is in Europe .
But is not about me. Is about South America and other countries with difficulties in obtaining ATMEL microcontrollers. And when this is happening, an ATmega will be always expensive. If you read the thread from the beginning, you can have a right image about. For them, Pinguino is a nice solution. For others, is fun to play with it and to contribute to a better language compatibility.
Yes, is Google's fault - I'm from Romania. Working with peripherals and registers can be easy when you understand the mechanism. It was easy for me to (after I saw an example) set a digital pin as output and input (beyond pinMode() and digitalWrite() ) when I tried for the first time an ATmega32/644P after months of PIC programming. No big deal. Only at configuration bits I got toasted . But only once.
Thanks to mikroElektronika, I can program in C, Pascal, Basic, both types of microcontrollers, and using even the same board layout. So, no problems at all. See my site: - ATMEL online only Arduino language for now. - Microchip various languages. BTW, bank problem is automatically hidden by many compilers/languages so programmer is not aware of.
Yes, here are PICs with hardware UART and others without (in this case you can use only software serial). Now Microchip produce a PIC at 16MIPS, with ATmega328 performance but double flash and RAM memory. You can build with it a compatible Arduino/Sanguino board, at hardware level, using the same FTDI chip or using a variant with USB native. But I think you saw already many boards Arduino like which use different micrcontrollers - also here not big deal.
What I'm trying to say is, you must be able to deal with any microcontroller available on your zone, in a similar way or better. Arduino language was chosen because of the huge existing database. And it proved to be a bridge between the worlds.
Só para adicionar que existem ainda chips que comunicam através de UART... coisa que um chip com USB provavelmente não terá.
Nope, UART is also there, ready to be used. Yes, you can have two variants of ported libraries which use UART - with Serial USB, or with UART if you want to adapt the code for yourself.
Mas cada caso é um caso e deve ser ponderado no inicio dum projecto. No entanto, só de pensar no pesadelo que é configurar um PIC com as mudancas de bancos, prefiro ter mais um chip na placa e usar AVR. Existem já AVRs com USB, mas são de 32 bits e mais virados para o mundo dos DSPs.
I don't argue on this. For a poor student, the availability and price of AVRs are the main problems where he lives. So, an alternative had to be created. This is what is Pinguino today. An alternative with a cheap and common microcontroller. If ATMEL problems (the ones above) will ever change, be sure that the right micrcontroller will be chose. But we can't wait so we must continue to prepare students, learning them Arduino language, being able one day to address any of microcontrollers, better prepared than others... I hope you now understand the big picture.
There is Pinguino project which use SDCC C compiler (Win, Mac, Linux) to provide Arduino sketch compatibility. Though, it is only a C and not C++. Some classes are simulated via a parser but this is made under the hood.
Anyway, personally I use JAL (this compiler is also available under Win,Mac,Linux) language which produce a much smaller and faster code. I'm using the board with an USB bootloader but also directly with Pickit2 programmer when I test other compilers/languages.
Here are some links for anyone inteested: Jallib group - a discussion group about JAL libraries development Jallib code - Jallib project hosted onGoogle code Just another language.org - The official site of Jallib project which include tutorials and free books (entire project is free, open source)
If I understand correctly, you bought a board made for a PIC but, because you are AVR programmer, you would like to stick an ATmega instead - you want an adapter for that.
Well, an image and a link would help a lot. Generally, you can use (via wires) the oscillator connections (if the quartz frequency fits for an ATmega), and voltage and ground. For other peripherals (see, is hard to make an analysis without seeing the board) you must find out what peripherals are (SPI, I2C/TWI, Onewire, etc.) and connect them according to AVR specifications... no big deal... For LED's, relays, buttons, you decide which AVR pins must be used, because you are the designer of your application. The application which come for PIC microcontroller is not good for AVR. [Guessing... guessing...]
I'm doing exactly opposite: I'm using the peripherals of an ATmega board (EvB4.3) with a PIC microcontroller.
Well, we have already one (FreeJALduino) based on PIC18F2550 with USB support, Arduino compatible pinout, but as Arduino MEGA, it offer SPI and I2C compatibility only at software level.
With PIC18F25K22 and better, 18F26K22 (announced but not yet in production), we can match Arduino performance and also offer hardware SPI and I2C (pinout) compatibility. So, I expect that Sebastien will make it possible.
P.S. But about FreeJALduino and Pinguino boards is already a topic on your forum at Portugheze section: "Arduino com Pic". And, as you can see, we are on the PIC side but also on your great family. We are glad about this achievement.
Here are photos from an workshop in Venezuela (South America) with Pinguino and Arduino language (Pinguino IDE).
It can be a "hungry for tech" market for ATMEL if can provide an USB chip 28/40 pin DIP in enough quantities and cheap. Until then, there is PIC18F2550/4550 as the only solution to simulate an Arduino like chain development. And Jean-Pierre Mandon and his team are working hard to address all aspects of a complete Arduino language solution. And for people not accustomed with C/C++, here will always be JAL language.
Regarding to PIC18F2550/4550 availability there are no problems. Is easy to find it on South America continent (I am from Europe) than any other ATmega. Though this is not an obstacle for fans if they find Arduino language to be easy and want to benefit from the huge community of Arduino programmers. How?
Using a Pinguino board (PIC18F2550/4550) with Pinguino IDE(Arduino language for PICs using the humble SDCC compiler). A Pinguino board is more easy and cheap to build by anyone. This is a great example of how to benefit from the both worlds. Right now, Pinguino board is successfully used in South America Universities as an Arduino teaching tool.
"To prefer" is a way of discussion but ... Personally, I like both processors. Right now I just learning PICs but not in an exclusive way (I have an ATmega32 which I bricked already - don't laugh - and I want to unbrick it using PIC18F2550 and JAL language).
"Benefit for PICs users"... well, as I said, we have our own Arduino boards and we can use Arduino shields and also our own.
Is a good way to combine both worlds of fans. AFAIK, Massimo Banzi is an "old" PIC and JAL programmer. In those early times, JAL was a good compiler but lacked many features of modern compilers. Not the case anymore.
There, at Jallib project, we have JAT (in develoment right now but already good results), some kind of JAL to C translator (in fact, is more than that) which permit to program in JAL and target many families of processors. AVR, ARM, etc... As you can see, we (well, some of us) are multiplatform oriented.
And not the last, many beginners find PICs more accessible and start with PICs. Why not have this bridge between the worlds?
We have such boards (Pinguino, FreeJALduino) but here can be many reasons of why to do this:
- you have already an Arduino and fitting an 18F25k22 is more easy this way, because soldering a FTDI chip can be impossible for many. - you cross develop and want to quickly test between the two platforms. - you have a bricked ATmega and also have PIC background. - you are bored by your Arduino? - you are designing a "pure" Arduino board based on 18F25K22 and want to test the concept... - you don't want to make another complex board as is an Arduino clone... - you want to enter inside PIC world without giving up on your Arduino board (psychologically, can be helpful). - just for fun