Go Down

Topic: LPC810 mini ARM Prozessor in 8 pin dip package (Read 4083 times) previous topic - next topic

bobcousins


I have installed EGit and tried to grab the repo but it asked me too many damn questions and by that time I'd had a gut full.


With github if you just want to download a copy of a repo without faffing with git, there is always the option to grab a zip snapshot using the Download Zip button.

In this case the link is https://github.com/bobc/OpenLasp/archive/master.zip
Please don't PM me asking for help. Ask questions in the forum.

bobcousins


@bob:
In the current version of your repo is a problem for the LPC8: it runs only half speed. This is bad because the serial port is not working as expected.
Somewhere in the initialization must be an error.
In my repo it is running with the desired speed:
https://github.com/ChrisMicro/LPC810_CodeBase


It looks like SystemInit was not being called! Due to missing compiler flag. There may be some other flags I missed.
I also added in some changes from your LPC810CodeBase repo, and moved the tone.cpp files to the cores/lpc810, I didn't realise they are standard Arduino functions.

I have pushed the changes to my OpenLasp repo.

In your LPC810CodeBase you have a makefile and an eclipse project, they seem to be slightly different. I was working from the makefile verson, but I think that does not support C++. I suspect that we will need to use cr_startup_lpc8xx instead of gcc_startup_lpc8xx to get C++ initializers called. I'm not sure why there are two different startup files.
Please don't PM me asking for help. Ask questions in the forum.

ChrisMircro wrote
>Somewhere in the initialization must be an error.In my repo it is running with the desired speed:
Bob wrote:
>It looks like SystemInit was not being called! Due to missing compiler flag. There may be some other flags I missed.

I found a workaround, it is the missing __USE_CMSIS:
https://github.com/ChrisMicro/OpenLasp/commit/f689333ba1f8233ed34dcb44bf84bf705668020b

Ah, ok, I was missing that you have already merged the changes.

> I suspect that we will need to use cr_startup_lpc8xx instead of gcc_startup_lpc8xx to get C++ initializers called. I'm not sure why >there are two different startup files.

I have also no idea about that because I just used it as it came from "microbuilder".

But I have another question for the

LPC810 EXPERTS

in this forum:
For a clean sound generation a 30kHz PWM interrupt would be needed.
But I didn't succeed with that. When I enable the interrupt, the PWM hangs up after some cycles.
The code is here:
https://github.com/ChrisMicro/LPC810_CodeBase/blob/master/src/sct.c

bobcousins

Yay! Finally an LPC810 arrived in the post.

Unfortunately, I have been unable to get flushmagic.py to work on Windows. However, lpc21isp works fine, and as that is generally a better solution for Windows, I propose to use lpc21isp instead.

It might be better to use it on Unix too, what do you think?

Please don't PM me asking for help. Ask questions in the forum.

Graynomad

I gather lpc21isp is software, what actually does the programming? Or is it just for dev boards that already have programming hardware in place?

______
Rob
Rob Gray aka the GRAYnomad www.robgray.com

bobcousins


I gather lpc21isp is software, what actually does the programming? Or is it just for dev boards that already have programming hardware in place?


Most (maybe all?) of the NXP ARM chips have a bootloader in ROM which runs an ASCII protocol over UART, so the great thing is you don't need any programming hardware apart from a USB-TTL adapter.

The ASCII protocol is dead simple, you could almost drive it with a terminal emulator. Basically all lpc21isp does is read the bin file and send data formatted as ASCII hex to the chip, and the chip programs itself.

I've now got blinky running on a breadboard with 3 components: led, resistor and LPC810, programmed through Arduino IDE. It's really a great chip for hobbyists - hopefully NXP will continue making it!

NXP had the LPC1114 DIP package down for end-of-life which they have rescinded, not sure whether that was a mistake or if the DIP packages are not selling much.

In principle, any ARM chip that has a built-in bootloader accessible over serial should be easy to incorporate into Arduino IDE.
Please don't PM me asking for help. Ask questions in the forum.

>Yay! Finally an LPC810 arrived in the post.

Great. I'm curious what nice little Arduino programs you are making with it.

>Unfortunately, I have been unable to get flushmagic.py to work on Windows. However,
>lpc21isp works fine, and as that is generally a
>better solution for Windows, I propose to use lpc21isp instead.

Oh, that's a pity. The advantage of "flushmagic.py" is, that you can alter the code.
I had to do it for my Arduino programmer:
http://hobby-roboter.de/forum/viewtopic.php?f=4&t=152#p602
This programmer works very comfortable because it automatically resets the LPC810 and pulls the ISP-line at the start of programming and when it finishes, it reset the LPC810 again to start the program. The development flow is exactly the same as with an Arduino Uno: just press the button than the program compiles, downloads and starts. All in all very comfortable.

That this process is working, I had to modify "flushmagic.py" a little bit and introduce a delay at "flushmagic.py" start because the LPC810 needs a little time to recover from reset.

I don't understand why it is not working on windows. Python brings the serial-library and I think this library should also work on windows.  The program itself does not look very resource challenging.

bobcousins


Great. I'm curious what nice little Arduino programs you are making with it.

It's a bit small for my usual projects, but I would like to port the OpenBlink firmware to it.

Quote

Oh, that's a pity. The advantage of "flushmagic.py" is, that you can alter the code.
I had to do it for my Arduino programmer:
http://hobby-roboter.de/forum/viewtopic.php?f=4&t=152#p602
This programmer works very comfortable because it automatically resets the LPC810 and pulls the ISP-line at the start of programming and when it finishes, it reset the LPC810 again to start the program. The development flow is exactly the same as with an Arduino Uno: just press the button than the program compiles, downloads and starts. All in all very comfortable.


I didn't spend much time debugging flushmagic, but I never got past the initial synchronize.

Of course, lpc21isp can be modified too, it's an open source project https://github.com/capiman/lpc21isp

A big disadvantage of a python script is that it creates an additional dependency on python being installed (and then pyserial) most users will not have it. It also awkward to call the python script file via a batch file, a native program is much better. We can also use lpc21isp for other NXP chips.

I think if there is a need for script type operations then it would be best to write them in Java, as that must be there to run Arduino IDE.
Please don't PM me asking for help. Ask questions in the forum.

Graynomad

Quote
Most (maybe all?) of the NXP ARM chips have a bootloader in ROM which runs an ASCII protocol over UART, so the great thing is you don't need any programming hardware apart from a USB-TTL adapter.

Yes, silly me, I forgot about the ROM-based bootloaders. I think you can even do drag-n-drop onto the chip if you use the USB mass storage option. That's something I need to investigate although I admit I've never been a great fan of drag-n-drop because it requires mouse movements, but maybe that can be automated as a simple copy.

I was very keen on the LPC11U68 but now I think I'm in love, I've been reading up on the LPC1549 and what a great chip that seems to be. Not as many serial ports as the U68 but an M3 and a lot of other nice features.

The SWM (pin switch matrix) is fantastic, it allows most functions to be MUXed to most pins, and I almost wet myself when I found that there's a Tx idle interrupt on the USARTs :)

______
Rob
Rob Gray aka the GRAYnomad www.robgray.com

Erni

#55
Sep 28, 2014, 01:58 pm Last Edit: Sep 28, 2014, 03:18 pm by Erni Reason: 1
A big thank to ChrisMicro

I just got my LPC810 and had a working blinky almost without trouble.
Here is the procedure I used
Download Arduino 1.5.7
Download Chris's zip-file from post #1
From that download  copy LPC8 folder and tools folder to: <path programs>Arduino/hardware/arduino

I use a 3v3 usb/serial converter so that can be directly connected to the chip so next steps:

Disconnect the power from the chip and connect pin 5 to ground to go into programming mode
Compile and upload the sketch.
Disconnect power and pin 5 from ground
Reconnect the power, and the sketch should start

I was a little confused about the pin numbers but they are here:

http://vilaca.eu/lpc810/

BTW you have to have python and  Flasmagic istalled too (used for the upload)

My OS is Windows Vista

>A big thank to ChrisMicro

Hi Erni, thank you very much. I'm very please to hear that someone is using it.
I'm very curious what kind of projects the people are implementing with the LPC810.

I also want to thank bob cousins for his affords to maintain the repo.




Graynomad

Finally got my 1549 Xpresso boards, I'll have a play with the examples then think about doing an Arduino port for that chip.

______
Rob
Rob Gray aka the GRAYnomad www.robgray.com

Graynomad

#58
Oct 28, 2014, 11:30 pm Last Edit: Oct 28, 2014, 11:31 pm by Graynomad
For the 800 series guys, looks like there's a new XPresso board out with the 824

http://www.embeddedartists.com/products/lpcxpresso/lpc824_xpr.php

Not a DIP8 but a pretty small chip.

______
Rob
Rob Gray aka the GRAYnomad www.robgray.com

fjrg76

NXP had the LPC1114 DIP package down for end-of-life which they have rescinded, not sure whether that was a mistake or if the DIP packages are not selling much.
Which was your source? I couldn't find any that mentions its end of life cycle.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy