Weekly Progress Reports:
WPR June 04
Last Week:
- Reviewed state machine layout
- Revised structure of GPIO to meet with needed functionality
- Mapped GPIO initialization for all LPC 23xx processors
- Participated in successful launch
Next Week:
- Documentation
- Presentation
WPR May 28
Last Week:
- Brought up GPIO on LPC 2378 with freeRTOS 5.1.2
- ~75% done with ADC on LPC 2378 with freeRTOS 5.1.2
- Demonstrated use of buttons and LEDs on dev board
- checked current in added LEDs
- Reviewed I2C at a bus/register level
- Modified LPC 2378 to allow easy access to the 3.3v rail provided
- Further familiarization with the LPC 23xx documentation
- Capstone documentation tasks (presentation)
Next Week:
- Complete ADC testing
- I2C
- CAN
- Continue with semaphores and queues
- Set errorhandling to use Mike's datastructure
- Create diagram of software flow
- UART Flow control
WPR May 21
Last Week:
- Recieved LPC 2378 dev board
- With Dave's assistance, ensured that my working environment could be used to program the LPC 2378
- Moved to new freeRTOS version (5.1.2)
- Reviewed layout and functionality of OLIMEX LPC 2378 dev board
- Assisted Mike with moving to new freeRTOS version (5.1.2)
- Assisted Mike with programming and functionality of new LPC 2378
- Began process of moving code base to new version/board
- Read demos of queue handling for new freeRTOS version
Next Week:
- Find usage of BOOL and GPIO configurations for new freeRTOS version
- Continue with semaphores and queues
- Review features of new version (5.1.2)
- Capstone documentation tasks (presentation)
- Set errorhandling to use Mike's datastructure
- Create diagram of software flow
- UART Flow control
- I2C
WPR May 14
Last Week:
- Researched semaphores and queues
- Investigated issues/considerations with semaphores and queues of current version (3.2.3 ?)
- Reviewed system needs to ensure we are dividing functionality appropriately
- Capstone documentation tasks (poster)
Next Week:
- Continue with semaphore and queue tests
- Set errorhandling to use Mike's datastructure
- Create diagram of software flow
- UART Flow control
- I2C
WPR May 07
Last Week:
- Top level re-assesment of task structure
- Decided with Andrew to use a moderate, rather than small number of tasks
- Research on inter-task communication and task resource costs
- Worked with Mike to get errorhanding data structure further roughed out
Next Week:
- Test basic inter-task communication (semaphores and queues)
- Set errorhandling to use Mike's datastructure
- Create diagram of software flow
- UART Flow control
- I2C
WPR Apr 30
Last Week:
- Reviewed code practices with K and Dave.
- UART based control structure in place.
- Errorhandling roughed out.
Next Week:
- UART flow control ASAP
- Refine Errorhandling
- Node State layout
- I2C as time allows
WPR Apr 23
Last Week:
- New USB to Serial cable obtained
- Incorporated LPC 2148 serial port programming without issue
- Resolved UART connectivity issues (minicom does not downgrade speed, hardware flow control must be off, board must not be hosed)
- Can now reliably collect incoming chars from UART to string
- Begun implementation of UART based control structure
Next Week:
- Errorhandling ASAP
- Node State layout
- I2C as time allows
WPR Apr 16
Last Week:
- Created a new UART testing branch
- Wrote a series of basic UART testing scripts, per previous know good code and freertos documentation. These scripts compiled and were checked by other individuals, but did not recieve UART traffic correctly. Transmission was consistently successful.
- In attempting to troubleshoot with K, the Olimex board repeatedly failed to reprogram via JTAG.
- Board was brought to Tuesday PSAS meeting, group inspection followed. Diagnosis: Dead JTAG, cause unknown, JTAG dongle suspected.
Next Week:
- Begin programming LPC2148 via serial port.
- Obtain a new USB to Serial cable.
- Errorhandling ASAP
- Node State layout
- I2C as time allows
WPR Apr 09
Last week:
- Created errorhandling branch, and briefed Mike on further aspects of branching.
- Directed to start on UART control framework and basic functions for nodes.
- Met with Mike, discussed code architecture, and division of initial tasks for coding.
- Resolved some pending questions re. git (merging, views in gitk, git best practices)
- Error-centric code appeared untenable, revised code to focus on UART/IO centric code, with accessory error functionality
- Explored the subtleties of C switch statement scope and the reading of pre-compiled code.
Next Week:
- Complete errorhandling functions ASAP
- Review capstone node layout
- Continue on I2C as time allows
- Have a Node State layout
WPR Apr 02
Last Week:
- Created functional outline of needed I2C protocol functionality for the LPC_214x family
- Explored Git branching and other git functionality.
- Created I2C branch in the git repository after confirming policies and procedures with Jamie
- Added LPC2148_I2C folder to new branch, with .h and .c files containing comments/pseudocode of needed (master) I2C functions and states. Also added stubs in the I2C code for slave functionality
- Resolved ongoing issues relating to updating and access of PSAS blog and various other sites (home router failure)
- Reviewed I2C device specific functionality (EEPROM and pressure sensor)
- Reviewed states and requirements for recovery node
Next Week:
- Complete functions and state cases for I2C master functionality
- Create functional outline for specific I2C device drivers
- Create recovery node specific git branch (use as demonstration for git branch functionality for Mike)
- Begin creating recovery node specific codebase in recovery node git branch.
WPR Mar 26
Last Week:
- Purchased 2 I2C eeproms for testing
- Laid out general I2C needs and functionality
- Reviewed LPC 214x I2C states
- Outlined I2C driver and software roles
- Cloned and reviewed latest GIT repository
Next Week:
- Write functions and state cases for I2C master functionality
- Stub functions and state cases for I2C slave functionality
- rough out software for device specific I2C software functions (eeprom and sensor)
- Fork the GIT main.c file to have a fork specific to the recovery node.
- Outline states for recovery node state machine and include them in said fork.
WPR Mar 12
Last Week
- More research on I2C
- Research on serial output
- With much help from Dave got the serial output in packed binary
- Got the ADC sensors to send data out on a 1 kHz timing, also with much help from Dave
Next Week
- Find a way to make Iceweasel suck less, or find another browser.
- Obtain an I2C device (Surplus Gizmos?) for real testing of I2C
- Put some generic I2C functions together to support some master functionality
Issues:
- Admitted to myself that Iceweasel sucks almost as badly as Konqueror, at least for my purposes (this may just be configuration...)
- Encountered an issue with the serial transmission, wherein the terminal app / port sniffer Andrew was using arbitrarily gave crap data for long (greater than 8?) consecutive zeros. The "cat" command seemed to give much more reliable data.
- Some sort of stack size issue in the freertos configuration. Stack was pretty darn small. This was probably not the source of any actual error, but bears consideration!
WPR Mar 05
Last Week
- multi-channel ADC functionality added
- Attempted to integrate jcwren protocol handling codebase (appears incompatable at this time)
- Upgraded to latest stable Debian (thus obtaining current git version)
- review of I2C initializaton in PXA 270
- Intensive analisys of I2C protocol as implemented in LPC 2148
- -questions about clock duty cycle
Next Week
- I2C implemented
- continue consulting with Jamie for git repository
WPR Feb 26
Last week
- Meeting with Andrew to discuss deliverables
- Found ADC channel handling in builtin freertos
- Explored the jcwren freertos libs
- Attempted to set up wifi and touchpad on the dreaded Dell
Next week
- Fiddle with the jcwren stuff
- Integrate I2C and ADC reads into one file
WPR Feb 19
Last week
- Began research on pulling ADC measurements from alternate source
- Reviewed freertos I2C drivers/handling
- Reviewed low level handling of buses in the LPC2148
Next week
- Review of old PIC firmware
- General specs for firmware
- Begin merging multichannel input for multiple sensor test harness
WPR Feb 13
Last week
- Modified freertos based program to read ADC measure of the builtin potentiometer.
- Separated the serial reporting functionality from the the ADC reading portion
- Discussed git as a repository during Tuesday meeting
Next week
- Begin commits to git local repository
- Investigate git merge functionality
- Attempt to pull ADC measurement from a source other than the onboard pot
WPR Feb 06
Last week
- Decision in Friday meeting to change tracks from SPI protocol to ADC handling
- Brought freertos up on the olimex board
- Found issues with olimex board running large programs, olimex board may be defective
- Obtained new olimex board, which tested good
- Successfully modified and repeatably re-installed freertos based programs on olimex board
Next week
- Create program to read/use ADC
- Begin using code / document repository
- Review SPI and other chip features we may need
WPR Jan 30
Last week
- Tool build was finalized
- Successfully ran "hello world" script
- Successfully modified and ran "hello world" script
- Reviewed test board power options
- Reviewed SPI protocol
Next Week
- Test IO interface via script
- Decide on code repository with Mike
- Test SPI handling
- Backup solution for laptop
WPR Jan 22
Last week
- found a plethora of missing needed packages for laptop/tool build, installed as many as found.
- attended 7pm Tuesday PSAS meeting, and made much progress on install of tools
- installed tools up to step 3a in "psaslpcsetup.pdf"
- reviewed unique hardware needs for testing platform (occasional reports of power issues if powered solely via USB)
Next week
- tool build should be able to be finalized by Friday the 23rd.
- "hello world" also on the 23rd
- look into additional power for testing platform (AC adapter) to rectify possible power issues (think this was from Dave?)
- TBA at meeting tomorrow...
Issues or "A log of failure and resolution":
"psasftdlib.sh -i" in docs should be "psasftdilib.sh -i" (page 5) This is in a PDF, so I will not attempt to change now...
psas_ftdlib.sh -i issues:
sudo busted...
edited sudoers, added main user account (what crappy debian did I install anyhow??? so much seems missing)
./psas_ocd.sh : Non-zero return. Command is: svn checkout -r 1257 svn://svn.berlios.de/openocd/trunk openocd
??Permissions issue?? no...
no svn! - package is apparently called subversion - installed - man svn works...
went further, then: " ./bootstrap: line 2: aclocal: command not found
./psas_ocd.sh : Non-zero return. Command is: ./bootstrap "
aclocal appears to be related to some "automake" thing. - checking for package - installed
script finished //end ./psas_ocd.sh
./psas_lpc21isp.sh having issues now:
" ./psaslpc21isp.sh : Non-zero return. Command is: cp /home/user/lpc-kit/Sources/lpc21isp155.zip . "
//end Issues or "A log of failure and resolution"
//end WPR Jan 22
WPR Jan 16
Last week
- installed Debian on laptop
- found and reviewed documentation for LPC2148 features and command set
- reviewed tools
- wiki familiarization and editing
Next week
- finalize tool install
- test tool functionality (hello world)
- attend Tuesday 7pm session for further assistance/clarification/enlightenment
notes:
My Notes
My Notes This page has my notes on Eagle, and will have additional notes...
http://jcwren.com/arm/ (windows zip package ...)
http://jcwren.com/arm/packages/LPC2148_Demo_latest.zip
ADC Notes
All channels appear to be open in the form of ADC[which ACC]_[which channel]
Looks like the pot is wired to ADC0_3
data should be 10 bits wide? this sounds happy... The return claims that it's sending back a cleaned up picture of bits 15:6, aligned to 0 (shifted right 6)
some serial prog info: http://www.faqs.org/docs/Linux-HOWTO/Serial-Programming-HOWTO.html
codely bits:
ADC flashy asychronous to the ADC output to the serial port
PRESSURE TEST CODE - This is the code that sends ADC info out via the serial port in formatted packed binary. It also includes additions to the freertos serial files that support this nifty binary sending action!
Questions
Where did this LPC helper "toString2()" function come from? Is this just a straight replacement for the "toString()"??
what is this all about: // portTickType xLastWakeTime; // const portTickType xFrequency = 1;
// Initialise the xLastWakeTime variable with the current time.
// xLastWakeTime = xTaskGetTickCount ();
Meeting notes Mar 06/06
*UART to output => header [binary bytes] 1kHz 115 kbps
need to run the UART as tight as possible, sending just a few bytes, and then leave a bit of padding after the burst
packing bits is a possible option, (using 2 bits as one-hots to flag if medium or slow data is present) but we'd be obligated to unpack at client side.
Need to be able to do 1kHz loops / spewing data out the port... Whee!