cancel
Showing results for 
Search instead for 
Did you mean: 

Very very easy to write C programs in to STM32F4 Discovery with ZIOS

cnc_designer
Associate II
Posted on January 09, 2014 at 02:46

I wrote a library for the STM32F4 Discovery kit. The name of this library is ZIOS.

ZIOS includes low level functions. You don't need to MCU registers access for your application programs. 

Also I wrote simple demo programs via Keil. when you examine you will realise that it's very easy.

Also i made short video about the functions of ZIOS.

http://www.youtube.com/watch?v=AnEpH6E2fiQ&feature=youtu.be

ZIOS functions use this pins.

http://www.cncdesigner.com/wordpress/wp-content/uploads/ZIOS.jpg

Complete project directory.

http://www.cncdesigner.com/wordpress/wp-content/uploads/ZIOS_Demo.rar

LCD Connection diagram.

http://www.cncdesigner.com/wordpress/wp-content/uploads/LCD.jpg

#stm32f4-discovery #i2c #zios #stm32f407
8 REPLIES 8
dsevc
Associate II
Posted on January 09, 2014 at 10:32

Hi. I see your web page . Is not in English language.. but see photo .. first photo in your web page is CNC - USB controller (3-axis) .. ??? is possible ZIOS use in STM32F429i DISCO kit??

best regards

cnc_designer
Associate II
Posted on January 09, 2014 at 10:39

Hi,

Yes this card 2.5  axis cnc controller and stepper motor driver.

I don't now is ZIOS work with STM32F429i.

dsevc
Associate II
Posted on January 09, 2014 at 12:58

hi. 2.5 axes only .. third axes not use stepper motor?? can you provide more information?? you make this project self or order ??  I have idea to use my STM32F429i DISCO to make CNC controller .. load G-code file from SD card or external Flash disk ..and mill by 3-axes .. of course then is possible to make from this 3D printer also..

what IDE you use .. I start with CooCox.. and try uClinux .. but I don't know compile source in my PC , I try run live Ubuntu STL 12 .. and try start all script .. but not work..

best regards.

cnc_designer
Associate II
Posted on January 09, 2014 at 15:34

Third axes drive voicecoil. This is my old project. Controller/driver board connecte  to PC by USB interface. Now I change to SD card.

dsevc
Associate II
Posted on January 09, 2014 at 15:57

is possible to write more about your project?? to email pls .. sevc @ post.sk

thanks.

cnc_designer
Associate II
Posted on January 10, 2014 at 14:59

Did you try the ZIOS for STM32F429i? Is it work?

Posted on January 10, 2014 at 16:35

Doubtful, the pins are totally different on the STM32F429I-DISCO, and most everything is consumed by LCD and SDRAM pins.

The SDIO interface is broken to just one pin/bit, but then again you're using SPI mode rather than 4-bit SDIO in your current project.
Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
cnc_designer
Associate II
Posted on January 18, 2014 at 15:05

STM32F407 I2C too simple by ZIOS V1.03

Example: I2C register access for TCM8240MD camera.

#include ''Zystem.h''

short T;

void MiliSecond()

{

    if(T) T--;      

}

int main()

{

char RxData;

          

//  TCM8240MD I2C example     

         

    pinmod('D',1,output);    // GPIOD02 is a output for the TCM8240MD Reset pin

    pinclr('D',1);           // TCM8240MD Reset line is low

    T=100; while(T);         // wait 100ms

    pinset('D',1);           // TCM8240MD Reset line is high

    T=10; while(T);          // wait 10ms

          

    I2Cinit(400000);         // I2C clock frequency is 400 Khz   

          

//  Lets read 0x04 location of TCM8240MD

    I2Cstart();              // Start Condition 

    I2Ccmd(0x3D,0);          // TCM8240MD Adr=0x3D, (R/W bit=0, write means) 

    I2Cwrite(0x04);          // TCM8240MD register address is 0x04

    I2Cstart();              // Start Condition 

    I2Ccmd(0x3D,1);          // TCM8240MD Adr=0x3D, (R/W bit=0, read means) 

    RxData=I2CreadNack();    // Read [0x04] register (No ACK)

    I2Cstop();               // Stop condition       

          

//  Lets write 0x0B in to 0x04 location of TCM8240MD

          

    I2Cstart();              // Start Condition 

    I2Ccmd(0x3D,0);          // TCM8240MD Adr=0x3D, (R/W bit=0, write means) 

    I2Cwrite(0x04);          // Register address is 0x04

    I2Cwrite(0x0B);          // Register data is 0x0B 

    I2Cstop();               // Stop condition       

          

//  Lets read 0x04 location of TCM8240MD

    I2Cstart();              // Start Condition 

    I2Ccmd(0x3D,0);          // TCM8240MD Adr=0x3D, (R/W bit=0, write means) 

    I2Cwrite(0x04);          // Register address is 0x04

    I2Cstart();              // Start Condition 

    I2Ccmd(0x3D,1);          // TCM8240MD Adr=0x3D, (R/W bit=0, read means) 

    RxData=I2CreadNack();    // Read [0x04] register (No ACK)

    I2Cstop();               // Stop condition       

          

    while(1);

    

}