I spent the last two months familiarizing myself with BeagleBone.
During this time I was able to do the following:
- compile the kernel, bootloader and device tree
- submit compiled parts
- eMMC and SD flash
- write simple LKMs (kernel threads, interrupts, linux headers)
- write assembler code for PRU and write DTS for GPIO
I spent a few days dealing with PRU processors, and I particularly liked the idea of using them. I feel comfortable writing on them, and for this reason I would like to engage in a project based on PRU. For the time being I decided to take up the project “Using BeagleBone PRUs to control CNC and 3D printer stepper motor Drivers”. I wrote a simple stepper motor driver based on PRU. You can find the code here: https://github.com/pmezydlo/BBB_PRUSSv2_SM
I own a digital oscilloscope, which is useful during tests and debugging.
I can create diagrams in Eagle.
--
You received this message because you are subscribed to a topic in the Google Groups "BeagleBoard GSoC" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/beagleboard-gsoc/kmw_pXEeaEY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to beagleboard-gs...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "BeagleBoard GSoC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard-gs...@googlegroups.com.
Congratulations BeagleBoard for participation in the next edition of GSOC. I am interested in the project SPI Flash Emulator. I would like to discuss the project and ask for further details.
I think the use of PRU as a driver SPI is a good option, therefore I would like to adjust the controller to both PRUs - user would decide which coprocessor he wants to use.
Memory parameters such as: SPI speed, memory organization, GPIO define and number of PRU would be saved in the configuration file that is loaded during the upload.
Device
functions: reading from memory, memory programming, memory erasing and verification.
Types of memory: NOR Flash, EEPROM(optional), SRAM(optional) and Data Flash(optional).
Types of batch files (the memory contents): raw binary and intel hex (optional).
Counting checksum (crc32) on the PRU is to occur during the programming and reading.
Host application on the PC is supposed to use the Qt framework.
Communication between pc and beaglebone would be via by ssh and scp.
The project is quite extensive and it requires determining the real boundaries. Taking into account the further development of the project. I see two possibilities.
First,
focus on support for multiple types of memory (SRAM, EEPROM, data flash, nor
flash) and extensive functionality (crc, erase, read, program verification, intel hex and raw binary). The other
possibility is to write applications for Windows/Linux and communication
through ssh and scp, as well as programming only particular types of memory
(nor flash) and limited functionality (programming, raw binary).
I am looking forward to your suggestions and propositions.
Best regards
Patryk Mężydło
Thanks for your reply
Sorry for misunderstanding the information on the website. The project got slightly shorter, but it has become more difficult.
Actually, on second thought I decided that PRU coprocessor is not the best solution. Looking at the nor flash random memory
documentation, I found out that the spi clock’s speed reaches 70Mhz during the reading, while for PRU it is maximally 20 Mhz.
That is why McSPI should be used. However, after briefly studying the subject I noticed that there is little information I could use. The documentation is rather extensive, so it is what I will focus on.
I think that it would be best to write a driver which would allocate the necessary amount of memory, giving easy access from the user level. After installing the driver, it would configurate McSPI to work in slave mode. The driver would cyclically react to received addresses and commands, saving or sending back the data.
What is the name of nor flash memory which is supposed to be emulated by beagle? I would like to familiarize myself with its documentation.
Thanks to the use of interruptions, the response time would be much shortened, making the stream of date easier to control; so my question is, would it be possible to use it?
I have familiarized myself with writing drivers. Do you think it is a good idea to use them?
I would like to create PCB.
Could you explain to me what is exactly “level shifting”?
Best regards
Patryk Mężydło
Hi Andrew
Thanks for your reply
By „tables” I meant memory allocation,
but I already worked it out by myself anyway.
I am familiarising myself with kobjects, I’m doing quite well.
After installing LKM it allocates char array, therefore I have
an easy access to it from the user level.
I already found a few codes of McSPI
drivers – their analysis will give me some idea
about how they work and a starting point from where
I should start the project.
I would like to start writing my application, so
could you tell me something more about what
should it contain?