-
Content Count
22 -
Joined
-
Last visited
Reputation Activity
-
Oppa reacted to Fred in TRF7970A NFC booster now in eStore
@@OppaErich I did some tests on NFC readers. The DLP-7970ABP is no better or worse than other readers with a PCB antenna. DLP never mentioed it to me but they actually make a coil antenna that works much better I wrote it up here.
As part of my first project using the implant, I ported the example code over from the G2553 to the F5529. I expected it to be just a case of changing a few pin assignments and sorting out the clocking, but for some reason it took me quite a while. (Not helped by the fact that at one point I accidentally deleted the line that enabled the reader and didn't realise.) I'll post the ported code when I get it cleaned up a bit.
I'll write the project up here soon, but for now you'll find it on my blog. It uses the HID keyboard to unlock my work PC when I scan it.
http://0xfred.wordpress.com/2015/01/14/nfc-login-version-1-0/
-
-
Oppa reacted to Gulam in Project f-Spell: Now you can type even without Keyboard!
It all started with an aim of improving communication between speech & hearing impaired and normal people. But it has now almost become an alternative input device for any computing device!
So what is it all about? It's a cyber glove that recognizes sign language gestures and convert them into ASCII. Voila! We can throw away our keyboards and start using this glove. Right? After all, our keyboard does the same thing.
Don't try too hard to visualize this peculiar device! This is how it will be!!
And Technically it will be something like this
And more technically the flow of data will be like this
Got a overall picture? Okay. Let's see how this is implemented. The sensor boards which are mounted on the finger tips is a custom PCB (see attachements schema_acc_board.png & pcb_footprint_acc_board.pdf) which houses the accelerometer (in our case MMA7361L). Those accelerometers will be connected MSP430 Launchpad and Launchpad will then be connected to Bluetooth Module as shown below. (BT boosterpack from iTeadStudio is used here)
Wondering why not all axes of accelerometers are utilized? Well we have to do some trade-off between resolution and no. of ADC channels available :-(
That's all. Find the code as attachment (code.zip)
Here are few pics of the setup & output...
Attempts have been made to miniaturize the whole setup into one glove. The FET Debugger is not able to recognize the custom board. But I'm not sure whether the problem is with Schema or PCB footprint. I've attached the unverified schema and footprint also with this post. Interested are welcome to give a try! If you come up with a better design you are welcome to share it with me at any time ;-)
pcb_footprint_acc_board.pdf
code.zip
pcb_1_NOT_VERIFIED.pdf
pcb_2_NOT_VERIFIED.pdf
pcb_3_NOT_VERIFIED.pdf
schema_NOT_VERIFIED.pdf
-
Oppa reacted to xpg in So is the next move embedded linux.
Interesting observation. My guess is that many hobbyists would rather have a full-fledged OS as that allows them to focus on their task at hand rather than dealing with everything all at once. The BBB provides this at a fair price.
However, there is also the "new-shiny-thing"-factor. If I didn't already have three unused ARM-based boards (Original BeagleBoard, FriendlyArm Mini2440, and rPi) on my shelf I would probably go for the BBB as well.
I think that in the end many will come to the same conclusion as I did on several occasions: It's not always an advantage having Linux around. For many things it is pure overkill meaning that you will be wasting both money and precious power using a large ARM core running Linux compared to a simpler MCU (such as the MSP430 or Cortex-M0).
But for creating things that are somehow connected to IP-networks such as the Internet, I think the BBB (and rPi for that matter) is a good place to start.
-
Oppa got a reaction from roadrunner84 in How to make ez430-Chronos-868 working on 915mhz?
These two frequencies are a bit more than 5% off. This should work without modifications. Surely not optimized but nothing will break.
-
Oppa reacted to chibiace in What do you think of this scope / price ?
i think the scope to get at this time might be the rigol ds1102e, the ds1052e would be better if you could find an older model which can be hacked to 100mhz. plenty of reviews on youtube.
and there are some popular owan products too.
personally cant really justify a scope at this price as i can use a multimeter for my current projects. if they come down 100$ then perhaps.
-
Oppa reacted to jpnorair in What do you think of this scope / price ?
Well, it is a similar price to a new Chinese Rigol. I don't really trust the Rigol, but I also don't trust a used product from eBay. I cannot read German, but if the seller is a company that deals in used test equipment, I would feel better.
This is similar to the scope I used during first and second year of university. It is perfectly fine for basic signal analysis, but the newer digital scopes are much easier to use. Really, the difference is memory. I remember spending a lot of time trying to configure triggers on these old scopes. I just got a Tek DPO, which is more expensive, but engineering is my job. The extra $1000 (or
-
Oppa reacted to msptest6 in C2000 LaunchPad and LED BoosterPack $5.00 off together
Via LarissaSwanland's twitter feed.
http://e2e.ti.com/bl...f-together.aspx
-
Oppa reacted to CorB in Hello world led+button
Hi,
Thanks for sharing this !
This part of the code:
// If running from flash copy RAM only functions to RAM #ifdef _FLASH memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize); #endif
should not be place before void main(), when I then compile the code for FLASH based operation it raises compiler-errors.
Ive placed it inside the code after the line:
PLL_setup(myPll .... )
Would be nice to set the code also up for an interrupt based action instead of a polling loop. Ive tried to use the external_interrupt code to build something like that but thusfar without a blinking led.
cheers
CorB
-
Oppa reacted to PowerX in Hello world led+button
Hello,
This is my first very simple test with the c2k launchpad, it simply lights up a led (gpio0) a turns it off when the button (gpio12) is pressed.
Below is my code for it. Hope you like it.
// // c2k launchpad led Hello world 1.0 + button // //includes #include "DSP28x_Project.h" #include "f2802x_common/include/clk.h" #include "f2802x_common/include/gpio.h" #include "f2802x_common/include/pll.h" #include "f2802x_common/include/wdog.h" #ifdef _FLASH memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize); #endif //main void main() { //wdog WDOG_Handle myWDog; myWDog = WDOG_init((void *)WDOG_BASE_ADDR, sizeof(WDOG_Obj)); WDOG_disable(myWDog); //clk&pll CLK_Handle myClk; PLL_Handle myPll; myClk = CLK_init((void *)CLK_BASE_ADDR, sizeof(CLK_Obj)); myPll = PLL_init((void *)PLL_BASE_ADDR, sizeof(PLL_Obj)); CLK_setOscSrc(myClk, CLK_OscSrc_Internal); PLL_setup(myPll, PLL_Multiplier_12, PLL_DivideSelect_ClkIn_by_2); //set gpio GPIO_Handle myGpio; myGpio = GPIO_init((void *)GPIO_BASE_ADDR, sizeof(GPIO_Obj)); //set led gpio0 GPIO_setMode(myGpio, GPIO_Number_0, GPIO_0_Mode_GeneralPurpose); GPIO_setDirection(myGpio, GPIO_Number_0, GPIO_Direction_Output); GPIO_setHigh(myGpio, GPIO_Number_0); //set button gpio12 GPIO_setMode(myGpio, GPIO_Number_12, GPIO_12_Mode_GeneralPurpose); GPIO_setDirection(myGpio, GPIO_Number_12, GPIO_Direction_Input); GPIO_setPullUp(myGpio, GPIO_Number_12, GPIO_PullUp_Disable); //loop for(; { // if gpio12 button is pressed led on-off once if(GPIO_getData(myGpio, GPIO_Number_12) == 1) { GPIO_setLow(myGpio, GPIO_Number_0); DELAY_US(1000000); GPIO_setHigh(myGpio, GPIO_Number_0); } } }
-
Oppa reacted to CorB in Interrupt based button and PORT_A leds
Hi,
Here's a simple example (based on a crossover of TI;s example code External_interrupt and LaunchpadDemo) that detects a buttonpress on the C2000 Launchpad (GPIO12), processes the press in an interrupt and shows the no of buttonpresses using the Port_A LED setup. The button isnt properly debounced yet it seems but its working. The code isnt the shortest possible I guess.
regards
CorB
//############################################################################# // // File: /Example_F2802xButtonInterrupt.c // // Title: F2802x Button Interrupt test program, will show successive presses on PORT_A leds // // Group: C2000 Launchpad // Target Device: TMS320F28027 // // Code based on TIs examples External_interrupt and LaunchpadDemo // ########################################################################### #include "DSP28x_Project.h" // Device Headerfile and Examples Include File #include "f2802x_common/include/clk.h" #include "f2802x_common/include/flash.h" #include "f2802x_common/include/gpio.h" #include "f2802x_common/include/pie.h" #include "f2802x_common/include/pll.h" #include "f2802x_common/include/pwr.h" #include "f2802x_common/include/wdog.h" // Prototype statements for functions found within this file. interrupt void xint1_isr(void); char counter; // the counter showing the no of button presses CLK_Handle myClk; FLASH_Handle myFlash; GPIO_Handle myGpio; PIE_Handle myPie; void main(void) { CPU_Handle myCpu; PLL_Handle myPll; WDOG_Handle myWDog; // Initialize all the handles needed for this application myClk = CLK_init((void *)CLK_BASE_ADDR, sizeof(CLK_Obj)); myCpu = CPU_init((void *)NULL, sizeof(CPU_Obj)); myFlash = FLASH_init((void *)FLASH_BASE_ADDR, sizeof(FLASH_Obj)); myGpio = GPIO_init((void *)GPIO_BASE_ADDR, sizeof(GPIO_Obj)); myPie = PIE_init((void *)PIE_BASE_ADDR, sizeof(PIE_Obj)); myPll = PLL_init((void *)PLL_BASE_ADDR, sizeof(PLL_Obj)); myWDog = WDOG_init((void *)WDOG_BASE_ADDR, sizeof(WDOG_Obj)); // Perform basic system initialization WDOG_disable(myWDog); CLK_enableAdcClock(myClk); (*Device_cal)(); //Select the internal oscillator 1 as the clock source CLK_setOscSrc(myClk, CLK_OscSrc_Internal); // Setup the PLL for x10 /2 which will yield 50Mhz = 10Mhz * 10 / 2 PLL_setup(myPll, PLL_Multiplier_10, PLL_DivideSelect_ClkIn_by_2); // Disable the PIE and all interrupts PIE_disable(myPie); PIE_disableAllInts(myPie); CPU_disableGlobalInts(myCpu); CPU_clearIntFlags(myCpu); // If running from flash copy RAM only functions to RAM #ifdef _FLASH memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize); #endif // Setup a debug vector table and enable the PIE PIE_setDebugIntVectorTable(myPie); PIE_enable(myPie); // Register interrupt handlers in the PIE vector table PIE_registerPieIntHandler(myPie, PIE_GroupNumber_1, PIE_SubGroupNumber_4, (intVec_t)&xint1_isr); // Enable XINT1 in the PIE: Group 1 interrupt 4 // Enable INT1 which is connected to WAKEINT PIE_enableInt(myPie, PIE_GroupNumber_1, PIE_InterruptSource_XINT_1); CPU_enableInt(myCpu, CPU_IntNumber_1); // Enable Global Interrupts CPU_enableGlobalInts(myCpu); // Configure GPIO 0-3 as outputs GPIO_setMode(myGpio, GPIO_Number_0, GPIO_0_Mode_GeneralPurpose); GPIO_setMode(myGpio, GPIO_Number_1, GPIO_0_Mode_GeneralPurpose); GPIO_setMode(myGpio, GPIO_Number_2, GPIO_0_Mode_GeneralPurpose); GPIO_setMode(myGpio, GPIO_Number_3, GPIO_0_Mode_GeneralPurpose); GPIO_setDirection(myGpio, GPIO_Number_0, GPIO_Direction_Output); GPIO_setDirection(myGpio, GPIO_Number_1, GPIO_Direction_Output); GPIO_setDirection(myGpio, GPIO_Number_2, GPIO_Direction_Output); GPIO_setDirection(myGpio, GPIO_Number_3, GPIO_Direction_Output); // GPIO12 input GPIO_setMode(myGpio, GPIO_Number_12, GPIO_12_Mode_GeneralPurpose); GPIO_setDirection(myGpio, GPIO_Number_12, GPIO_Direction_Input); GPIO_setPullUp(myGpio, GPIO_Number_12, GPIO_PullUp_Disable); // important !! // GPIO12 is XINT1 GPIO_setExtInt(myGpio, GPIO_Number_12, CPU_ExtIntNumber_1); // Configure XINT1 PIE_setExtIntPolarity(myPie, CPU_ExtIntNumber_1, PIE_ExtIntPolarity_FallingEdge); // Enable XINT1 PIE_enableExtInt(myPie, CPU_ExtIntNumber_1); counter=0; GPIO_setPortData(myGpio, GPIO_Port_A, (~(counter) & 0x0F)); for(; { /// forever loop } } interrupt void xint1_isr(void) { //GPIO_toggle(myGpio, GPIO_Number_0); // toggle LED0 counter++; GPIO_setPortData(myGpio, GPIO_Port_A, (~(counter) & 0x0F)); DELAY_US(100000); // Acknowledge this interrupt to get more from group 1 PIE_clearInt(myPie, PIE_GroupNumber_1); } //=========================================================================== // No more. //===========================================================================
-
Oppa got a reaction from msptest6 in [Piccolo] Surprise on C2000 Launchpad UART?
Which terminal program are you using ? I tried the Parallax serial terminal but it just prints these ansi codes as ASCII, I get just a mess of 7s and ansi codes.
Aaand..50C ? That would hurt but the chip feels just warm.
Ahh, good ole trusty linux. Reminds me of JRs office.