Software |
DMX4Linux Driver Suite for Linux |
csv2iif.pl suite convert PayPal transactions to IIF, OFX, QIF |
Hardware |
DMX30 Interface 128Ch SPP |
DMX43 Interface 2out 2in EPP |
LED Hardware for Linux and Windows |
EPROM Sampler for 8 bits of sound |
Misc |
CatWeasel Linux drivers for MK3/4 PCI |
pg_trompe PostgreSQL replication |
trycatch C exception/signal handling lib |
Patches to various software |
Tools and small scripts |
Docs misc documents |
Links to lighting stuff |
TI MSP430 NotesEvery platform beeing it hardware of software has some oddities you should be aware of for maximum coding pleasure. The advises below are based on our experience we gathered while making the DMX43 Project.
CPUIf you mov some byte values into a register the upper byte of the register will be cleared. This differs from x86 CPUs!. Example:mov 0x1122, R15 mov.b 0xff, R15 R15 now contains the value 0x00FF and not
0x11FF .
OscilatorsThe MSP430 is very afraid of loosing external oscilator/clock sources. If anything suspicious happens with external clocks the MSP will fall back to its internal clock generators. Upon fall back an osc fail interrupt is triggered. This osc failure is so sensitive that it triggers if you apply an oscilloscope to the clock source and even if you touch the contacts with your finger!If an osc fail interrupt is triggered you should simply reset the external clock source and the system. A nice solution is the following program layout: ; startup code startup: call #osc_setup ... ; subroutine to set up external clocks osc_setup: bis.b #XTS, &BCSCTL1 ; select XT1 ... ret ; interrupt routine for osc failure, flash violation and nmi osc_failure_interrupt: dint bit.b #OFIFG, &IFG1 jz next1 call #osc_setup jmp return next1: bit.b #NMIIE, &IFG1 jz next2 ... jmp return next2: bit.b #ACCVIE,&IFG1 jz return ... return: eint reti BSL Bootstrap LoaderSome revisions of the MSP430 have bugs in their internal boot strap loader. BSL version < 1.10 have to be patched to provide write access to addresses > 0x8000. You have to apply this patch every time you issued a write operation into either the ram or flash area of the MSP or subsequent writes will fail.LinksGCC and binutils for MSP430. They also have a Python BSL. ASL assembler a powerfull macro assembler for every important processor on earth. bslsh BSL frontend for un*x OS. MSP430F149 test board you could use, if you don't want to solder those little smd devices for yourself. |