On 2/19/2014 7:43 AM, Nhan Nguyen wrote: > Hi everyone, > > I have been trying to use PRU to read multiple ADC inputs. Unfornately, I > am stuck at accessing to the ADC registers (chapter 12 on AM335x technical > reference manual). I set the OCP registers, checked the PMAO registers on > PRU to ensure access to external host. For example, I read the ADC REVISION > as below: (tried to write to STEPCONFIG and STEPENABLE, etc.) > > MOV r13, 0x44E0D000 //ADC REVISION > LBBO r5, r13, 0, 4 > SBCO r5, C28, 4, 4 //store REVISION to shared memory to show with C > program > > .. but everything returns 0. > > I install Ubuntu 13.04 on Beaglebone Black, tried kernels 3.8, 3.12. PRU > worked with shared memory accessing, and GPIO1 registers (I am not sure > what to try next) . I haven't tried it on the official Angstrom image, > because I still couldn't get PRU to work right away on it.
I suggest you remove the PRU from the setup temporarily and try directly reading the memory from C. This will be a lot easier to debug, and the PRU has no chance of reading ADC values if you can't read them from the ARM. As a guess, I suspect you don't have the ADC hardware setup properly and are getting bus faults when reading. This will show up as an error if you try to read the memory location from the ARM (making it easier to debug). Make sure you have loaded a device tree overlay that enables the TSC hardware (Touch Screen Controller = ADC) and populates an appropriate state-machine instruction table to digitize the values you are interested in. Unlike simpler microcontrollers, each major subsystem in the AM335x can be powered up or shut down, and by default most systems (ADC, PWM, etc) are powered down with their clocks disabled until you explicitly enable them. Once you can properly read the values from a raw memory location using the ARM, the PRU should be able to read them as well. -- Charles Steinkuehler char...@steinkuehler.net -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.