2016-08-28 15 views
11

thiết lập của tôi bao gồm các Espressif SDK sử dụng nhật thực và một nodemcu, mà tôi muốn chương trình trong C.Không thể sửa đổi ví dụ cho ESP8266 cung cấp bởi espressif

Tôi đã theo tất cả anh bước và tôi có thể biên dịch và đèn flash hội đồng quản trị từ môi trường nhật thực. Tôi không nhấn bất kỳ nút nào để tải flash vì bảng có thể tự xử lý nó (ít nhất đó là những gì tôi đọc). Theo this dường như tôi có một nodemcu 0,9, nhưng hội đồng quản trị tôi đã không trông khá giống như một trong hình ảnh (ăng-ten microstrip trông lạ .. và ở mặt sau của hội đồng quản trị nó nói www.doit.am ESP12E devkit V2 ... ăng-ten trên tôi thậm chí không giống như ăng-ten trên trang web được liệt kê phía sau bảng).

Tôi đã xem qua mọi thứ và tiếp tục. Tôi biên soạn ví dụ blinky về espressif và lóe lên nó. Tôi thấy rằng nó tạo ra các eagle.flash.bin và eagle.irom0text.bin và tải chúng trong 0x00000 và 0x10000 tương ứng (theo tài liệu tôi đã đọc này là ok). Khi tôi thiết lập lại bảng tôi có thể thấy rằng nó thực sự nhấp nháy và có một chương trình trong đó kể từ khi dẫn đầu là nhấp nháy. Sau đó, tôi đã thử ví dụ hello_world. Mọi thứ diễn ra tương ứng và sau khi tôi đặt lại bảng, tôi thấy rằng đèn LED vẫn nhấp nháy ở cùng tần số và khi tôi kết nối với bo mạch thông qua terminal.exe do espressif cung cấp, tôi chỉ có thể thấy rác ở đầu ra, mặc dù baud là đúng theo mã (thậm chí vì vậy tôi đã thử tất cả các bauds khác nhau có thể trong terminal.exe).

Ok ... sau đó tôi đã chuyển sang ví dụ blinky một lần nữa và tăng độ trễ giữa các lần nhấp nháy. Flash nó và tần số vẫn như cũ. Tôi biết rằng nó đã tạo ra các tệp .bin mới, nhưng vẫn không có gì thay đổi. Điều này đã khiến tôi tạo ra một dự án mới. Tôi đã làm nó, theo các hướng dẫn được cung cấp bởi Mikhail Grigorev. Tôi chỉ cần đặt một vòng lặp vô hạn, mong đợi để có được gì, nhưng sau khi nhấp nháy firmware mới được biên dịch tôi vẫn có thể nhìn thấy đèn nháy nhấp nháy ở cùng tần số mặc dù hoàn toàn không có gì trong mã, tôi thậm chí đã xóa đèn flash trước đó (vâng, tôi đã xác minh đèn flash trống.

Vì vậy, điều này dẫn tôi đến kiểm tra từng ví dụ đơn lẻ mà tôi có thể biên dịch. Tôi nhận thấy một số người không chớp mắt người dẫn đầu và những người khác đã làm, như không có gì xảy ra. Sau đó tôi tải về firmware nodemcu, và sau khi tải nó tôi nhận thấy rằng nó hoạt động đúng và tôi thậm chí có thể nhìn thấy ESP trong các mạng wifi có sẵn.

Tôi thực sự không hiểu điều gì đang xảy ra. Tại sao một số ví dụ làm việc và những ví dụ khác thì không? Tại sao tôi không thể sửa đổi mã nguồn của một blinky đơn giản và thấy sự thay đổi? Tôi thực sự thích sử dụng các mô-đun esp theo cách này, vì tôi không thích giao diện arduino hoặc cách mà nó sử dụng một thiết lập tĩnh và chức năng vòng lặp, và tôi không muốn chương trình nó trong LUA.

Tôi thậm chí đã kiểm tra các makefiles được cung cấp bởi espressif và sự khác biệt duy nhất tôi có thể thấy là các biến BOOT và APP. Tôi thậm chí đã cố gắng sửa đổi chúng, nhưng vẫn .. không có thay đổi.

Ai đó có thể giúp tôi không?

+0

Làm thế nào chính xác bạn chắc chắn rằng bạn có nodemcu 0.9? ESP-12E có phiên bản 1.0. Ngoài ra, tôi đã không cố gắng hội đồng quản trị nodeMCU, nhưng trên một trong tôi đã có, tôi đã phải thao tác một GPIO để bắt đầu hội đồng quản trị trong chế độ nhấp nháy, và sau đó khởi động lại nó ở chế độ bình thường. Bạn có chắc chắn, bạn không cần bất cứ điều gì như thế này? – mactro

+0

@mactro Tôi đã làm điều đó bằng cách so sánh bố cục thành phần, 0.9 có một IC dài CH340. Tôi có finaly tìm thấy các sameboard chính xác tôi có it1s này http://www.banggood.com/Geekcreit-Doit-NodeMcu-Lua-ESP8266-ESP-12E-WIFI-Development-Board-p-985891.html. Và tôi đã thử đặt nó ở chế độ flash. Giữ nút flash, đặt lại, bỏ nút flash, chương trình tải và sau đó đặt lại. – morcillo

+0

CH340 chỉ là bộ chuyển đổi USB/UART. Có nhiều chip khác thực hiện cùng một công việc và không quan trọng việc sử dụng chip nào. Mặt khác, ESP12 và ESP12E có pinouts khác nhau (12E có nhiều chân), vì vậy tôi đoán rằng bạn nên sử dụng nodemcu 1.0 mà làm việc với phiên bản 12E. – mactro

Trả lời

8

Ok, cuối cùng đã tìm thấy sự cố của tôi. Vấn đề là SDK espressif cần một số bit phần mềm trên một số địa chỉ nhất định của flash. Điều đầu tiên xảy ra là tôi đã xóa đèn flash ngay sau khi tôi nhận được bảng, giả sử tất cả những tệp nhị phân đó đã được lưu trữ trong flash.

Điều tiếp theo tôi làm là tôi đã thử đặt tất cả các tệp nhị phân khác, nhưng tôi đã đặt chúng vào địa chỉ sai, vì vậy phần mềm sẽ không hoạt động.

Cuối cùng, sau nhiều giờ đọc diễn đàn và tài liệu đọc, tôi đã tìm thấy các địa chỉ chính xác và nó hoạt động.

Các địa chỉ là:

0x00000 - boot_v1.6.bin 

0x01000 - firmware application (I set the makefile to BOOT=new, APP=1, SIZE_MAP=6) 

0x3fc000 - esp_init_data_default.bin 

0xfe000 - blank.bin 

0x3fe000 - blank.bin 
Các vấn đề liên quan