2011-09-12

Pinguino32X versão svn x.2

A nova versão da IDE Pinguino para PIC32 e PIC18, já está disponível, neste final de semana atualizei a biblioteca ITDB02 para o PIC32, a versão x.2 é uma grande revisão do projeto PIC32 inicial, bem como têm muitas atualizações para PIC18.

- Suporta um número maior de placas PIC18 e PIC32
- Compilador open source para PIC32 com otimizações, que são pagas na plataforma C32 da Microchip (-O2 e outras)
- Devido a essas otimizações o display ITDB02 não estava se garantindo com a nova velocidade, patch

Para instalar a partir do svn use o comando:
svn checkout http://pinguino32.googlecode.com/svn/trunk/ pinguino32-read-only

15 comentários:

Pinnchus disse...

No he podido compilar ninguno de los ejemplos. Suele arrojar errores del tipo:

/home/arduino/Pic32SVN/pinguino32-read-only/p32/include/pinguino/libraries/itdb02/itdb02_graph16.c:76:3: error: 'PORTA' undeclared (first use in this function)
/home/arduino/Pic32SVN/pinguino32-read-only/p32/include/pinguino/libraries/itdb02/itdb02_graph16.c:77:3: error: 'LCD_WR' undeclared (first use in this function)
/home/arduino/Pic32SVN/pinguino32-read-only/p32/include/pinguino/libraries/itdb02/itdb02_graph16.c:85:3: error: 'LCD_RS' undeclared (first use in this function)
/home/arduino/Pic32SVN/pinguino32-read-only/p32/include/pinguino/libraries/itdb02/itdb02_graph16.c:90:3: error: 'LCD_RS' undeclared (first use in this function)

Estoy haciendo algo mal?

Marcus Fazzi disse...

Are you using correct board? see preferences ...

Pinnchus disse...

Hi..., I'm using OLIMEX PIC32 Pinguino OTG and that is selected in preferences. I suppose this is for emperor devices. Is this code developed to other device?

Regards,

Marcus Fazzi disse...

Pinnchus, you right my code is for EMPEROR and UBW32 devices ... using PIC32MX460 or PIC32MX795, I have one Pinguino32 from OLIMEX, but not have time ... sorry...

tdr disse...

Hi,

I have the same Problem atm.

But you can make the Sketch to Compile if you add to the Line

> #if defined(UBW32_460) || defined(UBW32_795) || defined(EMPEROR460) || defined(EMPEROR795)


|| defined(PIC32_PINGUINO)

next to the Line.
or maybe in your case || defined(PIC32_PINGUINO_OTG)


This makes it to compile, but i only get a White Screen...

any news on this ?

Marcus Fazzi disse...

That not works with Pinguino32 from OLIMEX because PORT use ...

I need make some changes under that portion of code ... TDR ...

tdr disse...

Can you tell me which files have to been modified for the port mapping ?
Maybe i get some time looking into it.
Really need the display...

Thanks !

Marcus Fazzi disse...

You need look for two PORTs at Olimex board one with 5pins for control and another with 8 pins for data...

Look at file:
path_to_pinguino32/trunk/p32/include/pinguino/libraries/itdb02/itdb02_graph.h

On lines: 98 to 101 ...

That file is for 2.4" and 3.2" displays with 8bits data bus, if you need another display look on 16bits data bus files itdb02_graph16.h (3.2") and itdb02_graph16w.h (3.2" wide)

tdr disse...

Well, thanks for the Info.
Seems like we nned PortD2-8,11, PortB14-15 and PortG9-6
"act" like they were PortD0-13..

The PortB1-4(A0-A3) could be used as Control Pins.

How do you do that ? I saw someone did it with individual digitalWrites.
But then the data Format is wrong..

I appreciate any help,
regards

Marcus Fazzi disse...

TDR, digitalWrite is very slow for use with graphic color displays, I made some C macros, called fastWriteHigh, fastWriteLow and setMode

All you need change are in itdb02_graph.h file.

tdr disse...
Este comentário foi removido pelo autor.
Pinnchus disse...

I think the right option is to use the RE port RE0 to RE7 in CON3, because the other ports are split or used in other things.

Pinnchus disse...

I'm stuck trying to find the right pinmode/pinmask for the D port in digitalw.c file.

Can't find an i/o image to compare with Olimex PIC32 OTG the arrays or documentation to understand how they are facing the mapping.

Do you have any documentation about digitalw.c ?

regards,

Pinnchus disse...

Thanks Anunakin, whit the follow modification it compile OK, and i thing it will work like a charm...

.
..
...

//TODO: Test on OLIMEX boards <<<< NOT IMPLEMENTED >>>>

#define LCD_DATA_DIR TRISE //Data Direction Register for Data Port

#define LCD_DATA_BUS PORTE //Data Bus


#define LCD_CMD_SET PORTDSET

#define LCD_CMD_CLR PORTDCLR

#define LCD_SET_OUT TRISDCLR


//PORT D D5,D6,D7,D8,D11

//Pins for Emperor Board are: 54 47 45 and 44 (emeperor) (RE0, 4,5 and RE6) look on digitalw.c for pinmasks and ports

//Using inline/defines is a bit more fast and use less RAM and Flash, then use digitalw.c pinMode/pinmask array

#define LCD_RS 0x20

#define LCD_WR 0x40

#define LCD_CS 0x80

#define LCD_REST 0x100

//END TODO:

#endif
...
..
.

Ed Trawtmam disse...

Olá Anunakin!
Estou com uma placa com o LM3S5632, da Texas. É um chip da família Stellaris Cortex M3. Bem, é a primeira vez que me aventuro com esse chip e, como a família está na lista de compatibilidade do Pinguino, achei que seria uma boa experimentar!
Mas, preciso de umas dicas, hehehe...
O bootloader dele é Serial/SPI (AN01242)... vou conectá-lo ao micro via adaptador USB-Serial/Max232... Que placa escolho na IDE para tentar compilar um blink da vida? Tem algum link legal pra me sugerir? Valeu!!!