I recently purchased my first Beaglebone Black and cant wait to get started.
Have mostly worked on bare-metal microcontroller projects mostly involving close loop motor control applications.I would like to step into the world of operating systems(especially Linux) and decided that i would use the beagle bone black as the starting platform.
My ultimate aim is to develop an On-grid/Grid tied inverter using the Beaglebone black.
I have a couple of questions and would be gratefull if someone points me in the right direction.
1.Having worked mostly in c/c++ and assembly,is it a good idea to stick to the same languages or i am better off programming in a different language like python,Java etc?
2.How easy it it to intergrate the software to access the hardware,i mean are most of the drivers already written and are they easily avalable?I plan to intergrate an two slave MCUs via SPI,and some sensors via I2C bus.
3.Is it possible to use the PRUs of the Sitara controller as a parallel port for some high speed data transfer?like getting data from a fast ADC or writing to a DAC?
Also interface a 20x4 LCD display via the GPIO ports.
I would like some starting directions as to how to proceed with the above with the BBB.
I fould some tutorials on using the beagle bone black here.
I am also a beginner but will try to share my experience so far:
1.Having worked mostly in c/c++ and assembly,is it a good idea to stick to the same languages or i am better off programming in a different language like python,Java etc?
HK: If planning to run debain OS and good knowledge in C,C++, I would suggest to stick with the same.
Coming from same bare metal background, It was important for me to have a paradigm shift to work on a fully matured embedded OS. All you can do with bare metal can be done with OS but in a different way.
Having said that, I would suggest that a strong background with Linux fundamentals.
2.How easy it it to intergrate the software to access the hardware,i mean are most of the drivers already written and are they easily avalable?I plan to intergrate an two slave MCUs via SPI,and some sensors via I2C bus.
HK: Once you have mastered Linux internals a quick google search will be help you a long way.
I have recently written a hobby program to interact with a temprature sensor using I2C protocol, it is very basic but you can have a look to get an idea of programming involved. https://github.com/hemantkapoor/temperatureSensor
3.Is it possible to use the PRUs of the Sitara controller as a parallel port for some high speed data transfer?like getting data from a fast ADC or writing to a DAC?
HK: Yes there is a way but I haven’t explored it myself.
Also interface a 20x4 LCD display via the GPIO ports.
HK: With Linux chances are you already will have a driver for this and you can create custom Linux kernel to include the driver. And interfacing with LCD will be a simple matter of opening a file and writing to it…
Remember with Linux everything thins is a file…
This is just a beginner sharing his expirience, I am sure there are experts in this forum who are very helpful and could guide you for specific issues.
Linux recognized these on bootup, so it was relatively easy to use. I also got the touch screen working which was nice. Some of the buttons on the bottom only worked on some devices – I don’t recall the details. I think the buttons worked on Beaglebone Green, but not all of them worked on Beaglebone Green Wireless. The manufacturer was looking for a solution, and shortly afterwards the project I was working on didn’t get funded so I never followed up to see if it was solved.
Thanks Hemant for your reply.
I have been reading up on linux systems for now before exploring the kernel,which actually interfaces the hardware with the user defined space.Tried out a few file handling examples.