In this blog post we will have a detailed look at all the files added/changed while implementing the MMC/SD/SDIO stack via CAM framework. We will basically discuss the commit https://github.com/freebsd/freebsd/commit/a87c7a85be3e3727b6b08b19741b4282f942400d which aims at adding MMC/SD/SDIO stack to FreeBSD’s already existing CAM framework. So, lets start one by one with each file: mmc.h #ifndef CAM_MMC_H #define CAM_MMC_H #include <dev/mmc/mmcreg.h> /* * This structure describes an MMC/SD card */ struct mmc_params { u_int8_t model[40]; /* Card model */ /* Card OCR */ uint32_t card_ocr; /* OCR of the IO portion of the card */ uint32_t io_ocr; /* Card CID — raw and…
Understanding FreeBSD’s CAM Framework
This blog post presents a gist of Free BSD’s doc on CAM(here) and chapter 14 of the book FreeBSD device driver- A guide for intrepid. It gives an introduction to the CAM(Common access method), it’s applications, it’s working and it’s organization in FreeBSD. It is written to get myself a really good understanding of mmccam stack which is nothing but SDHC/SDIO protocols wired within the CAM framework. COMMON ACCESS METHOD CAM is a method for separating HBA adapters from storage adapters and is primarily used for SCSI. By separating these drivers it reduces the complexity of both the drivers.Furthermore, this…
Understanding SD, SDIO and MMC Interface
TL;DR; MMC and SD-card have the same physical and electrical specifications but different software controls. They both are used as storage devices only. SDIO and SD-Combo cards, on the other hand, incorporate Input/Output functionality (like Bluetooth, Wifi, GPS, etc) without and with the storage facility respectively. So, an SD-Combo card can act as a wifi adapter along with a storage device. In this blog post, I will present a summary of the following document http://www.kaltech.co.il/pdf/Eureka_sd_wp1.pdf. This is meant for anyone willing to understand how removable devices like sd cards work and the different protocols/functionalities they support. Secure Digital (SD) memory…
Building and testing RTEMS-libbsd for BeagleBone Black BSP
———————————————————————— Building and testing libbsd for BeagleBone Black BSP ———————————————————————— == Installation overview == === Initial setup === – Jump into your workspace and make a directory named sandbox This folder will contain all our project files – cd sandbox/ – export sandbox=$PWD – git clone git://git.rtems.org/rtems-source-builder.git – git clone git://git.rtems.org/rtems.git – git clone git://git.rtems.org/rtems-libbsd.git === Building desired toolset for ARM === – cd rtems-source-builder/rtems/ – ../source-builder/sb-check – ../source-builder/sb-set-builder –prefix=$sandbox/5 5/rtems-arm – cd $sandbox – export PATH=$PWD/5/bin:$PATH After having required toolchain, we can now proceed towards building our Board Support Package(BSP) === Building Beagleboneblack BSP === – cd $sandbox –…
Semi dynamic webpage template
Semi dynamic webpage template with Google sheets integration INDEX Introduction Purpose Behind Proposed Work Experimental Results Conclusion References Introduction Our project aims at providing a semi-dynamic template of a fully fledged highly responsive webpage for small scale organizational usage. With improved security considerations and better organization this project integrates google sheets services as a database for a website. Google sheets being easy to deploy and use makes content updation easier and a lot more user friendly. Several other functionalities like Google scripting engine along with google forms can be very easily integrated with google sheets…
Introduction to RF communication
This post introduces the basics of RF communication along with various band specifications used for wireless communication. It also covers comparison of different bands on basis of their data rates and other parameters. Content Introduction Available frequency Bands Types of RF communication Different wireless protocols Introduction Now a days, we are surrounded by a large number of wireless devices working on different protocols, on different frequency bands thus utilizing almost whole of the “Radio-wave” frequency spectrum. Adhering to it’s high density, complete frequency spectrum can be divided into different groups and each group can be further divided into different channels.…
DECODING ARM
This introductory post aims at discussing a bit about business model of ARM ltd.(that’s right the company behind ARM architectures!!), different ARM architectures for different utilities and most importantly a brief about ARM cortex M , ARM cortex R and ARM cortex A. So, here’s the content: Business model of ARM ltd. ARM Terminology Different ARM Architectures and Families Third party ARM variants ARM cortex M ARM cortex R ARM cortex A ARM Ltd. ARM ltd. was founded late in 1990’s as a joint venture between Acorn computers , Apple computers(Apple Inc.) and VLSI technology Inc. ARM joint venture With…
ARM Instruction Set(Part 2): Types,Operands and Addressing Modes
Types,Operands and Addressing Modes After a brief introduction of ISA, here in this part of the series we’ll look at: Content: Types of Operands Instruction set design Types of Instructions Types of Addressing modes Types of Operands: Operands basically refer to the type of parameter which is passed on to, along with an instruction. It might be a : Register/Memory address Constant/Immediate Consider the following examples: ADD r1,r2,r3; will add r2 and r3 and store it’s value in r1 Here, Operands is r1,r2 and r3. ALL of which are registers. ARM has in general 16 general purpose registers…
DC motor selection for robotic applications
This post is mainly contributed by the members of the electrical team of ARES robotics. For designing a rover prototype, we have to select motors for applications like Robotic arm, wheels, etc. This post aims to be a single guide containing all the information required for someone to choose an engine for an application. I’ll try not to cover motor constructional details, but rather their types, advantages, and application areas. Type of DC electric motors used in robotic : Servo Stepper Brush-less DC Brushed DC Geared DC DC linear actuators Servo motors It is a self-contained electrical device that…
DIY: Generating Ramp/Sawtooth from PWM
DIY: Generating Ramp/Sawtooth from a PWM signal Lack of any good tutorial to produce a ramp/sawtooth wave from a PWM signal urged me to make one! This post was a part of one of my recent ongoing projects, i.e., Redesigning the Semiconductor CURVE TRACER, here at CEDT, NSIT. I was to produce a sawtooth wave from a PWM signal using Arduino nano, and here are my observations: TASK: To produce a sawtooth wave from the PWM signal using Arduino Nano. PROCEDURE: Producing a ramp/sawtooth wave out of a PWM signal merely involves passing a PWM signal of varying duty cycle through…