LPCマイコンは久々の登場
書き込みはUSBシリアルを使うことになります
シリアルにはこれを使いましたhttp://akizukidenshi.com/catalog/g/gK-06693/
プログラムの前に書き込みの方法をメモ
●接続
FTDI(TX) <-> LPC810(8)
FTDI(RX) <-> LPC810(2)
あと、電源は3.3Vです。
という感じ
●書き込み
1.LPC810の5ピンをGNDに接続した状態で電源を入れるとISPモードで立ち上がる
(プログラムが動作せずシリアルで書き込めるモード)
2.hexファイルを出力
LPCXpresso上でプロジェクトを右クリックし[Properties] [C/C++ Build] [Settings] [Build steps] [Post-build steps]に下記を追加
LPCXpresso上でプロジェクトを右クリックし[Properties] [C/C++ Build] [Settings] [Build steps] [Post-build steps]に下記を追加
arm-none-eabi-objcopy -O ihex ${BuildArtifactFileName} ${BuildArtifactFileBaseName}.hex
ビルド時にhexをついでに吐くようになります3.FlashMagicで書き込みLPC810もFTDボードも初期でなかったので概念図的な感じ
上のスライドスイッチは電源のON・OFF用
下のタクトスイッチはISP起動用
-----------------------------------------------------
#ifdef __USE_CMSIS
#include "LPC8xx.h"
#endif
#include "lpc8xx_clkconfig.h"
#include "lpc8xx_gpio.h"
int main (void) {
uint32_t i;
SystemCoreClockUpdate();
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<6);
GPIOSetDir( 0, 0, 1 );
while (1)
{
GPIOSetBitValue( 0, 0, 1 );
for (i = 0; i < 100000; i++);
GPIOSetBitValue( 0, 0, 0 );
for (i = 0; i < 100000; i++);
}
}
-----------------------------------------------------
SystemCoreClock
クロックの設定をします。デフォルトでは内部オシレータ12MHz動作でします
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<6);
GPIOブロックへのクロック供給を有効化します
その他のブロックをしようする場合はユーザーマニュアルP.37が参考になります
("使用"が"しよう"と打っても出ないんじゃぼけ!)
次回はI2Cをやります