Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - koonsai

#9
ผมลองหาวิธีเม็มค่าลงในชิพ stm32F072 Nucleo ไปเจอจากในเน็ตมากปรับๆดู  ผมสร้างฟังชั่นกดปุ่มให้มันเขียนค่าลงไป แล้วผมลอง กดรีเซ็ตที่บอร์ดเพื่อเริ่มการทำงานใหม่ มันก็จะสามารถอ่านค่าได้ตรงกับที่เม็มไว้ แต่ถ้าผมกดรีเซ็ตอีกรอบ มันก็ไม่สามารถอ่านค่าได้แล้ว  ต้องกดปุ่มให้เขียนค่าอีกที ถึงจะเรียกอ่านได้อีกรอบ เพิ่งเคยลองเล่นการflash ครั้งแรก ยังไม่มีประสบการณ์เท่าไหร่  ขอคำแนะนำหน่อยครับ

Quotevoid WriteToFlash(uint16_t MemA1){
        //Declare and initialize variables
            
                   //Unlock Flash
        while ((FLASH->SR & FLASH_SR_BSY) != 0); //Wait until flash not busy
        if ((FLASH->CR & FLASH_CR_LOCK) != 0){    //If flash is locked, do unlk seq.
                FLASH->KEYR = FLASH_KEY1;    //Unlock code 1
                FLASH->KEYR = FLASH_KEY2;    //Unlock code 2
        }

        //Clear Flags
        FLASH->SR |= FLASH_SR_EOP;   //Clear end of operation flag
        FLASH->SR |= FLASH_SR_WRPRTERR;      //Clear write protect error flag
        FLASH->SR |= FLASH_SR_PGERR; //Clear programming error



        //Erase Page before writing
        FLASH->CR |= FLASH_CR_PER;           //Enable flash page erase
        FLASH->AR = FLASH_PAGE;              //Set page to erase
        FLASH->CR |= FLASH_CR_STRT;          //Start erase
            
        while ((FLASH->SR & FLASH_SR_BSY) != 0);//Wait until flash no busy
        if ((FLASH->SR & FLASH_SR_EOP) != 0){    //If flash finished operation
                FLASH->SR |= FLASH_SR_EOP;   //Clear flag
        }
        FLASH->CR &= ~FLASH_CR_PER;              //Disable page erase

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Write to Page
        FLASH->CR |= FLASH_CR_PG;            //Write 1 to PG (programming bit)
        //*pPage = Temperature;                 //Write to flash page
         *(__IO uint16_t*)(FLASH_PAGE) = MemA1; //GET HARDFAULT HERE. CODE FROM ST
            
            
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////            
            
        while ((FLASH->SR & FLASH_SR_BSY) != 0);      //Wait until bus is not busy
        if ((FLASH->SR & FLASH_SR_EOP) != 0){          //Check if flash is completed
                FLASH->SR |= FLASH_SR_EOP;            //Clear flag is flash is complete
        }
        FLASH->CR &= ~FLASH_CR_PG;               //Clear prog bit to disable write to flash

            HAL_Delay(10);
}

ผมจะอ่านค่าด้วยฟังก์ชั่นนี้
Quote
uint16_t ReadFromFlash(uint16_t memAdd){
uint16_t InitTemp;

     
        //Read value in flash
        InitTemp = *((uint16_t *) (FLASH_PAGE));  //GET HARDFAULT HERE. CODE FROM ST

            HAL_Delay(10);
        return InitTemp;
            
}
#10
ตอนนี้ชิพเราคาตัวเท่าไหร่บ้างครับ จริงๆผมสนใจด้านนี้มาแต่ไม่ทราบว่า ต้นทุนมันเท่าไหร่ครับ พอจะแนะนำให้หน่อยได้ไหมครับ  ถูกสุด ทำอะไรได้บ้าง และขั้นต่อๆไป
#11
สนใจ J scope มันมีของ Ulink ที่ทำแบบนี้ได้บ้างไหมครับ
#12
ลงชื่อ DSP ARM ครับ เผื่อมีใครจะเปิดสอนบ้าง  อยากเรียนครับ
#13
สวัสดีครับพอดีผมอยากทดสอบชิพตัวใหม่ๆเป็น FM4 ของ cypress ครับ เบอร์นี้

http://www.es.co.th/detail.asp?Prod=000102491

สิ่งที่ผมจ้างเขียนในส่วนต่อไปนี้

1. ADC DMA 5 ช่อง  AN00 AN01 AN02 AN05 AN09
2. Interrupt UART
3. Timer 2 ตัว
 
ชิพเบอร์ค่อนข้างใหม่ ผมก็ยังไปได้ไม่ไกลครับ เผื่อมีคนพอจะรับงานนี้ครับ มีค่าขนมให้นะครับ

PM  เมลล์ Pitipong.piti@gmail.com หรือ ไลมาก็ได้ครับ 0882684808   ;D
#14
โอเคครับ ตอนนี้ชิพสามารถทำงานได้แล้ว  ผิดพลาดที่ Hardware ของผมเอง มันมีรอยเส้นตะกั่วเล็กๆ (เล็กมากๆ ต้องเอาไฟแรงๆส่องทะลุแผ่นปริ้นถึงเห็น) ผมเอาปลายเข็มสะกิดออก (ใบคัดเตอร์เข้าไม่ได้) ก็ทำงานได้แล้วครับ

ครั้งแรกเจ็บปวดเสมอ ขอบคุณครับ
#15
ผมลองใช่วิธีเดียวกัน สร้างโปรเจคของ FM4 บอร์ดตัว 568 ที่ขายใน ES มันสามารถทำงานได้ปกติครับ ผมเลยมาๆ ดูในวงจรผมไล่ๆเช็คขาต่างๆ

ผมมาดูตรง Clock ของบอร์ด ES ตรงจุด Y1  ผมจะวัดเจอ สัญญาณ 4MHz ออกมาลย
แต่กับ ชิพของผม ใส่ 4 MHz แต่ตอนนี้ผมไม่เจอ สัญญาณ 4 MHz เลย  ไม่แน่ใจว่าต้องเช็คยังไงต่อครับ Internal Clock รึเปล่า 

ตอนนี้ กำลังงมต่อไป ;D
#16
ARM Processors / ขอคำแนะนำ FM4
July 01, 2016, 04:36:48 PM
สวัสดีครับ ตอนนี้ผมทำบอร์ด FM4  และทำการทดลอเขียนโปรแกรมไฟกระพริบด้วย keil ครับ 
คอมไพล์ผ่านได้ ผมใช้ Ulink2 และ USB direct (สามารถทำงานได้) โปรแกรม   แต่ไม่ว่าจะโปรแกรมชิพผ่านระบบไหน มันก็ยังไม่ตอบสนองเลยครับ  พอจะมีใครมีประสพการณ์กับชิพตัวนี้บ้างครับ
ขอคำแนะนำหน่อยครับ

ใครพอจะมีตัวอย่างโค้ดที่รันได้บ้างไหมครับ ผมเซ็ต keil เอง ไม่ทราบว่ามันผิดหรือถูดยังไง


http://www.es.co.th/detail.asp?Prod=000102491