1. The pic24fj64ga002 with 28 pins is what i was told to use on my personal board for this project, however the book i got teaches how to use the LCD with a HD44780 controller which i will get also, however it wires the PIC to pins PMWR.PMRD,PMA0,PMD1,PMD#0-7. On the PIC24FJ64GA002 are these the same as the RB#? just I/O pins.
2. If theyare I/O pins i should just be able to use whatever I/O pins i want on the 28 pin PIC, in the book they use somthing called PMP, can I also use this on the PIC24FJ64GA002 b/c this way seems very simple?
3. Also when looking through the example it says the PMDATA will be published on the PMP data bus (PMD0-PMD7). Does the controller automatically know which pins are where? I don't see any where in the C example code that assigns anything to the I/O ports?
As stated above i am just diving right into this so if my questions make no sense i am sorry.
This part features a Peripheral Pin Select Crossbar, which is a godsend to board designers because most peripherals- both input and output- can be assigned to the pins which work out best on the board. I can do some REALLY complicated stuff with a single-sided board with PPS and the wires won't need jumpers. Pins labeled "RPn" are remappable.
However, the Parallel Master Port- PMP- is NOT a remappable peripheral. It's permanently tied to the pins labeled "PMxxx". If your demo board does not wire the LCD to these pins, you cannot use the PMP. However, if they ARE wired to the PMP pins, the PMP can still be turned off and the LCD controlled through the pins used as regular port pins.
You don't need the PMP to talk to an LCD. In fact IMHO it'll unnecessarily complicate the project. And it won't teach you much, frankly, the PMP is a very specific module so it's not gonna teach you much about how IO works. Unless you SPECIFICALLY want to learn to use the PMP, just write to the port pins like 99.9% of people using PICs and LCDs. Code written for the PMP would need some significant rewrite to use the port pins- then again, there's like a million pieces of C code out there for controlling LCDs with PIC through the normal port pins.
The use of the PMP requires a part with a PMP, like the 24FJ64ga002. A limited subset of the PIC product lines have a PMP, and the way the PMP module works may vary. Ports, however, ANY PIC with enough pins can do that, and the way the ports work does not vary, C tasks written for the 16F will generally work on an 18F, 30F, 24F, and 33F.
What's the difference? Well, I can write all of 16 Port B's output pins to 1 (high) at once as "LATB=0xffff;" PIC 18F uses 8 bit ports at most.
The PMP allows you to configure the PMP module and write to a FIFO buffer to send the words out. But for an LCD, the writes are so simple it's way more complicated (and risky, the modules sometimes have "gotcha" problems where it won't work the way you wanted, or even errata bugs) than just writing the port directly.
I recommend you configure the LCD for 8-bit writes. You will need to be sure that you wire all the LCD data bus pins to a single port, in order. D0=RB0, D1=RB1, ... Or D0=RC0, D1=RC1, ...